Missing key from type of FileJSON

Issue I face

After I uploaded the file using the .moveToDisk method,When  I tried to console log the file.toJSON(). It has returned the below object.

{
  fieldName: 'profile',
  clientName: 'Open Peeps - Avatar and Backdrop.png',
  size: 54105,
  filePath: '/var/www/html/adonis-crud/tmp/uploads/assets/users/profile/clhitg3ce0001xho51lto0kmd.png',
  fileName: 'clhitg3ce0001xho51lto0kmd.png',
  type: 'image',
  extname: 'png',
  subtype: 'png',
  state: 'moved',
  isValid: true,
  validated: true,
  errors: [],
  meta: {}
}

However, I found that  file.toJSON() is a type of FileJSON.
But it is missing the fileName in the object. The current FileJSON object is look like this
{
        fieldName: string;
        clientName: string;
        size: number;
        filePath?: string;
        type?: string;
        extname?: string;
        subtype?: string;
        state: 'idle' | 'streaming' | 'consumed' | 'moved';
        isValid: boolean;
        validated: boolean;
        errors: FileUploadError[];
        meta: any;
    }

Please add the missing values from FileJSON type
Package version
"@adonisjs/bodyparser": "^8.1.7",
"@adonisjs/core": "^5.9.0",
Node.js and npm version

node version: v16.19.0
npm version: 8.19.3
Sample Code (to reproduce the issue)

BONUS (a sample repo to reproduce the issue)

Any update @thetutlage

Released. https://github.com/adonisjs/bodyparser/releases/tag/v8.1.9
Thanks for reporting the issue

Thanks


Inverse search for sioyek

I use the default setting for forward and inverse search:
forwardSearch = {
                executable = "sioyek",
                args = {
                  "--reuse-window",
                  "--inverse-search",
                  [[nvim-texlabconfig -file %1 -line %2 -server ]] .. vim.v.servername,
                  "--forward-search-file",
                  "%f",
                  "--forward-search-line",
                  "%l",
                  "%p",
                },
              }

The forward search is fine, but the inverse search does not work, it has no response. Is there anything I need to setup for sioyek? Thanks!

Read the updated documentation. I have no problem with sioyek.

I am using the updated documentation. But sioyek search still doesn't work.


Fixes #2193: PostgreSQL 11.0 is not supported (clean() fails)

Fixes #2193.
I don't see any other changes in PostgreSQL 11.0 that would break compatibility, but please check before merging.

Thanks for the pull request! Truly appreciated. This will be integrated in 6.0.

Hi,
Why not back port-it to the 5.x branch? The fix seems simple. I've also checked the issues for 6.x and it doesn't look like it will be released very soon. Any ETA for that?
/Eugen

@ieugen Support for new database versions is only added in major and minor releases, not patch releases. Until 6.0.0 is released, you can simply build Flyway from source to get it.

Ok. Thnks for explaining.


Enable snapshot backup/restore feature on azure disk CSI driver

details: https://github.com/kubernetes-sigs/azuredisk-csi-driver/issues/90

/assign

code implementation done, need write doc later


Feature request:send files or information to them through web pages

Is your feature request related to a problem? Please describe.
只要安装了应用程序或应用程序，一方就可以充当服务器吗？而即使没有安装软件，另一方也可以向他们发送文件或信息。例如，计算机上安装了本地发送应用程序。手机可以通过网页向他发送文件或消息
Can one party act as a server as long as the app or application is installed, while the other party can send files or information to them through web pages even if the software is not installed
For example, the localsend application is installed on the computer
Mobile phones can send files or messages to him through web pages
Describe the solution you'd like
thanks
Describe alternatives you've considered
No response
Additional context
No response

Duplicate of #424


KAFKA-8866; Return exceptions as Optional in authorizer API

Follow up on review comment in PR #7268
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@ijuma @omkreddy Thanks for the reviews, merging to trunk.


Allow to specify the function to use as a CLI command arg

Any feedback on this @pieroxy ? :)

The CLI function is being totally rewritten, with support for all functions


include module error

I just started using bower and angular..
It seems I can't instantiate angular-fontawesome module.

I've got to admit that this syntax all looks a little weird to me (the "lib" and "vendor" thing specifically. Were you able to make any progress? Also, please copy the error.

Sorry I forgot I opened this issue. Yeah I found what I did wrong. It is all because of the asset pipeline in rails.
I added this line to my config/application.rb
config.assets.paths << Rails.root.join("lib","assets","bower_components");

And also in application.js and aplication.scss I made sure to have the full path of angular font-awesome!

Glad everything worked out - enjoy angular-fontawesome!


Fix member count not being stored.

Fixes issue where member count was not being stored.

should go into develop ?

should go into develop ?

probably

Did you test this?

I don't know how to really test this, because it would require me to have a lot of members in my test server. But I'm pretty sure this fixes the information not being stored properly.

I don't know how to really test this,

you can test by lowering the threshhold for logging member record to 1

I don't know how to really test this,

you can test by lowering the threshhold for logging member record to 1
or, lower the record in test mongodb cluster to -10000000000, restart bot, should say new record

prob 2 just to make sure its not everytime

I tested this and it seems to be working

Should remove the return blocking this from running
https://github.com/cs-discord-at-ucf/lion/blob/dff251357d9d2bba597166abfd7d2b9da63ed128/src/app/handlers/membercount.handler.ts#L12-L14

Conflicts

Ohhh, my bad. I told you to remove the if true return on the wrong pr. I'll fix it real quick and merge


Ensure case insensitive email address comparison

This patch makes sure that comparison of email addresses is case insensitive. Before this patch, the script would return "Seems like you have not been invited to this event!" if the email address in the invitation (defined by the event organizer) had different capitalization than the provided email address in the mandatory -e option of the script (defined by the user).
The patch makes sure that email addresses will match, irrespective of the chosen capitalization.

Great, thank you very much!

I think something similar might apply to https://github.com/Konfekt/mutt-ldap ; just to keep that in mind

Tnx for the merge. Can you open "issues" for this repo? I have an unrelated problem I'd like to discuss.


cloud: broken example tests due to a parametrization issue

All example tests and some other files fail test compilation due to a bad function call.
Fix at: https://code-review.googlesource.com/#/c/1720

Out of date dependency used, abandoning.


percy snapshot approach

@shaikhalid -
#1 - Let's add.
#2 - Yes, That's intentional since I'm using the suffix param which is only allowed under additionalSnapshots. With the current logic, if we add | Page 1 to the first page name, then all subsequent pages will show up as <PDF Name> | Page 1 | Page <X>. Any way to get this done built-in by Percy config file itself (and avoiding any external logic)?
#3 - What's will the solution look like? Percy config file allows waitForTimeout - An amount of time to wait before capturing a snapshot. For graphic intensive PDF's, do we allow users to specify a waitForTimeout in the pdf-docs-run-info-config file which we apply to all pages in the Percy config file?

I will add
I will need to check the code for this. I think one way is to use the API and check the number snapshots and the number accordingly so we avoid extra logic.
I have an interesting solution for this. Like Percy sensitivity we can allow the user to set the PDF time to three level or custom
i. only text
ii. Moderate graphics
iii. Graphic intensive

We can do some research and code corresponding waits accordingly

I will add
I will need to check the code for this. I think one way is to use the API and check the number snapshots and the number accordingly so we avoid extra logic.
I have an interesting solution for this. Like Percy sensitivity we can allow the user to set the PDF time to three level or custom
i. only text
ii. Moderate graphics
iii. Graphic intensive

We can do some research and code corresponding waits accordingly

Aligned with #1 and #3. Need to understand #2 better.

Hey @shaikhalid - I'm merging this PR for now, since we have an external call today. It's okay to add PR to enhance / optimise the working further. I'll try to schedule a meeting with Product too to go over this implementation.


Add support to run JS benchmarks on a standalone VM outside a browser

I think we can do this. Only one benchmark might cause problem would be SRAD which reads an image to create an array. In that case we can provide the array beforehand.
I am not sure if asm.js benchmarks can run on standalone VM.

Moved to Sable/Ostrich2#7


[FLINK-22974][dist] Add execution checkpointing related configs in flink-conf.yaml

What is the purpose of the change
Add execution checkpointing related configs in flink-conf.yaml. That may cause checkpoint failure according to the current configuration.
Brief change log
Execution checkpointing configs such as  execution.checkpointing.interval, execution.checkpointing.externalized-checkpoint-retention, execution.checkpointing.mode, etc are added in flink-conf.yaml.
Verifying this change
This change is a trivial rework  without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation
Does this pull request introduce a new feature? (no)

@tinawenqiao As I said in https://github.com/apache/flink/pull/16147, please modify your description of this PR, it's not recommended to leave the description as the default template.

@tinawenqiao As I said in #16147, please modify your description of this PR, it's not recommended to leave the description as the default template.

The pr description has been modified.

interval is set to 500ms.


Setup Project

Create GitHub Repo and clone to local machine
Add .gitignore and folder structure
Initialize node package and install express, sequelize, and mysql2
Install dotenv and setup environmental variables
Create database and setup database connection
Set up server

pushed to main


Add base_model_prefix

This PR fixes the from_pretrained method by adding base_model_prefix, as this makes sure weights are properly loaded from the hub.
Kudos to @sgugger for finding the bug.

Note that we're also fixing Transformers to work without this (in this PR) but the fix won't be out until the next release, so this makes sure Enformer works in the meantime.

@sgugger @NielsRogge thank you for the swift de- :fly: -ing! and congrats on releasing a great feature :)


New Organization Requesting a Program

Is your feature request related to a problem? Please describe.
Those with programs that want to put them on CiviForm don't have a structured way to get their programs on CiviForm. They would have to contact the CiviForm Admin to do so.
Describe the solution you'd like
Step 1: an interest form (likely Google Form) that is linked in the CiviForm portal for individuals to contact the CiviForm Admins
Step 2:  program admins should be able to propose but not finalize a program that they want to publish on CiviForm. They can see the full question bank. CiviForm Admins will make the final decision on these.
Additional context
AR is interested in this feature.
Done when
Above.

@michaelzetune should this have the arkansas label?

@michaelzetune should this have the arkansas label?

Done thanks!

Closed as duplicate of #869.


workaround missing ack_id

workaround #219

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.1%) to 89.609%

Files with Coverage Reduction
New Missed Lines
%

django_q/core_signing.py
1
80.85%

django_q/monitor.py
3
90.65%

Totals

Change from base Build<PHONE_NUMBER>6:
-0.1%

Covered Lines:
3372

Relevant Lines:
3763

💛  - Coveralls


Dynamically loaded images not showing

Godot 3.2.1 64 bit version Running on Windows 10, latest update
A Player sits in a Seat spaced evenly around a Table.  If I add players chairs and players manually, it works just fine.
Chairs all use the same image so creating them dynamically works fine.
Player Scene is a 2DNode named Player with a single child, a Sprite Node.  Dragging the white image to the Sprite node yields identical seats, each containing a white circle.
Code below is supposed to add them dynamically, giving a different colored player at each seat but (a) if I clear the Sprite image manually no images appears. (b) if I leave the manual Sprite image all seats contain a white circle.
The print statement reports
texture is set to [StreamTexture:1323]
texture is set to [StreamTexture:1332]
texture is set to [StreamTexture:1341]
texture is set to [StreamTexture:1350]
etc.
extends Node2D
var myPlayer
var isPresent
var playerName

# const references to the player sprite resources
const PLAYER_FILE1 = "res://sprites//player1.png"
const PLAYER_FILE2 = "res://sprites//player2.png"
const PLAYER_FILE3 = "res://sprites//player3.png"
const PLAYER_FILE4 = "res://sprites//player4.png"
const PLAYER_FILE5 = "res://sprites//player5.png"
const PLAYER_FILE6 = "res://sprites//player6.png"
const PLAYER_FILE7 = "res://sprites//player7.png"
const PLAYER_FILE8 = "res://sprites//player8.png"
const PLAYER_FILE9 = "res://sprites//player9.png"

var images = {1: PLAYER_FILE1, 2: PLAYER_FILE2,	3: PLAYER_FILE3,
	4: PLAYER_FILE4, 5: PLAYER_FILE5, 6: PLAYER_FILE6,
	7: PLAYER_FILE7, 8: PLAYER_FILE8, 9: PLAYER_FILE9
}

func _setMyPlayer(player, name):
	myPlayer = player
	playerName = name
	isPresent = true
	get_node("Sprite").texture = load(images[player])
	print("texture is set to " + str(get_node("Sprite").texture))

Some minimal project?

Poker.zip

So I ran the Player.tscn (had to add _setMyPlayer call to ready) and it works fine. Are you sure you call that method correctly?

I don't understand what you mean exactly.
The call is in the _setTable(numseats) function in Table.gd which sets the table with numSeats chairs around it
The code creates a new seat and then positions it about the round table then adds the seat as a node to the table. The seat itself already has a player node so I then execute a call to set the player node. Really unclear why it should be in _ready function. or how that would even work unless I can somehow pass number of seats I require to the ready function.
Sorry.  I was an experienced C++ and Java programmer but brand new to GDScript. I've read the documents carefully and looked at numerous other questions and answers before posting this. Here's the code I'm using. call at the end
	angleChange = deg2rad(360/numSeats)
	radius = (pHeight-60)/2
	for i in range(numSeats):
		newSeat = seatScene.instance()
		newSeat.position.x = pWidth/2  - radius * sin(angle)
		newSeat.position.y = pHeight/2 + radius * cos(angle)
		newSeat.rotation = angle
		angle += angleChange

	# Make sure seat node is part of the tree before calling one of its functions
		add_child(newSeat)
		# Find out why seats[i] = newSeat is not allowed
		seats.append(newSeat)
		newSeat._setMyPlayer(i+1, names[i])

I think you have your wires crossed. newSeat is an instance of seatScene. The code in OP you described as being for the player scene. Unless they are one and the same, you can't call newSeat._setMyPlayer(), you have to do whateveryourplayervariable._setMyPlayer. Think Player::_setMyPlayer() in C++

My bad, I should have added that the Chair.tcsn script (which is the script for Seat nodes - I should fix that) has it's own function for relaying the call on to the Seat's Player node
func _setMyPlayer(player, name):
var newPlayer = playerScene.instance()
newPlayer._setMyPlayer(player, name)

It's likely you can't see the sprites because you're instancing the player scene, but not actually adding it to tree - only thing you're achieving is a memory leak.
Please post the project to make it possible for us to check whether it's a genuine bug, or a user error.

I did post it. However, I created a much simpler example to duplicate the problem and got that to work. I'm sure you're close to right. Thank you and KoBeWi for your very timely help. It's been a long day so I'm going to call it quits right now. Pretty sure I can compare the two project sets and track down the problem tomorrow. I'll post the result when I do and close the thread. Thanks again!

I'm beginning to think this might be a bug. I've created two simple versions to demonstrate.
The first version creates a Table with 9 players arranged evenly around it. The players are created dynamically in the following function:
`func _setTable(numPlayers):
print("Trying to set table with " + str(numPlayers) + " players")
var newPlayer
var angleChange
var angle = 0
var radius
angleChange = deg2rad(360/numPlayers)
radius = (pHeight-60)/2
for i in range(numPlayers):
newPlayer = playerScene.instance()
newPlayer.position.x = pWidth/2  - radius * sin(angle)
newPlayer.position.y = pHeight/2 + radius * cos(angle)
newPlayer.rotation = angle
angle += angleChange
# Make sure seat node is part of the tree before calling one of its functions
	add_child(newPlayer)
	# Find out why seats[i] = newSeat is not allowed
	players.append(newPlayer)
	newPlayer._setMyPlayer(i+1, names[i])

`
_setMyPlayer is in the Player script as follows:
`var myPlayer
var isPresent
var playerName
const references to the player sprite resources
const PLAYER_FILE1 = "res://sprites//player1.png"
const PLAYER_FILE2 = "res://sprites//player2.png"
const PLAYER_FILE3 = "res://sprites//player3.png"
const PLAYER_FILE4 = "res://sprites//player4.png"
const PLAYER_FILE5 = "res://sprites//player5.png"
const PLAYER_FILE6 = "res://sprites//player6.png"
const PLAYER_FILE7 = "res://sprites//player7.png"
const PLAYER_FILE8 = "res://sprites//player8.png"
const PLAYER_FILE9 = "res://sprites//player9.png"
var images = {1: PLAYER_FILE1, 2: PLAYER_FILE2,	3: PLAYER_FILE3,
4: PLAYER_FILE4, 5: PLAYER_FILE5, 6: PLAYER_FILE6,
7: PLAYER_FILE7, 8: PLAYER_FILE8, 9: PLAYER_FILE9
}
Called when the node enters the scene tree for the first time.
func _ready():
pass

func _setMyPlayer(player, name):
myPlayer = player
playerName = name
isPresent = true
get_node("PlayerSprite").texture = load(images[player])
print("texture is set to " + str(get_node("PlayerSprite").texture))
'
This results in a table with 9 players arranged around it, each with it's own colored circle image, as expected.
Now we introduce an intermediate layer. Because a player may or may not be present, we create a simple chair. All chairs are identical. They are arranged around the table and each one has exactly one player. The Table script is identical except that Chairs are substituted for Players. here's the setTable function
`func _setTable(numSeats):
var newSeat
var angleChange
var angle = 0
var radius
angleChange = deg2rad(360/numSeats)
radius = (pHeight-60)/2
for i in range(numSeats):
newSeat = seatScene.instance()
newSeat.position.x = pWidth/2  - radius * sin(angle)
newSeat.position.y = pHeight/2 + radius * cos(angle)
newSeat.rotation = angle
angle += angleChange
# Make sure seat node is part of the tree before calling one of its functions
	add_child(newSeat)
	# Find out why seats[i] = newSeat is not allowed
	seats.append(newSeat)
	newSeat._setMyPlayer(i+1, names[i])

`
The Seat is a simple 2DNode with a Chair sprite and a player. Its _setMyPlayer function simply relays the message
func _setMyPlayer(player, name): 	print("Trying to set player no. " + str(player) + " to " + name) 	get_node("Player")._setMyPlayer(player, name)
The player Scene is identical to the original, as is it script
#  func _setMyPlayer(player, name): 	myPlayer = player 	playerName = name 	isPresent = true 	get_node("PlayerSprite").texture = load(images[player]) 	print("texture is set to " + str(get_node("PlayerSprite").texture))
But The seats remain empty. The print statement proves that the function is being called but the sprite never shows
Here are the two complete demo projects
DynamicImageLoad.zip
DynamicImageLoadToSeat.zip

Player sprite shows behind chair.

The funny thing is I actually had that order in my original game but re-ordered it when reconstructing the simple example. Makes sense that they would be drawn in the listed order. Now I'll go back, look at the original and see what I'm not doing that I did do in the simple example
Thank you very much for your time and your patience.


Cache not posting

A few days ago, my workflows were working fine, without changing them, now they are blowing up when attempting to get a cache that was expected to be posted.
Example:
Posting the cache:

name: Cache repo and maven build
uses: actions/cache@v2
with:
key: maven-build-${{ github.sha }}
path: ~/

yields:

A subsequent attempt to get the cache:
- name: Get maven cache
  uses: actions/cache@v2
  with:
    key: maven-build-${{ github.sha }}
    path: ~/

yields:

@tmpellerito Are you still facing this issue?

@tmpellerito Can you confirm if you are getting this issue now?

Dupe of #689 (which is fixed for me now in v3)?

Closing as duplicate.


where are the premade themes located?

I would like to create my own themes and/or edit the existing custom themes. Where do I find the actual css files? Running Windows 10, VSCode 1.47.3
Thanks in advance for the help

See https://github.com/marp-team/marp-vscode#use-custom-theme. Place your theme CSS in anywhere within your project and set relative path to placed CSS in configuration.


Project cannot be build by community

Inside conanfile.txt we have the following two lines:
soxr/0.1.3@audeering/testing
dr_wav/0.12.12@audeering/testing

which means the project cannot be build by the community as it fails with
soxr/0.1.3@audeering/testing: Not found in local cache, looking in remotes...
soxr/0.1.3@audeering/testing: Trying with 'conancenter'...
ERROR: Unable to find 'soxr/0.1.3@audeering/testing' in remotes

compare https://github.com/audeering/audresample/issues/21

We should use soxr and dr_wav from Conan Center, see:

https://conan.io/center/soxr
https://conan.io/center/drwav


Fails with "missing gitlab-ci config"

I tried to use this action in a Github actions workflow, but despite following the instructions and giving all the parameters, it always fails with "missing gitlab-ci config". Am I missing something?
The pipeline runs fine on Gitlab when I trigger it manually, I am not missing a gitlab-ci config.

I ran into the same issue and it was because I passed a wrong variable name to the docker. We should set GITLAB_PROJECT_ID instead of GITLAB_ID (the example in the README is incorrect).

What is the use case here? why would you want to trigger GitLab pipeline from GH Actions?

@billux were you able to resolve this for pull requests? It is working when I (as the project owner) push a commit, but when a pull request receives a commit, it gives the same error.
I don't see either GITLAB_ID or GITLAB_PROJECT_ID in the output of the job.

maybe see the reference: https://securitylab.github.com/research/github-actions-preventing-pwn-requests

Ah, that makes a lot of sense, thanks for the information!


It's probably a good idea to move the whole Hex Inspector to the data explorer, since it's practically never used any more while editing.

Moved the hex inspector to the data explorer in ab4b23958be98bc99e14cda377c19ed50de358bc. This way you only take the slowdown if you really want it.


Collect node info for disk activity and network

Currently metrics like pve_disk_size_bytes, pve_memory_size_bytes, pve_cpu_usage_ratio report values both for VMs and for nodes.
But pve_network_transmit_bytes and pve_disk_write_bytes do not have values for nodes.
Also, in the proxmox UI there is the IO Delay metric for the node, which is sometimes invaluable.
Would it be possible to include these metrics?

This exporter relies on the values reported by the PVE API. Some node metrics are not available through the API. Please use node_exporter for those.

Hi, @znerol
I explored the PVE API a bit, and I see that it doesn't expose network and disk bytes metrics.
However, IO Delay seems to be available under /nodes/{node}/status as data.wait. Looks like node status is largely undocumented for some reason, but when I query my cluster, the metric is there, as well as a bunch of other stuff.
Can it become a part of node=1 metrics?

It seems like extended info is only available when querying the HTTP API endpoint.
pvesh shows very limited info.


Fix compile warning for allocate_packed()

Compiling rmrk v0.4.0 (/Users/mario/p/remarkink/logics)
warning: function cannot return without recursing
  --> logics/impls/rmrk/types.rs:94:5
   |
94 |     fn allocate_packed(&mut self, at: &Key) {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
95 |         PackedAllocate::allocate_packed(&mut *self, at)
   |         ----------------------------------------------- recursive call site
   |
   = note: `#[warn(unconditional_recursion)]` on by default
   = help: a `loop` may express intention better if this is on purpose

fixed in #24


Economy API

Something is broken. I'm not sure what. To get to the error, I tried to set the number of points to buy an item with universal shops by patbox. Evidently, I handled something wrong.

OK I think I may have messed up like the entire thing. I would be happy to have help, or even an example :P


Fix duplicate artifact name in GH actions

What does this PR do?
Don't know if this fixes GH actions currently not running but hoping so.

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2023-03-30T14:26:38.818+0000

Duration: 16 min 39 sec

:grey_exclamation: Flaky test report
No test was executed to be analysed.
:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run benchmark tests : Run the benchmark tests.

run jdk compatibility tests : Run the JDK Compatibility tests.

run integration tests : Run the Agent Integration tests.

run end-to-end tests : Run the APM-ITs.

run windows tests : Build & tests on windows.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


Project broke after generating a library (Module Federation)

🐞 Bug report
Command (mark with an x)

[ ] new
[x] build
[x] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?

 No.
Description
 I have an NX Angular project with latest Webpack installed on it. I tried to use Module Federation on this project. Everything is running smoothly but there's a critical issue when adding a library using NX generate to the project.
When you run nx serve after adding a library, you get the error below.
I ignored this error because my application was running just fine; until I tried to build the project using nx build. The project build fails because of this error and cannot get procced.
🔬 Minimal Reproduction
You can take a look at my project and see the error yourself.
https://github.com/adnanebrahimi/angular-module-federation-nx

Clone.
Switch to library branch.
run yarn
run nx s, nx b or npm run start:all

🔥 Exception or Error
./libs/weather/src/index.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/index.js):
Error: The AngularCompilerPlugin was not found. The @ngtools/webpack loader requires the plugin.
    at Object.ngcLoader (...\node_modules\@ngtools\webpack\src\loader.js:29:15)

Error: Conflict: Multiple assets emit different content to the same filename libs_weather_src_index_ts.js

🌍 Your Environment
Angular CLI: 11.0.5
Node: 12.16.3
OS: win32 x64

Angular: 11.0.5
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace:

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1100.5
@angular-devkit/build-angular   0.1100.5
@angular-devkit/core            11.0.5
@angular-devkit/schematics      11.0.5
@schematics/angular             11.0.5
@schematics/update              0.1100.5
rxjs                            6.5.5
typescript                      4.0.5

Anything else relevant?

Hi @Al00X,
It appears that you are using 3rd party CLI builders.
While we do allow extending the Angular CLI, we do not provide support for custom Webpack configurations or 3rd party builders.
Support for Module federation is being tracked here: https://github.com/angular/angular-cli/issues/17556

Hi @Al00X,
It appears that you are using 3rd party CLI builders.
While we do allow extending the Angular CLI, we do not provide support for custom Webpack configurations or 3rd party builders.
Support for Module federation is being tracked here: https://github.com/angular/angular-cli/issues/17556


Implement CandidType for serde_bytes::ByteArray

[u8; N] is a commonly used type that can be optimized using serde_bytes::ByteArray. However, serde_bytes::ByteArray currently does not implement CandidType.

I added the relevant code, but since my project heavily depends on Candid and there were some conflicts when trying to validate it, I didn't submit a PR.
https://github.com/ldclabs/candid/commit/faf0f10a10d834ba623f6326a80b707ce8550f59


update PBR workflow link

updates the PBR workflow link in the main readme to be the correct one found in the sub-readme at rtx_resource_pack/README.md

Thanks!


Raspberry Pi version can not locate all plugins when searching for new plugins

Raspberry Pi Model
Raspberry Pi 4 B
Describe The Bug
I installed the Raspberry Pi image to a fresh SD-Card and booted in a Raspberry Pi 4b 8GB device.  After installation completed and basic setup, I searched for the primary plugin that I wanted to setup on this instance.  This is Homebridge Kasa Python plugin, created by ZeliardM.
I have installed HomeBridge on various devices to figure out what device I want to permanently run on and with every other installation, I've always been able to simply go to the Plugins tab in the GUI and search for 'kasa' and find the Homebridge Kasa Python plugin.  However, with the install of the Raspberry Pi image, when I search for 'kasa' on the Plugins tab all I see are 'Homebridge Tplink Smarthome' and 'Homebridge Kasa Lightstrip'. Neither of these are the correct plugin that I expected to see.  When I search 'kasa' from the Homebridge website (e.g. https://homebridge.io) I am able to locate the Homebridge Kasa Python Plugin.
I guess what I am asking is, is there a configuration file that I need to update so the Plugin search function. is searching the correct or all of the known repositories for Plugins?
Thank You....
Logs
No response

Thank you for the support, I can see the search results now.


fix typo in base business composable

Issue:

bcgov/entity/issues/

Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the namex license (Apache 2.0).

Temporary Url for review: https://strr-platform-dev--pr-316-fs5azfzz.web.app


Fix: Mark test classes abstract or final

This PR

[x] asserts that test classes are abstract or final
[x] marks test classes as final

Follows #841.

Thank you, @chartjes!


Simplified schema logic for the GraphQLView

Simplified schema logic for the GraphQLView

Coverage increased (+0.6%) to 96.026% when pulling<PHONE_NUMBER>9f89792a06020153522e5e89b34b22 on middleware-executor-improvement into 66a10adc2a92dda4ca73c020eb20234cb59ec868 on master.


rename header

Thanks!
If you don't mind sharing, what are you using this for?

@winterscar trying out piecewise trajectory generation on atmega, still a WIP but at least compiles
i've used func pointers in the past where stl was available, this was a godsend
what do you use it for?

Nice! Glad I made something useful. I've used this for a few things now. It's really useful to do event based programming on some of the tiny atmel chips.


Upgrade upload-artifact version

Fixes #353 .
As described in the issue, version 3 will be deprecated from Dec. Version 4 is already used for download-artifacts in this workflow.

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

Project coverage is 96.09%. Comparing base (1f315ba) to head (072202e).
Report is 467 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #357      +/-   ##
===========================================
+ Coverage    95.29%   96.09%   +0.80%
===========================================
  Files           28       35       +7
  Lines         1720     2766    +1046
===========================================
+ Hits          1639     2658    +1019
- Misses          81      108      +27

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

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Handle case were there's no match

It seems that sometimes when something goes wrong with Sublime Linter the match value may be falsey. Looking at linter.py, it checks match and may return it and a lot of None values if the it is not truthy. See:
https://github.com/SublimeLinter/SublimeLinter3/blob/master/lint/linter.py
I noticed this issue because match is None if an error occurs earlier in SublimeLinter.
I propose imitating the super function. An alternative would be to check the results of the call to super().split_match and then to just return the results if match or col are None.

I think this issue has something to do with this:
https://github.com/mpeterv/luacheck/issues/143

In SublimeLinter 4, split_match will not be called with None anymore. (For SL3 this was indeed the correct fix, but unfortunately nobody cared at that time. 😞 )


Documentation Link for OSGP Not working.

Documentation Link for OSGP Not working and throwing this error 403 Forbidden

http://documentation.opensmartgridplatform.org/

Kindly help me to resolve the issue. The screenshot is attached below.

Thanks for your report, I have the same experience here.

Workaround: https://ci.opensmartgridplatform.org/job/OSGP_Documentation_development/lastSuccessfulBuild/artifact/

documentation is back online

Thank you for your help and time.
I'm closing this issue and will be raising another in case I encounter any.


Binary data retrieval from mdb file?

Thank you for an excellent plugin, I have it currently powering my node/express api and it is very efficient for my SELECT queries, which is as far as I have gotten with it.
My problem:  I have .jpg image data binary encoded in a relational .mdb database - I would like to use nodeADODB to retrieve the binary data using a select query (or similar), so I can use node to then import the binary data and display it at an image endpoint in my api or write it to a local image file
It is beyond my knowledge how to do this with your plugin's ADO connection, but would be a huge help if you can please provide me with a place to start.
EG:
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/retrieving-binary-data

Binary is already supported in the development version, but not perfect.

@EarthmanWeb EarthmanWeb 4.0.4 Already published.

Thank you - I did not realize that. Can you please point me to the Function
call i would use, if there is no documentation for that functionality yet
On Wed, Nov 22, 2017 at 12:41 AM nuintun<EMAIL_ADDRESS>wrote:

Closed #45 https://github.com/nuintun/node-adodb/issues/45.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nuintun/node-adodb/issues/45#event-1353502707, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFk7GdgCN8BoDkutZb08Pm0-t1NZGAsjks5s49BFgaJpZM4QlGX4
.

Database add a field UserAvatar and set data type: OLE Object
Execute:
'use strict';

// External lib
const fs = require('fs');
const ADODB = require('node-adodb');

const avatar = fs.readFileSync('./avatar.jpg').toString('hex');

// Variable declaration
const connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;');

// Execute
connection
  .execute(
    `INSERT INTO Users(UserName, UserSex, UserBirthday, UserMarried, UserAvatar) VALUES ("Binary", "Male", "2017/11/22", 0, "${
      avatar
    }")`
  )
  .then(data => {
    console.log(JSON.stringify(data, null, 2));
  })
  .catch(error => {
    console.log(error);
  });

Query:
'use strict';

// External lib
const http = require('http');
const ADODB = require('node-adodb');
// Variable declaration
const connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;');

http
  .createServer((req, res) => {
    // Query
    connection
      .query('SELECT UserAvatar FROM Users where UserID=6')
      .then(data => {
        res.writeHead(200, { 'content-type': 'image/jpeg' });
        res.end(Buffer.from(data[0].UserAvatar, 'hex'), 'binary');
      })
      .catch(error => {
        res.writeHead(500, { 'content-type': 'text/plain' });
        res.end(error.stack);
      });
  })
  .listen(80);

Thank you for this solution, @nuintun - apologies for my delay on reply, just resuming this project now...
I have tried your suggestion, but when I add the binary field ('UserAvatar'), the query throws this error:
internal/buffer.js:30
  throw err;
  ^

Error: Unable to transcode Buffer [U_INVALID_CHAR_FOUND]
    at transcode (internal/buffer.js:27:15)
    at ChildProcess.child.on.exitCode (C:\~Projects\PT1\node_modules\node-adodb\lib\spawn.js:124:22)
    at emitTwo (events.js:125:13)
    at ChildProcess.emit (events.js:213:7)
    at maybeClose (internal/child_process.js:927:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
[nodemon] app crashed - waiting for file changes before starting...

Do you have any suggestions, please?


ics29:fix: store source address for query later on WriteAck

Description
closes: #759

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Codecov Report

Merging #912 (f4b6cd5) into ics29-fee-middleware (179c4f4) will increase coverage by 0.01%.
The diff coverage is 81.48%.

@@                   Coverage Diff                    @@
##           ics29-fee-middleware     #912      +/-   ##
========================================================
+ Coverage                 79.82%   79.83%   +0.01%
========================================================
  Files                       165      165
  Lines                     11653    11666      +13
========================================================
+ Hits                       9302     9314      +12
- Misses                     1901     1902       +1
  Partials                    450      450

Impacted Files
Coverage Δ

modules/apps/29-fee/keeper/genesis.go
85.00% <0.00%> (ø)

modules/apps/29-fee/ibc_module.go
91.15% <60.00%> (ø)

modules/apps/29-fee/types/genesis.go
83.72% <83.33%> (+0.86%)
:arrow_up:

modules/apps/29-fee/keeper/keeper.go
88.78% <100.00%> (ø)

modules/apps/29-fee/keeper/relay.go
88.88% <100.00%> (+4.27%)
:arrow_up:


Updating dependency for compilation

@Shankari please review. This is for developer and ci workflow improvement.
As part of local development in the everest playground devcontainer there was a compilation issue

ninja -j$(nproc) -C build install
ninja: Entering directory `build'
[1/6] Building CXX object _deps/nlohmann_json_schema_validator-build/CMakeFiles/nlohmann_json_schema_validator.dir/src/smtp-address-validator.cpp.o
FAILED: _deps/nlohmann_json_schema_validator-build/CMakeFiles/nlohmann_json_schema_validator.dir/src/smtp-address-validator.cpp.o
/usr/bin/c++  -I/workspaces/libocpp/build/_deps/nlohmann_json_schema_validator-src/src -I/workspaces/libocpp/build/_deps/nlohmann_json-src/include -g -Wall -Wextra -Wshadow -std=gnu++17 -MD -MT _deps/nlohmann_json_schema_validator-build/CMakeFiles/nlohmann_json_schema_validator.dir/src/smtp-address-validator.cpp.o -MF _deps/nlohmann_json_schema_validator-build/CMakeFiles/nlohmann_json_schema_validator.dir/src/smtp-address-validator.cpp.o.d -o _deps/nlohmann_json_schema_validator-build/CMakeFiles/nlohmann_json_schema_validator.dir/src/smtp-address-validator.cpp.o -c /workspaces/libocpp/build/_deps/nlohmann_json_schema_validator-src/src/smtp-address-validator.cpp
smtp-address-validator.cpp:39:2: error: narrowing conversion of ‘-32’ from ‘int’ to ‘char’ [-Wnarrowing]
...

The issue is resolved by this dependency update.

@couryrr-afs LGTM!
You do need to re-push after signing off - DCO check is failing...

Is addressed with: https://github.com/EVerest/libocpp/pull/385


Disallow Undeclared Variables rule?

Hi!
What about Undeclared Variables?
Or there is no such rule, or I did not find it.
Example:
@import "./variables";

.some {
    $block: &;

    #{$block}__item {}    // must be OK, declared in this file.

    color: $color; // must be OK, declared in "./variables" and was imported.

    font-family: $font;  // Undefined variable.
}

The similar rule in eslint is called no-undef.

The idea is good, but it might just be difficult to implement.
The rule would need to parse all the CSS files that your files are referencing to find the variables, and that might be very slow to do.

About slowness (imho):
When using tools that improve the quality of the code or, for example, reduce the size of the bundle code, the speed issue appears quite often. Suppose the rule is turned off by default, and its implementation will not affect the speed of work while it is turned off. Then the decision on what is more important, the speed of check or the accuracy of check, can be made individually by the developer.
For example: I would agree to include this rule, if the check speed drops no more than twice.
And of course, if the implementation causes a slowdown of verification for all users, this rule is useless.

For example: I would agree to enable this rule, if the check speed drops no more than twice.

I totally agree, but usually when there is reading from the disk + parsing involved, the performance drop is more like between 10x and 100x. There might of course be some tool (or even Sass?) that could do these kind of things in a very performant way.

There's also a similar discussion in this issue:
https://github.com/kristerkari/stylelint-scss/issues/276

In addition to performance, there's the issue of accurately resolving imports. Many applications pass load paths or custom importers to Sass which the linter won't have access to, without which accurately resolving imports to see which variables are defined in a given scope becomes essentially impossible.

In addition to performance, there's the issue of accurately resolving imports. Many applications pass load paths or custom importers to Sass which the linter won't have access to, without which accurately resolving imports to see which variables are defined in a given scope becomes essentially impossible.

I think that with this comment it is enough to conclude that creating a rule like this does not make sense. For those who want to find unused variables, they can use a tool like this one:
https://github.com/XhmikosR/find-unused-sass-variables


Upgrade to SDK 46

https://github.com/CosmosContracts/juno/pull/230
https://github.com/CosmWasm/wasmd/pull/938


[Extensibility] HTTP protocol (branch: http-extensibility)

What this PR does / why we need it:
Implements: #85
Replaces: https://github.com/deislabs/akri/pull/117 deislabs:http-extensibility instead of deislabs:main
Special notes for your reviewer:
If applicable:

[X] this PR contains documentation
[ ] this PR contains unit tests
[X] added code adheres to standard Rust formatting (cargo fmt)
[X] code builds properly (cargo build)
[X] code is free of common mistakes (cargo clippy)
[ ] all Akri tests succeed (cargo test)
[ ] inline documentation builds (cargo doc)
[ ] version has been updated appropriately (./version.sh)

@bfjelds thanks for reviewing.... I'm on it.

I think I've resolved everything (and some new stuff I uncovered) with the the exception of:

Adding GitHub Actions to build Broker variants
Removing shared from Broker

This needs work:

HTTP Protocol does not use Make(files) and I've not tested x-platform
This likely doesn't accord with your preferred structure (but I hope it's a decent start)
It statically tags images as latest (how can I grab the current version?)

Action for HTTP Broker containers: https://github.com/deislabs/akri/pull/135/commits/1d5f8f6ed4e7d1e3fa8aeadfb19dae2b0de8f5ac

You are, of course, correct about removing shared from the Dockerfiles but I'm leery of breaking something else.
I followed the Nessie example's Dockerfile and it adds the Broker to the project's members too; I think no samples should be added.
Nessie and HTTP then both built the sample from the root ./Cargo.toml (with [members] references). I think both should likely not be present in ./Cargo.toml and the samples should not take dependencies on Akri itself.
The samples should probably (!?) all be treated distinctly, separately from the ./Cargo.toml:
[workspace]
members = [
    "shared",
    "controller",
    "agent",
    "samples/brokers/http",
    "samples/brokers/udev-video-broker"
]

This creates something of a dilemma since these samples then become somewhat 'parasitical' on the Akri project.
Propose: consider spinning out all the samples into a separate repo: akri-samples ?
I inadvertently copied in akri-shared and don't need it.

Caught a few more doc bugs :-(
Replaced Extensibility

Ok, I'm now lost :-( Do I have anything outstanding on this PR?

Ok, I'm now lost :-( Do I have anything outstanding on this PR?

Heh ... it happens.  It looks like the last push you made brought in some changes from main?
I think my biggest ask would be that you check the changes I made to the mock GoLang code in extensibility.md (I tried to combine the device and discovery service, but haven't actually tried the code).
After that, I think I will try to walkthroug the docs with a fresh repo ... if that succeeds, i'll merge this and create a PR in main, replacing extensibility.md.

Ok, I'm now lost :-( Do I have anything outstanding on this PR?

Heh ... it happens.
I think my biggest ask would be that you check the changes I made to the mock GoLang code in extensibility.md (I tried to combine the device and discovery service, but haven't actually tried the code).

I'll do it this afternoon. Thank you!

After that, I think I will try to walkthrough the docs with a fresh repo ... if that succeeds, i'll merge this and create a PR in main, replacing extensibility.md.

Ok, I'm now lost :-( Do I have anything outstanding on this PR?

Heh ... it happens.
I think my biggest ask would be that you check the changes I made to the mock GoLang code in extensibility.md (I tried to combine the device and discovery service, but haven't actually tried the code).

I'll do it this afternoon. Thank you!

After that, I think I will try to walkthrough the docs with a fresh repo ... if that succeeds, i'll merge this and create a PR in main, replacing extensibility.md.

Almost everything seemed ok when I walked through the doc today.  The only thing that didn't work was the busybox curl of service names (for both discovery and device):
kubectl run curl  --stdin --tty --rm --image=radial/busyboxplus:curl

X=6
curl device-${X}:8080

Using the ip addresses worked and the broker worked ... but the busybox pod did not.  I was using K3s, not MicroK8s, so I'm not sure if that makes a difference or not.

@bfjelds your consolidated Golang mock code works.
Originally I had the 2 services combined and decided to split them for some reason .... I think only to permit e.g. someone using another discovery option (e.g. Consul) but... it's undoubtedly not worth the sweat.

It's curious that you were unable to curl using K3s ...
Are you able to resolve any names|services (e.g. kubernetes.default)?
Does K3s have a DNS service?

It's curious that you were unable to curl using K3s ...
Are you able to resolve any names|services (e.g. kubernetes.default)?
Does K3s have a DNS service?

I see a couple threads that point towards a problem with busyboxplus.  I just finished trying this image instead and it worked for both K3s and MicroK8s:
kubectl run curl -it --rm --image=curlimages/curl -- sh

It's curious that you were unable to curl using K3s ...
Are you able to resolve any names|services (e.g. kubernetes.default)?
Does K3s have a DNS service?

I see a couple threads that point towards a problem with busyboxplus. I just finished trying this image instead and it worked for both K3s and MicroK8s:
kubectl run curl -it --rm --image=curlimages/curl -- sh

Interesting. Since you have the latest version, would you mind replacing references to radial/busyboxplus for me please?


Space between each letter for mobile (fanceh command)

Simple PR, but fixes an issue (at least on iOS) that causes a lot of the output of the fanceh command to not display properly. For example, test displays :flag_es: in between due to the mobile behavior :regional_indicator_e::regional_indicator_s:
This just adds a space, fixing all those issues. :) (:regional_indicator_e: :regional_indicator_s: )

Awesome, I'm fine with this, I just haven't gotten around to doing this myself yet.
On a side note, what's your Discord username? I give people who contribute to SharpBot the Contributor role on my Discord server.

Hey, no problem. My username is @.vlexɹɐ.#5320
<@243902693666455553> :-)

Role added.


[hotfix] make github wb logger less brittle [OSF-6947]

Purpose
WB will soon start returning the applicable branch name in all Github action metadata.  The current create_waterbutler_log implementation for GH cannot handle this, as it expects a commit sha if any extra metadata is returned at all.
Changes
Test directly for extra.commit.sha instead of just extra.
Side effects
None expected.  This should have no visible effects.  It's purpose is to not break new functionality.
Ticket
[OSF-6947]
https://openscience.atlassian.net/browse/OSF-6947

This seems like it'll work well. 🎉 🐧 🎉


Add receiving on chain to floating action button

As discussed in #1296 we should be able to receive on chain through the floating action button.
https://github.com/get10101/10101/assets/224613/035e8a95-0437-4ba2-9bcf-1804f0309d2a

I like how this is solved in zeus. The order is basically reversed. You firstly enter the amount and then see the qr code, you can then switch between unified, lightning and onchain.

Yep, we could do that too!
What format is Zeus using for unified QR codes? https://bitcoinqr.dev ?

I like that, it's definitely simpler and more flexible because you can just swap the qr code instead of going back in the wizard.

Sounds good!


How to use antd/cssinjs to define custom classname

What problem does this feature solve?
In experimental version I noticed that there is a long-awaited support for JSS. Unfortunately, it is unclear how to use antd JSS implementation to define custom classNames like in react-jss. I see in the code, that useStyle hook is used const [wrapSSR, hashId] = useStyle(prefixCls);, but it returns a wrapper for the component, when I need an object with css class names. Is there a way to do so with your lib?
What does the proposed API look like?
see above

@ant-design/cssinjs is a package that focus on the component level cssinjs support. You should still use app level cssinjs solution (like jss, emotionjs, styled-component, etc) which you like to handle this.
import { theme } from 'antd';

const Text = styled.span`
  color: ${props => props.colorPrimary};
`;

const Demo = () => {
  cont { colorPrimary } = theme.useToken();

  return <Text colorPrimary={colorPrimary}>Hello World</Text>;
};


Rename packages to com.commercetools

@schleichardt @dariuszor as we are having problems with the other PR (looks like it's trying to merge an old state) I'm doing it step by step.
First, changing package names.

👍


Leader Array

Is your feature request related to a problem? Please describe.
We need to find all the leader elements from the given array.
Describe the solution you'd like
I would like to solve the problem using C++ in O(n) time complexity
Do you want to work on it
I would implement this question using C++.

/assign

Please assign this to me in Python and Java

Please assign this to me in Python
@Rohan27s @rish-singhal


Text alignment

Is there a way to position the counter on the left, rather than the right? (I'm using CKEditor with elementspath disabled, so that space is empty.)
I'm also new to configuring CKEditor, so apologies if there's a way of doing it outside your plugin.

Thanks!


Update index.rst

Appleseed Portal Installation
Quick Install

Release

Grab the latest release : <https://github.com/Appleseed/portal/releases>_

Database

Download Microsoft SQL Server Express if you do not already have it : 'https://msdn.microsoft.com/en-us/sqlserver2014express.aspx?f=255&MSPPError=-2147217396'_

Create an Empty SQL Server Database in a SQL Server Instance
.. image:: ../images/Database-Setup.jpg
*Right click on the Databases folder in the Object Explorer on the left and click on "New Database".
*Enter a name in the Database Name: field

Set up NT AUTHORITY/NETWORK SERVICE as a Login if it doesn't exist
*Right Click on the Logins folder in the main Security folder

Select "New Login.."

Click on the Search button next to the Login Name field.
Click on the "Advanced..." button.

In this next window, click on the "Find Now" button on the middle right side.

Find "NETWORK SERVICE" in the list, highlight it and click on "OK".

Click "OK" in the next window.

Give a user access to your SQL Server Database [ Network Service is recommended ]
.. image:: ../images/User-Access1.jpg

Give this user db_owner in the user mapping section to your Database

.. image:: ../images/User-Access2.jpg

IIS Hosting

Unzip the archive to a non-windows controled folder such as C:\Appleseed [ ie : Not the Windows folder or folders locked ]
.. image:: ../images/Unzip.jpg

Create a Site in IIS with a .NET 4.0 Application Pool
.. image:: ../images/IIS1.jpg

Change the Identy on the Application Pool to Network Service [ The site will run under this identity ]
.. image:: ../images/IIS2.jpg

Point the IIS site folder to C:\Appleseed  or where you unzipped your archive
.. image:: ../images/IIS3.jpg

Browse your Site which will cause a redirect to the Web Installer
.. image:: ../images/Web-Installer.jpg

Web Installer

Follow the Instructions of the Web Installer

Give write access to the Identity [ ie NetworkService ] of your Application Pool to the below Files and Directories
      .. image:: ../images/Directories-Access.jpg

The Web Installer will do an environment check to ensure the proper permissions
Web.config – Needs write if you want the web installer to set your web.config up for you [ recommended ]
This should be removed after install
\rb_logs – Needs write to provide error / info logs
\Portals – Needs write to allow writing site files

Post Installation

On successful installation you should see a bootstrap theme and a login
.. image:: ../images/Portal.jpg

Use the default login<EMAIL_ADDRESS>| admin

Use Edit Profile to change your password

@ramseur this is

This looks good.  Pushing.


Adding individual off days in the team calendar is not working - only possible to add days off for the hole team

Adding individual off days in the team calendar is not working anymore - only  possible to add days off for the hole team.
It is still possible to add days of for each individual through the capacity of each sprint.

We're closing old issues so we can get back to actively maintaining the extension. Feel free to reopen if this is still an issue for you.


benchmark concurrent access to netcdf file

Test concurrent access to netcdf file using varying number of
threads and varying number of open files. At the moment opening several
files should not have any effect since there is a library-global mutex.
This introduces a slightly larger test file (3.1 MB) retrieved from http://test.opendap.org/dap/data/nc/coads_climatology.nc
Run with:
$ cargo bench --tests conc

I think we'll have to pull in Criterion to get benchmarks on stable

coads_climatology.nc could probably also be replaced by a generated file.

Adjusting 'REPETITIONS' seems to suggest most of the time is spent reading the variable, as one tenth of this value results in 90% performace improvements for all but the oversubscribed jobs.

Codecov Report

Merging #52 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #52   +/-   ##
=======================================
  Coverage   84.74%   84.74%
=======================================
  Files           7        7
  Lines        1278     1278
=======================================
  Hits         1083     1083
  Misses        195      195

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 a9bb3ff...d093bd1. Read the comment docs.

Yes, that is probably true. All that time other threads need to wait. Also
for the file pool. Currently, with the global lock, you would get the same
result if each thread was working on completely different files.
tir. 7. jan. 2020, 18:55 skrev magnusuMET<EMAIL_ADDRESS>
Adjusting 'REPETITIONS' seems to suggest most of the time is spent reading
the variable, as one tenth of this value results in 90% performace
improvements for all but the oversubscribed jobs.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mhiley/rust-netcdf/pull/52?email_source=notifications&email_token=AAAN36YT6EZRNXMK2RL4R43Q4S6XZA5CNFSM4KDZ34DKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIJW44A#issuecomment-571698800,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAN3675J2AXMW3S5NDULALQ4S6XZANCNFSM4KDZ34DA
.

Interesting to note that a per variable mutex is definitely needed, removing the one protecting the variable results in an assertion error from netCDF
netcdf-4.6.0/libsrc/posixio.c:449: px_rel: Assertion `pxp->bf_offset <= offset && offset < pxp->bf_offset + (off_t) pxp->bf_extent' failed

when benching with threaded_concurrent_reads_same_fd

Interesting to note that a per variable mutex is definitely needed, removing the one protecting the variable results in an assertion error from netCDF
netcdf-4.6.0/libsrc/posixio.c:449: px_rel: Assertion `pxp->bf_offset <= offset && offset < pxp->bf_offset + (off_t) pxp->bf_extent' failed

Interesting, maybe that refers to some buffer extents... I guess it is pretty critical whether those are variable wide, file wide or library wide. Seems unlikely that they are variable wide. A useful comparison would maybe be to read an equivalent slice of bytes from the raw file using native files for the same type of benchmarks (or even something like rio). Especially if we could actually decode the values. Re-writing netCDF (and essentially HDF5) is maybe too ambitious, even if just supporting the newest variant.

A later version of netcdf supports custom dispatchers, so it is only a mildly ambitious task if one implements only the reading subset...
Implementing per file-locking seems to be safe, and yields a ~70% performance for the pooled fds using a 4-core, 8 threads computer.
Criterion output
concurrency/conc_sequential_reads_same_fd
                        time:   [350.80 ms 351.54 ms 352.42 ms]
                        change: [-0.9516% -0.4409% +0.0399%] (p = 0.12 > 0.05)
                        No change in performance detected.
Benchmarking concurrency/threaded_concurrent_reads_same_fd: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 25.2s or reduce sample count to 10
Benchmarking concurrency/threaded_concurrent_reads_same_fd: Collecting 10 samples in estimated 25.220 s                                                                                concurrency/threaded_concurrent_reads_same_fd
                        time:   [431.36 ms 436.37 ms 447.57 ms]
                        change: [-2.6781% -0.8272% +0.8770%] (p = 0.39 > 0.05)
                        No change in performance detected.
Benchmarking concurrency/threaded_concurrent_reads_same_fd_many_threads: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 29.4s or reduce sample count to 10
Benchmarking concurrency/threaded_concurrent_reads_same_fd_many_threads: Collecting 10 samples in estim                                                                                concurrency/threaded_concurrent_reads_same_fd_many_threads
                        time:   [520.47 ms 530.47 ms 541.66 ms]
                        change: [+0.2419% +1.8210% +3.5815%] (p = 0.05 > 0.05)
                        No change in performance detected.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild
Benchmarking concurrency/threaded_concurrent_pool_fds: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 6.6s or reduce sample count to 10
Benchmarking concurrency/threaded_concurrent_pool_fds: Collecting 10 samples in estimated 6.5917 s (55                                                                                concurrency/threaded_concurrent_pool_fds
                        time:   [116.72 ms 117.34 ms 118.60 ms]
                        change: [-72.827% -72.489% -72.091%] (p = 0.00 < 0.05)
                        Performance has improved.
Benchmarking concurrency/threaded_concurrent_pool_fds_many_threads: Warming up for 3.0000 s
Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 9.5s or reduce sample count to 10
Benchmarking concurrency/threaded_concurrent_pool_fds_many_threads: Collecting 10 samples in estimated                                                                                concurrency/threaded_concurrent_pool_fds_many_threads
                        time:   [162.98 ms 165.43 ms 168.49 ms]
                        change: [-68.981% -68.123% -67.279%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild

That is interesting. With your criterion changes there is must less difference between the benchmarks here: 500ms up to 560ms for worst benchmark.
70% speedup would be quite useful!

BTW: If I remember correctly and netcdf4 uses the hdf5 lib, it is probably subject to: https://stackoverflow.com/a/34913236/377927

The supplied test file is a CDF file, so the HDF5 problems would not be visible. I'll try to swap to a generated file instead.

And the results are not good performance wise, as HDF5 on ubuntu is built with the thread safe option. Using the same file descriptor will at least force the threads to wait on the same mutex.

Right 😕 no safe way around that that I can think of ...
tir. 7. jan. 2020, 20:41 skrev magnusuMET<EMAIL_ADDRESS>
And the results are not good performance wise, as HDF5 on ubuntu is built
with the thread safe option. Using the same file descriptor will at least
force the threads to wait on the same mutex.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mhiley/rust-netcdf/pull/52?email_source=notifications&email_token=AAAN367J23J4TGTCRZ26RK3Q4TLHPA5CNFSM4KDZ34DKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIKA77I#issuecomment-571740157,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAN3675OUJBDLCPHU7CRGDQ4TLHPANCNFSM4KDZ34DA
.

We could build netcdf and hdf5 from source and decide the compile features ourselves. Later versions tend to have better thread safety

Yes, I noticed there was another issue for that. Haven't looked into how
many other dependencies they have. Seems like the best option. And also
trying to implement our own native rust implementation for hdf5...
tir. 7. jan. 2020, 20:47 skrev magnusuMET<EMAIL_ADDRESS>
We could build netcdf and hdf5 from source and decide the compile
features ourselves. Later versions tend to have better thread safety
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mhiley/rust-netcdf/pull/52?email_source=notifications&email_token=AAAN366AVNOO7MFOGDBLGOTQ4TL4PA5CNFSM4KDZ34DKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIKBQWA#issuecomment-571742296,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAN36Y7VMCSCNJDD7IQONTQ4TL4PANCNFSM4KDZ34DA
.

I read a bit about HDF5 SWMR[0], but since this is process level it should not make it any more thread safe. I guess splitting readers across multiple processes would work for the netcdf-rust library too.
[0] https://support.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesSwmrDocs.html

I don't think this library should handle the complexity of process synchronisation, message passing, etc. required to implement this. As the Mutex is not process-shared, the end user could handle this complexity, while we ensure thread safety through lock on read (which does not need to happen when on thread-safe HDF5).

Yes, I agree.
ons. 8. jan. 2020, 15:51 skrev magnusuMET<EMAIL_ADDRESS>
I don't think this library should handle the complexity of process
synchronisation, message passing, etc. required to implement this. As the
Mutex is not process-shared, the end user could handle this complexity,
while we ensure thread safety through lock on read (which does not need to
happen when on thread-safe HDF5).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mhiley/rust-netcdf/pull/52?email_source=notifications&email_token=AAAN36567YWUB4ILHQWWRL3Q4XSAFA5CNFSM4KDZ34DKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIMZ3OI#issuecomment-572104121,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAN363OAYLT7DXLREVPIXLQ4XSAFANCNFSM4KDZ34DA
.


BASEX improvements

This addresses all issues in #230 and finalizes #226.
Main changes
The basis-generation code (_bs_basex()) is rewritten almost completely.

Now it works with arbitrary width parameters σ and accepts n, sigma instead of n, nbf. sigma is actually used everywhere, since it is more fundamental than nbf (which is n / sigma).
The computations became is >10 times faster:

All the needed Γ-function values are precomputed, which takes O(n2) extra space (~the same as for the basis matrices), but avoids recomputing them O(n3) times.
The summation cutoff is tightened very close to the limit for "numerically exact" results (floating-point precision).

It can take previously computed smaller basis matrices for the same σ and extend them by computing only the missing (outer) elements.

The get_bs_cached() code (renamed from get_bs_basex_cached() for consistency) is changed accordingly.

The file-naming scheme is changed to basex_basis_{n}_{sigma}.npy.
Attempts to get the basis (if not already in memory) are tried in the following order:

If the file for given n, sigma exists, then it is used.
If files for larger n and the same sigma exist, then the smallest of them is loaded and cropped.
If files for smaller n and the same sigma exist, then the largest of them is loaded and extended by _bs_basex().
If nothing helps, then a completely new basis is generated.

The MAGIC_NUMBER intensity correction is replaced by get_basex_correction(), activated by passing correction=True to basex_transform() (or get_bs_cached()). See #230 for details.
A new module abel.tools.polynomial is added (primarily for get_basex_correction()), which implements the analytical Abel transform for arbitrary polynomials. Polynomial and PiecewisePolynomial are added to abel.tools.analytical.
Test are added/updated for abel.basex and abel.tools.polynomial.
Additional changes
Declared _source as global in dash.cache_cleanup() (amending #232).
Minor corrections to documentation.
In particular, abel.tools.analytical docstrings are moved from __init__() to class levels, since they were not visible in the generated documentation.
Questions
What is mask_valid in BaseAnalytical and how to set it meaningfully for polynomials?
What happened to the GaussianAnalytical docstring (the ratio_valid_sigma description)?
The are some problems with multiple parameters in docstrings, for example, see abel.tools.polar.cart2polar — x, y : floats or arrays is rendered as "y (x,)".
This is probably related to https://github.com/sphinx-doc/sphinx/issues/2227?
Perhaps, linbasex.basis_cache_cleanup() should be renamed to linbasex.cache_cleanup() for consistency with and dasch.cache_cleanup() basex.cache_cleanup()?

Who will test the testers?
I am wondering why AppVeyor tests with Python 3.5 fail.
Most interestingly, the 32- and 64-bit builds fail at different checks in test_basex_basis_sets_resize(), all of which pass without problems in Travis CI and on both my computers (i5 GNU/Linux and Ryzen3 Win10). And they could not fail the way the do — producing different numbers in the arrays — since the only difference is which of these numbers are calculated and which are copied from the previous calculations with the same parameters.
It seems that their machines have some memory corruption or slightly broken floating-point units. Is it possible to rerun these tests? Or if somebody can reproduce the problem...

The default, correction=False. Oh, you are right ~1.5%, I was looking at profile 2, but its maximum is at the origin. 1.5% correct then?

It should be (2/√π) / MAGIC_NUMBER ≈ 1.0145, that is, ~1.45%.
Try correction=True. It should give proper normalization and remove the glitch near r = 0.
Also using sigma ≠ 1 (with default correction=False) should produce oscillating but averagely correct intensities. Then correction=True should also remove these oscillations.

Yes, that's it. Perhaps, correction=True should be the default?

I also think so, but wanted to make sure that the fundamental stuff works properly and then that this new correction does not cause problems.

This is fantastic! Well done @MikhailRyazanov.

I have changed the assert np.array_equal() test to assert_allclose() with 10−15 tolerances to avoid this problem.

Yeah, allclose() is way nicer than checking for perfect equality. It's amazing how often Python thinks that two arrays that should be equal aren't actually equal :)

What is mask_valid in BaseAnalytical and how to set it meaningfully for polynomials?

I think that @rth could give you the best answer to this question. But, I think that it's an array that is the same length as the returned array and serves as a True/False mask for where the transform is valid. I think that some functions only had a certain range where they were correct.

What happened to the GaussianAnalytical docstring (the ratio_valid_sigma description)?

That docstring appears to be messed up. Maybe open an Issue?

The are some problems with multiple parameters in docstrings, for example, see abel.tools.polar.cart2polar — x, y : floats or arrays is rendered as "y (x,)".
This is probably related to sphinx-doc/sphinx#2227?

Maybe we can the napoleon_use_param = False in conf.py as suggested. You can try to do that in this PR, or open a separate issue.

Perhaps, linbasex.basis_cache_cleanup() should be renamed to linbasex.cache_cleanup() for consistency with and dasch.cache_cleanup() basex.cache_cleanup()?

That makes sense to me.

@DanHickstein, napoleon_use_param = False seems to work.
@stggh, thanks for noticing the remaining get_bs_basex_cached()!
Do you agree with renaming linbasex.basis_cache_cleanup() → linbasex.cache_cleanup()?
@rth, it seems that GaussianAnalytical() had that corrupted docstring when you first committed it. Do you know what it was supposed to be?

renaming linbasex.basis_cache_cleanup() → linbasex.cache_cleanup()

Yes, feel free to change it in this PR.

In principle, this could be merged as is, but I would like to hear from @rth (or anybody else) about the mask_valid (I can set it to False at each end of each interval, if this will help anything) and about
https://github.com/PyAbel/PyAbel/pull/235#discussion_r230621726 and the GaussianAnalytical docstring.
Also, what everybody thinks about using correction=True by default?

Yes, if there is any region of the analytic transform where the results are not correct, then set those positions of mask_valid to False.
I would imaging that the majority of users would want correction=True, so I think that this is an appropriate default. By default we should offer whatever decisions we think produce the best results.

TBH, I don't have much recollection about anything related to mask_valid, and looking at the half written docstring I have no idea now what was missing :) If anything doesn't make sense, you might as well re-write it, sorry..

@rth, something like this?
    ratio_valid_sigma : float
        in the benchmark take only the range
        0 < r < ration_valid_sigma * sigma
        (exclude possible artefacts on the axis and the possibly clipped tail)

And what about test_suite="abel.tests.run_cli" in setup.py?

Yes, that makes sense.

And what about test_suite="abel.tests.run_cli" in setup.py?

Let's remove it, I'm pretty sure I saw somewhere that specifying test_suite in setup.py was a historical approach, not very recommended now. It's definitely not useful with pytest.

@DanHickstein, OK, I'll then set the default correction=True.
The mask stuff is not very clear.
One the one hand, if the resulting function is continuous (is there any reason to use discontinuous piecewise polynomials in tests?), then it should be well-behaved everywhere.
One the other hand, if the function has singularities, then the extent of the problematic regions will depend on the transform method more than on the function itself.
Maybe adding a parameter like valid_gap to set ±valid_gap points around each domain boundary to False would be reasonable?

Final changes
BASEX:

Enabled correction=True by default.

Other:

Renamed linbasex.basis_cache_cleanup() to linbasex.cache_cleanup() for consistency with other methods (see #232).
Set napoleon_use_param = False in doc/conf.py for proper rendering of multiple input parameters with shared type/description. Please check that it did not break something else.
Corrected the broken GaussianAnalytical docstring.
Removed test_suite="abel.tests.run_cli" from setup.py (amending #228).

which functions had invalid regions

direct
See #214 for issues with the grid/derivative that produced odd end values, now fixed.
hansenlaw
End values are not defined, copied from adjacent columns.

@stggh, so each method should also have its own mask.
Let's leave it as is for now. If some useful thoughts on where and how this can be used appear, then it would be better to make a separate decision, consistent for all functions and methods.

Is this ready to merge?

Should be...

@MikhailRyazanov as the code author, you have the honour of pushing the green button.

Done.
Thanks everybody for the feedback and testing!

Awesome! PyAbel has seen some great improvements in the past few weeks :)


docs: custom iso

What is the advantage of using nginx when you can just put the iso in the /storage folder?

try it  before but seams  not work...


Global filter

Please Consider adding the ability to setFilter with a column id that is not represented in the table.
Use Case:
Global filter input that can be used with setFilter function along with other filters in the table.
Right now i need to create a dummy column in order to use the setFilter function.
It can be nice if i could pass a flag to the function setFilter that indicates if the column is not represented in the table.

A global filter option would be clutch. Here's what a common use case looks like.

I think you're right. I'll start thinking on how this could fit into the API. Stay tuned.

Whats the status update for this feature ?

A global filter would be fantastic! Our use case is quite similar to the ones already requested. Being able to pair a global filter with something like Fuse.js (https://fusejs.io) for weighting and fuzzy matching would be fantastic for a lot of search use cases.

@wpapper i think so you can use material UI for react to add this feature https://material-ui.com/components/tables/

I also need such a plugin! Will this be released soon?😍

This is now available!
7.0.0-rc.15

Added useGlobalFilter hook for performing table-wide filtering
Filter function signature has changed to supply an array of column IDs (to support both the tranditional single column style and the new multi-column search style introduced with useGlobalFilter).
Removed the column parameter from the filter function signature as it was unused and no longer made sense with the array of IDs change above.
Updated the filtering example to use a global filter in addition to the column filters

@tannerlinsley thank you so much

@tannerlinsley MAN, you are amazing! thx :D

Fantastic, could you updated @types/react-table
useTable function with missing
    const {
        getTableProps,
        getTableBodyProps,
        headerGroups,
        rows,
        prepareRow,
        state,
      ->   preGlobalFilteredRows,
      ->   setGlobalFilter,
    } = useTable(
        {
            columns,
            data,
            defaultColumn,
        },
        useFilters,
        useGlobalFilter
    );

Fantastic lib btw!!!

@bartoszgolebiowski Feel free to submit a PR to the types repo. Those types are 3rd party and not tracked or maintained here.

hello, global filter not proper working plz any suggestion?

For anyone looking for types for the filtering properties from useTable, here is a link for a type definition file https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-table

Hi @tannerlinsley ,
Is it possible to use one global search box to filter two tables?

Hi @tannerlinsley ,
Is it possible to use one global search box to filter two tables?


Add low level caching layer for all files in root

Problem statement

When a statement root occurs in a Caddyfile, all files in this directory are opened at each request, making it much slower than necessary.
When using templates, all the files are cached on process startup and modification on the files are not detected.

This is different from issue #10 which is to cache external data and issue #390 that wasn't focused.
Goals

Reduce file I/O and GC pressure by keeping frequently accessed static files on disk in memory in a cache.
Fix templates caching mechanism that doesn't detect when a file change.

Action items

Create a http.FileSystem compatible system that does implicit caching via a package like https://github.com/coocood/freecache.

Detect when files are updated and clear the cache entries accordingly using fsnotify.

Leverage this caching layer in httpserver.Context.Root.
Make sure all all I/O pass through this, including templates. caddyhttp/templates/templates.go

Have a way to invalidate the compiled templates when the underlying file changed.

It is possible I misunderstood the design and that the AIs are incorrect.

Hey @maruel! Thanks for your feedback/proposal. I want to make sure I understand it completely.

When a statement root occurs in a Caddyfile, all files in this directory are opened at each request, making it much slower than necessary.

This is true, although right now I'm leaning on OS/FS optimizations to make load times better. I think Go uses Unix sendfile, doesn't it?

When using templates, all the files are cached on process startup and modification on the files are not detected.

This... I don't believe this is true. Template files are loaded and parsed at request time, not startup; I was using templates yesterday and saving them and reloading the page was working great for me... 😶 Here's the relevant code: https://github.com/mholt/caddy/blob/0a0d2cc1cf12d58c5e38680689c78f18044288e6/caddyhttp/templates/templates.go#L48-L60
So while I can see why the first goal will be a valuable feature in Caddy, does this render the second goal obsolete?
Anyway, if I understand the rest of your proposal right, we wouldn't need to touch templates (?) but just add a caching mechanism to the static file server. This could be configured (enabled) with a directive in the Caddyfile.
Questions:

Is cache eviction determined solely on file modification? Do we cap at max size or age? I'm not a caching guru so I defer to the audience. :)
If this does touch more than just the static file server, then maybe a pre-requirement of this feature is something I've kind of wanted for a long time, which is a standard, httpserver-provided utility function that loads a file from disk. Any middleware that wants to load a file from disk hits this function instead of doing it each themselves. This would be where we put the caching code.

(This reminds me I want to propose a proxy caching feature as well. But that's for another issue.)

Hi @mholt !
Clarifying a few things:

I ran strace on a trivial http server implementation and was a bit confused about the output. So you are right, irrelevant for static files, at least on non-Windows. So let's ignore this for now.
markdown and templates have different caching semantic. templates reparse on the fly, markdown loads all the templates on process startup. This is due to caddyhttp/markdown/setup.go#L105.

The current template caching behavior is surprising IMHO so I renamed the issue to focus on the templates.

Is cache eviction determined solely on file modification? Do we cap at max size or age?

I'm thinking of fsnotify, so it is based on OS notifications of file modification, no polling involved.
Using a package like freecache to do the actual cache management. To be fair, I don't think most users have multi-megabytes templates so memory pressure would be rare.
The compiled templates would be cached, not the raw template string, to increase efficiency.

I migrated from markdown to using hugo directly, which means I'm not personally blocked on this anymore: I don't need to restart caddy when I modify the templates. Keeping the issue open as this is still a serious deficiency in the markdown module IMHO.

Thanks for clarifying. I'm beginning to agree. markdown should probably parse the templates at request-time (and then cache them, as you're proposing; that should help with performance).
I'm booked up for a while but anyone is welcome to tackle this! If the templates and markdown directives share any logic, try to make the code common between them. Maybe caching is something that the httpserver provides for middleware.

@maruel Good news, we've got an official cache middleware started here in the v2 branch (Caddy 2 is currently in beta): https://github.com/caddyserver/caddy/tree/v2/modules/caddyhttp/httpcache
It is suitable for any HTTP response, not just those from templates.
It's a working, simple PoC right now but I'd love some help getting it finished. Can you give it a try?

Hi! What would be the best avenue to discuss the design choices? I don't promise anything else, but at the very least a discussion about the design trade offs would be good.

@maruel Either here, or if you want some tighter feedback, I can invite you to our dev Slack. As long as we summarize what we decide here it should be fine. Want me to send an email to the address on your GitHub profile?

Observations:

I recommend against encoding/gob and instead use something not self-describing and using flat memory, like flatbuffer, capnproto, etc. I don't have a preference on which.

https://play.golang.org/p/G3EgQIDCABG shows that a trivial header is 153, which is a relatively large overhead.

Think about keeping the data pre-compressed, probably gzip and explicitly handle this to not break clients not supporting the same compression. The advantages are:

Data is only compressed once for HTTP1 clients supporting gzip.
Data takes less space the cache.
Decompression is much faster than compression, so it's not a big deal to decompress for HTTP2 client to recompress on the fly.

Cache HEAD too.

Since it's fairly involved to get everything right, maybe file separate github issues?

@maruel

I recommend against encoding/gob and instead use something not self-describing and using flat memory, like flatbuffer, capnproto, etc. I don't have a preference on which.
https://play.golang.org/p/G3EgQIDCABG shows that a trivial header is 153, which is a relatively large overhead.

Good point, I'm totally in favor of this. I just whipped it up real quick as a PoC and we need something better. Would anyone have a chance to do a quick comparison of which serialization is most efficient? We don't need type information embedded into the serialization, necessarily, since we have a very specific case of just a map of strings.
Honestly, we could probably even roll our own VERY simple serialization format that just concatenates each header field using a strings.Builder. It's for internal use only, so a general-purpose serialization might be overkill.

Think about keeping the data pre-compressed, probably gzip and explicitly handle this to not break clients not supporting the same compression.

One advantage we have here is that the cache can be added anywhere in the middleware chain. We can, for instance, add it before the gzip handler, so by the time the response comes back to the cache handler to be added to the cache, it is already compressed. :) So, this might already be done by default due to Caddy 2's architecture!

Cache HEAD too.

Agreed, and specifically what is allowed to be cached needs to be very finely controlled and configurable, so we'll have to expand on this.

Since it's fairly involved to get everything right, maybe file separate github issues?

Yes, definitely. Feel free to split this into a new issue to continue discussion on whatever part you think we should work on first!

Moving discussion to new repo dedicated for the caching layer: https://github.com/caddyserver/cache-handler/issues/1


build: upgrade edc version to 0.8.2

What this PR changes/adds
Changed edc version to 0.8.2-SNAPSHOT
Fixed compile and build issues
Adjusted testcases and verified functionality
Why it does that
Edc version upgrade for Huawei Cloud Project
Further notes
List other areas of code that have changed but are not necessarily linked to the main feature. This could be method
signature changes, package declarations, bugs that were encountered and were fixed inline, etc.
Linked Issue(s)
Closes # <-- insert Issue number if one exists
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

please fix dependencies and we'll merge it

dependecies fixed.


[PDI-15737] File encoding setting for INI files in Property Step are ignored

File encoding has been ignored because the INI file already has been loaded when the file encoding setting was set.

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/propertyinput/PropertyInput.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.job.entries.evaluatetablecontent.JobEntryEvalTableContent

Branch Change: -1.01%:small_red_triangle_down:
Complexity Change: -1.06%:small_red_triangle_down:
Instruction Change: -.17%:small_red_triangle_down:

org.pentaho.di.job.entries.getpop.MailConnectionMeta

Branch Change:  + 1.00%
Complexity Change:  + 1.41%
Instruction Change:  + .30%

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change:  + 3.28%
Line Change:  + 3.87%

org.pentaho.di.repository.kdr.KettleDatabaseRepositoryCreationHelper

Branch Change: -1.64%:small_red_triangle_down:
Complexity Change: -.69%:small_red_triangle_down:
Instruction Change: -2.40%:small_red_triangle_down:
Line Change: -3.51%:small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Instruction Change: -.19%:small_red_triangle_down:
Line Change: -.27%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Branch Change:  + 1.35%
Complexity Change:  + 1.45%
Instruction Change:  + .21%

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change: -.10%:small_red_triangle_down:

org.pentaho.di.trans.steps.csvinput.CsvInputMeta

Instruction Change:  + .05%

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Instruction Change: -.09%:small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -.66%:small_red_triangle_down:
Complexity Change: -.41%:small_red_triangle_down:
Instruction Change: -.50%:small_red_triangle_down:
Line Change: -.24%:small_red_triangle_down:

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta

Branch Change:  + 1.28%
Complexity Change:  + .78%
Instruction Change:  + .08%

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change:  + 1.04%
Complexity Change:  + 1.05%

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change:  + 1.18%
Complexity Change:  + 1.35%
Instruction Change:  + .18%
Line Change:  + .48%

org.pentaho.di.trans.steps.propertyinput.PropertyInput

Instruction Change: -.08%:small_red_triangle_down:
Line Change: -.18%:small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change:  + .14%

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change:  + .18%

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change: -.91%:small_red_triangle_down:
Complexity Change: -.82%:small_red_triangle_down:

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Complexity Change: -.18%:small_red_triangle_down:
Instruction Change: -.20%:small_red_triangle_down:
Line Change: -.38%:small_red_triangle_down:
Method Change: -.49%:small_red_triangle_down:

Checkstyle violations
The code submitted is not complying with one or more of our guidelines. To perform these checks locally, please use this tool.
/home/buildguy/project/engine/src/org/pentaho/di/trans/steps/propertyinput/PropertyInput.java

:heavy_exclamation_mark: Line has trailing spaces at Line: 449

:heavy_exclamation_mark: Line has trailing spaces at Line: 452

@s3b - Can you please fix the checkstyle issue (trailing spaces on line 449 and 452) ? I would like to process the PR, but I cannot violate wingman checkstyle fixes.

Sorry, forgot about that. Fixed!

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

@s3b- please rebase so we can merge.

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

@mbatchelor Sorry - done!

Thanks!


bugfix: fix kusion binary source dir of dockerfile

Coverage increased (+0.04%) to 74.828% when pulling 5b55849312a2833589e27b0645bf552484c273f9 on howieyuen:dockerfile into de1a82aef568754585a29ae01a899d2c5a552be5 on KusionStack:main.


Support zinit zsh plugin system

Please add support for zinit plugin system: https://github.com/zdharma-continuum/zinit. Thanks a lot for this amazing project!

Thanks for the issue, I should add support for other plugin managers.
In the meantime you could set ZSH_CUSTOM yourself so the following code line works:
    completion=$(echo -n "$text" | $ZSH_CUSTOM/plugins/zsh_codex/create_completion.py $CURSOR)

Just a heads up that the ZSH_CUSTOM workaround doesn't work with antibody as the default path is $XDG_CACHE_HOME/antibody/

@ceuk I know it's not perfect but you could create a zsh_custom folder that contains a symlink plugins that points to $XDG_CACHE_HOME/antibody/

Btw is this issue solved by #51 ?


Move to safe-global organization

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.269%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
916

Relevant Lines:
1087

💛  - Coveralls


[ENG-474] new command to attach logs to a test session

Change in http_client.py to support sending BinaryIO as the payload, with streaming compression support
Bit of refactorying in helper.py to introduce require_session() for CLI commands that require a session to be given or present

Oops, I didn't realize the rebase resulted in this much brokenness. My bad.
CI fixed up and it's ready for a review


Uncertain behavior: if published message is of type Header - message_age is not calculated

Description
Subcribe to topic of type std_msgs/Header - message_age is till reported as .nan
Expected Behavior
Report topic statistics?
Actual Behavior
Message_age is .nan
To Reproduce
Publish std_msgs/Header with increasing timestamps, subscribe with topic statistics enabled
System (please complete the following information)

OS: OSX
ROS 2 Distro: Foxy fat binaries

Using the code at https://github.com/emersonknapp/foxytest (thanks for uploading!) I was able to generate and observe statistics by building without any local changes. For example, running chatterer, chatter_stats, and observing with ros2 topic echo /staty:
unit: ms
window_start:
  sec:<PHONE_NUMBER>
  nanosec: 851118000
window_stop:
  sec:<PHONE_NUMBER>
  nanosec: 851673000
statistics:
- data_type: 1
  data: 0.00684931506849315
- data_type: 3
  data: 2.0
- data_type: 2
  data: 0.0
- data_type: 5
  data: 584.0
- data_type: 4
  data: 0.11684056239199982
---
measurement_source_name: topic_stats_test
metrics_source: message_period
unit: ms
window_start:
  sec:<PHONE_NUMBER>
  nanosec: 851118000
window_stop:
  sec:<PHONE_NUMBER>
  nanosec: 851673000
statistics:
- data_type: 1
  data:<PHONE_NUMBER>478567
- data_type: 3
  data: 1009.0
- data_type: 2
  data: 990.0
- data_type: 5
  data: 583.0
- data_type: 4
  data: 3.1980919333958764

Non-NaN data was observed for ~10 minutes.

Yeah the code as checked out is publishing a geometry_msgs/PoseStamped. I was doing a variety of tests in there. If you change the commented typedef lines to instead publish a Header then you'll see what I meant.

This is working as intended because it only works on messages that "have a Header" - not "are a Header"


Fix docker pull from non-Docker hub repositories

Fixes #867

Codecov Report

Merging #871 (60a5487) into master (37432f4) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #871   +/-   ##
=======================================
  Coverage   29.28%   29.28%
=======================================
  Files          88       88
  Lines        9468     9468
=======================================
  Hits         2773     2773
  Misses       6390     6390
  Partials      305      305

Flag
Coverage Δ

unittests
29.28% <100.00%> (ø)

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

Impacted Files
Coverage Δ

ci/docker.go
61.01% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more