Yell more when there are syntax errors

From @mhartington on January 18, 2016 23:37
From @tlancina on September 9, 2015 20:42
Sometimes you only have one chance to see syntax errors, and they can get quickly lost if you make several saves.
Copied from original issue: driftyco/ionic2#98
Copied from original issue: driftyco/ionic#5085

From @mhartington on January 19, 2016 22:44
Random ideas:
livereload dash, or integrate with dev tool to format and display errors
Formater in the typescript loader to pretty-print the errors clearer in the CLI

From @tlancina on January 19, 2016 22:42
I wonder if we can have LiveReload display/alert the error, I seem to remember BrowserSync having something like this.

From @mhartington on January 18, 2016 23:38
From @tlancina on September 23, 2015 16:4
Have tscReporter report things like console.log'derp')instead of failing silently.
https://github.com/driftyco/ionic2/blob/master/gulpfile.js#L42

From @mhartington on January 18, 2016 23:38
From @tlancina on September 9, 2015 20:46
Maybe make an atom plugin?


feat: Add ProfileData to ExecutionResult

This uses the new updates to nearcore to pass a reference to ProfileData to ApplyState when executing a transaction.

@willemneal We can close this one right?

@willemneal We can close this one right?


Prevent application choice from being withdrawable during the edit period

The previous bug fix introduced a weird behaviour in certain cases #1508. When a candidate edits an application choice while the application is still in the edit period, but already received references, the application choice has the option of withdraw rather than delete even though that application has not sent to providers.
Context

Update the review component to show withdraw only when an application exceeded the edit_by date(therefore sent to provider)
Changes proposed in this pull request
Before

After

Guidance to review

Link to Trello card

https://trello.com/c/u9fFktHo/1048-application-form-errors-when-edit-application-feature-flag-is-on-and-user-edits-their-course-choices
Things to check

[x] This code doesn't rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

Per the state diagram, an application choice can be withdrawn before it's sent to providers. It's quite a fiddly distinction between that and deleting the choice! Is it correct to allow withdrawal at that stage? (I guess if they actually want to cancel their application — what happens if they delete all their choices?)

I guess if they actually want to cancel their application. What happens if they delete all their choices?

The problem is this creates a weird user journey: if you withdraw and application while it is within the editing period, then you will see the option to delete it. So to replace a course choice (that already received references) you would need to withdraw and then again delete and then add a new course choice
If they delete all course choices they are prompted to add a new one, of course, this can cause a weird journey if the edit by period ends before the candidate adds a new choice.

Hm. What's the difference between withdrawing and deleting at this stage?

If you withdraw, the application state changes to withdrawn but the application choice are still on the form
If you delete, the application choice is deleted from the form

Is the correct fix to remove https://github.com/DFE-Digital/apply-for-postgraduate-teacher-training/blob/c2296aeb359bdc2642a5772d2eca3d9d760c7479/app/services/application_state_change.rb#L29 in that case? i.e. to prevent withdrawal at this stage, as it doesn't make much sense and is likely to be confusing — deleting is effectively withdrawing. cc @tijmenb

@duncanjbrown Yes, that seems like a clean solution! I'll wait to hear Tijmen's opinion

Removing the event :withdraw from the application_complete state does seem correct 🤔

I think we should pause this until we know what the future is of the amending feature. We might need to replace all of the current code anyway.


Added feature to move Polygons

I know the solution is ugly, but it works!!!!!!!
PLEASE implement this in the main repo!

What is Leaflet.draw.drag.js? Is this a fork of Leaflet.draw, or an add-on?
This solution will need to be a bit cleaner; while it works and that's nice, I (as maintainer) have to live with ugly solutions for the indefinite future, so try to avoid them when possible.

@tmcw https://github.com/w8r/Leaflet.draw.drag IDK what I did. Honestly I dont have any experience in JS, but I am working on it! I just created this out of anger and I didn't wanted to destroy my computer ^^

I will work on a better and cleaner solution.


Use binary search for keyword checking

This patch improves keyword searching during identifier parsing.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik<EMAIL_ADDRESS>

Performance results:

Benchmark
Perf (sec)

3d-cube.js
0.796 -> 0.796 : +0.064%

3d-raytrace.js
1.031 -> 1.026 : +0.540%

access-binary-trees.js
0.565 -> 0.564 : +0.331%

access-fannkuch.js
2.066 -> 2.066 : +0.027%

access-nbody.js
1.081 -> 1.078 : +0.267%

bitops-3bit-bits-in-byte.js
0.492 -> 0.491 : +0.320%

bitops-bits-in-byte.js
0.641 -> 0.642 : -0.172%

bitops-bitwise-and.js
0.917 -> 0.919 : -0.158%

bitops-nsieve-bits.js
1.110 -> 1.109 : +0.140%

controlflow-recursive.js
0.373 -> 0.365 : +2.323%

crypto-aes.js
0.874 -> 0.873 : +0.124%

crypto-md5.js
0.592 -> 0.592 : +0.035%

crypto-sha1.js
0.586 -> 0.586 : +0.077%

date-format-tofte.js
0.746 -> 0.744 : +0.354%

date-format-xparb.js
0.529 -> 0.523 : +1.104%

math-cordic.js
1.159 -> 1.156 : +0.244%

math-partial-sums.js
0.726 -> 0.724 : +0.277%

math-spectral-norm.js
0.535 -> 0.533 : +0.373%

string-base64.js
1.400 -> 1.398 : +0.139%

string-fasta.js
1.341 -> 1.338 : +0.188%

Geometric mean:
+0.331%

Binary sizes (bytes)
74d474248d:132664
2406026fbf:132664

This PR has some overlapping with #2574

@zherczeg @robertsipka The patch is updated according to your suggestions, also rebased to the latest master.

Nice patch, LGTM.


actix-web GraphQL handler not working with failing trait bound after upgrading all crates

I have this action handler for async-graphql using async-graphql-actix-web:
#[post("/")]
pub async fn index(
    schema: web::Data<ApiSchema>,
    req: GraphQLRequest,
)
    -> GraphQLResponse
{
    schema.execute(req.into_inner()).await.into()
}

Expected Behavior
Compiles and runs with actix-web
Actual Behavior
Since I upgraded crate versions it gives this error:
error[E0277]: the trait bound `fn(actix_web::web::Data<async_graphql::Schema<QueryRoot, MutationRoot, EmptySubscription>>, GraphQLRequest) -> impl std::future::Future {<index as HttpServiceFactory>::register::index}: Factory<_, _, _>` is not satisfied
  --> src/routes.rs:45:14
   |
44 | #[post("/")]
   | ------------ required by a bound introduced by this call
45 | pub async fn index(
   |              ^^^^^ the trait `Factory<_, _, _>` is not implemented for `fn(actix_web::web::Data<async_graphql::Schema<QueryRoot, MutationRoot, EmptySubscription>>, GraphQLRequest) -> impl std::future::Future {<index as HttpServiceFactory>::register::index}`

For more information about this error, try `rustc --explain E0277`.
warning: `np-api` (lib) generated 1 warning
error: could not compile `np-api` due to previous error; 1 warning emitted

Steps to Reproduce the Problem

cargo check

Specifications

Version: 3.0.19
Platform: Ubuntu
Subsystem: 18.04

Hello again -- I've replicated this in a simplified, brand new app:
use actix_web::{
    web,
    post,
};
use async_graphql::{
    Object,
    Schema,
    Result,
    types::{EmptyMutation, EmptySubscription},
};
use async_graphql_actix_web::{GraphQLRequest, GraphQLResponse};

pub struct QueryRoot;

#[Object]
impl QueryRoot {
    async fn get_value(&self) -> Result<String> {
        Ok("A value".to_string())
    }
}

type AppSchema = Schema<QueryRoot, EmptyMutation, EmptySubscription>;

#[post("/")]
async fn index(schema: web::Data<AppSchema>, req: GraphQLRequest) -> GraphQLResponse {
    schema.execute(req.into_inner()).await.into()
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    println!("Hello, world!");

    Ok(())
}

This still gives the following error:
> cargo check
    Checking test-agql-actix-web v0.1.0 (/home/username/work/np-old/scratch/test-agql-actix-web)
error[E0277]: the trait bound `fn(actix_web::web::Data<async_graphql::Schema<QueryRoot, EmptyMutation, EmptySubscription>>, GraphQLRequest) -> impl std::future::Future {<index as HttpServiceFactory>::register::index}: Factory<_, _, _>` is not satisfied
  --> src/main.rs:25:10
   |
24 | #[post("/")]
   | ------------ required by a bound introduced by this call
25 | async fn index(schema: web::Data<AppSchema>, req: GraphQLRequest) -> GraphQLResponse {
   |          ^^^^^ the trait `Factory<_, _, _>` is not implemented for `fn(actix_web::web::Data<async_graphql::Schema<QueryRoot, EmptyMutation, EmptySubscription>>, GraphQLRequest) -> impl std::future::Future {<index as HttpServiceFactory>::register::index}`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `test-agql-actix-web` due to previous error

Which version of actix-web are you using, async-graphql-actix-web depends on 4.0.0-beta.18.

Ah! Thank you, @sunli829 !
I'll have a look at updating that, now, then.
Thanks again,
Doug.

Ah, which causes a cascade of other dependency issues -- I'll wait until everything is using vanilla versions of crates, I think.
Thanks again for advising me of that, @sunli829 .

Can the required dependency be documented here https://crates.io/crates/async-graphql-actix-web ? This is very confusing. I'm also not sure what version I'll need to revert all the way back to to not be using a beta release, I'm guessing it's 2.11.0 from this? It would be helpful if that was also documented. Thanks

@sunli829 ?


Added CHANGES.md

Summary
After the discussion about HACL* governance, we decided that it may be nice to have to track the modifications.
I am extremely open to any suggestions if we want to modify the file I added etc.

Questions:

What is the suggested format of Changes.md? Should we add a pointer to the commit?
Do we add a line for each change, e.g. does an rlimit change in some file, or some Makefile edit merit a line?
How do we mark security-relevant changes and bugfixes? Should they be marked out in some way, e.g. by linking to an advisory?

Larger open-source projects only mark changes during releases (https://github.com/openssl/openssl/blob/master/CHANGES.md)
So we need to answer this for ourselves.

@Frosne any thoughts on this?
@karthikbhargavan I think a link to the PR would be even better, example:
- #533 Start tracking changes in Changes.md (Natalia Kulatova)

We explicitly exclude maintenance: build fixes, dist changes, stabilizing proofs, etc.
Security-relevant changes should probably go into their own section. We "cut" the list of changes for each release and then start new section, as done in e.g. https://github.com/ocaml/ocaml/blob/trunk/Changes

@msprotz, I agrew with you about the format of the message.
On the other hand, I still think that stabilizing proofs might be good to mention in the code (if the modification was big and touched several functions, for instance).

Fair enough if it's a big change that touches several files, maybe worth giving others a heads-up. Let's do some categories then:
# Current release

## New features
- #123 Added AVX-2048 support for SHA-5

## Bug fixes
- #234 Fix SHA-5 for empty input

## Proof improvements
- #345 Rewrite SHA-5 to use repeat_blocks_multi_loop_i to improve proof stability

We talked about this at a recent maintainer discussion. Here's what we wrote in the meeting notes:

Not everything should go in CHANGES.md, only user-facing changes (breaking APIs, adding new features, perf improvements of the executable code, bumping versions of F*/Z3, ...)

@karthikbhargavan seems to have the most formed thoughts on this, so @karthikbhargavan will create a pull request template that will provide guidelines on how to format Changes.md and how to add new entries.


Pre_install_check: Usage example fails as documented; needs to be python3

README Usage example needs to be python3

Addressed in release 1.4.0


Serve app at subfolder?

For example, we want our Vue app to run at /p/ URL. In vue-router, we achieve that by createWebHistory, but in @kitbag/router, I haven't found an equivalent.

@hongquan, I think this is a good suggestion since the pattern is commonly used.
However, I also think we can solve for your use case rather simply unless I'm missing something that base option does in vue-router.
If you simply create a base route that acts as the parent to whatever base routes you currently have, this should achieve the same end goal.
// this route won't be navigable, will use `<RouterView />` as component by deafult
const baseRoute = createRoute({
  path: "/p/"
})

// routes supplied to router does not need to include `baseRoute` for this to work
const routes = [
  createRoute({
    parent: baseRoute,
    name: "foo",
    // actual path will be "/p/foo"
    path: "foo",
    ...
  })
] as const

@stackoverfloweth Thanks.


Python 3.11 version not build by re-rendering

Comment:
Python 3.11 version not build by re-rendering the feedstock. Stuck with 3.8 - 3.10.
@conda-forge-admin may know why?

It's the setuptools pinning.

Will try <66 for python 3.11 and above.


[Bug] 外部表连接mysql数据库，json类型不兼容

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
1.2.4
What's Wrong?
json格式数据变成16进制字符串了
mysql:
CREATE TABLE `test_json_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `jsonval` json DEFAULT NULL COMMENT '值',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

data:

doris:
CREATE EXTERNAL TABLE `test_json_table` (
  `id` int(11) NOT NULL COMMENT '自增id',
  `jsonval` varchar(65533) NULL COMMENT '值'
) ENGINE=ODBC
COMMENT 'MYSQL'
PROPERTIES (
"host" = "xxx",
"port" = "xxx",
"user" = "xxx",
"password" = "xxx",
"driver" = "MySQL ODBC 5.7 Unicode Driver",
"odbc_type" = "mysql",
"charest" = "utf8",
"database" = "xxx",
"table" = "xxx"
);

data:

What You Expected?
能正常显示json
How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Please use the JDBC Catalog feature, ODBC is no longer maintained


Play music in bluetooth earpiece while recording

When starting to record while playing music It was constantly playing the music from the phone music and not Bluetooth earpiece.
Found that adding AVAudioSessionCategoryOptionAllowBluetooth option solves this

I'll approve this. However, I am concerned that the module will request the Bluetooth permission in default when user attempts the recording.


Parquet doesn't recognize the nested Array type in MAP as ArrayWritable.

When trying to insert hive data of type of MAP<string, array> into Parquet, it throws the following error
Caused by: parquet.io.ParquetEncodingException: This should be an ArrayWritable or MapWritable: org.apache.hadoop.hive.ql.io.parquet.writable.BinaryWritable@c644ef1c
at org.apache.hadoop.hive.ql.io.parquet.write.DataWritableWriter.writeData(DataWritableWriter.java:86)
Problem is reproducible with following steps:
Relevant test data is attached.

CREATE TABLE test_hive (
node string,
stime string,
stimeutc string,
swver string,
moid MAP <string,string>,
pdfs MAP <string,array>,
utcdate string,
motype string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY '=';

LOAD DATA LOCAL INPATH '/root/38388/test.dat' INTO TABLE test_hive;

CREATE TABLE test_parquet(
pdfs MAP <string,array>
)
STORED AS PARQUET ;

INSERT INTO TABLE test_parquet SELECT pdfs FROM test_hive;
Reporter: Mala Chikka Kempanna
Assignee: Ryan Blue / @rdblue
Related issues:

Test for PARQUET-26 (is blocked by)
Hive doesn't correctly read Parquet nested types (depends upon)

Original Issue Attachments:

test.dat

Note: This issue was originally created as PARQUET-26. Please see the migration documentation for further details.

Ryan Blue / @rdblue:
It looks like the actual object is a BinaryWritable, so parquet may be correct to complain. I'll look into this further.

Ryan Blue / @rdblue:
This is fixed in HIVE-8909

Ryan Blue / @rdblue:
See HIVE-8909.


Something similar for distance?

Hi,
Do you happen to have done a library similar to this for distance? I'm looking for one that will take meters and then go to km if it goes above 1k etc.

Good idea! Did you end up making one?


UI does not handle failures when creating or editing via YAML

Setup

Rancher version: 2.7.7 ish

Describe the bug

failures thrown after pressing create / save in any resource yaml returns the user to the resource list as if it succeeded
user is not shown error, resource remains uncreated/saved
this happens in both the vanilla Create from Yaml view and also the create/edit forms Edit as Yaml view

To Reproduce

Multiple ways

Pods List --> Create --> Edit Yaml --> break yaml syntax --> Create (error in console)
More Resources --> Apps --> ControllerRevisions --> Create from YAML --> Create (error in console, failed network request)

Result

User is taken back to the resource's list view

Expected Result

User should stay in the same view and be presented with the error

Don't think this is related, but might be worth investigating, resource-class async _saveYaml(yaml) { uses  method: 'PUT',. in code we normally look for put and lowercase the method that's being processed. could be a gap there

Ticket #9592 - Test Results - ✅
Reproduced on Docker install running Rancher v2.7.7-rc4:

Fresh install of Rancher v2.7.7-rc4
Provision a downstream K3s AWS Node driver cluster
Once active, navigate to Cluster Explorer > Workloads > Pods > Create > Edit as YAML, break the YAML syntax, and then hit Create
Reproduced - user is navigated back to Pods List page and resource is NOT created; console logs show Uncaught (in promise) error

Verified on Docker install running Rancher v2.8-5eb68ce6199009ab30878d6e687c76ba7c862dd6-head:

Fresh install of Rancher v2.8-head
Provision a downstream K3s AWS Node driver cluster
Once active, navigate to Cluster Explorer > Workloads > Pods > Create > Edit as YAML, break the YAML syntax, and then hit Create
Verified - UI validation checks prevent the request from being sent; the user is informed of the error and the user is NOT navigated away from the page; as expected

Screenshot:


Window ID / Window Title / Pane number missing

use tmux_interface;
use tmux_interface::session::SESSION_ALL;

fn main() {
    let sessions = tmux_interface::Sessions::get(SESSION_ALL).unwrap();

    for s in sessions {
        let session_name = s.name.unwrap();
        let ws = tmux_interface::Windows::get(&session_name, 64).unwrap();
        println!("Session {}", session_name);
        for w in ws {
            println!("{:?}", w);
        }
    }
}

Session 0 has two windows, one unnamed (id 0) and one named asd (id 1).
Session 0 window id 1 has two panes.
Output of program:
Session 0
Window { active: None, activity: None, activity_flag: None, bell_flag: None, bigger: None, end_flag: None, flags: Some(WindowFlag(2)), form
at: None, height: None, id: None, index: None, last_flag: None, layout: None, linked: None, name: None, offset_x: None, offset_y: None, pan
es: None, silence_flag: None, stack_index: None, start_flag: None, visible_layout: None, width: None, zoomed_flag: None }
Window { active: None, activity: None, activity_flag: None, bell_flag: None, bigger: None, end_flag: None, flags: Some(WindowFlag(1)), form
at: None, height: None, id: None, index: None, last_flag: None, layout: None, linked: None, name: None, offset_x: None, offset_y: None, pan
es: None, silence_flag: None, stack_index: None, start_flag: None, visible_layout: None, width: None, zoomed_flag: None }
Session 7
Window { active: None, activity: None, activity_flag: None, bell_flag: None, bigger: None, end_flag: None, flags: Some(WindowFlag(1)), form
at: None, height: None, id: None, index: None, last_flag: None, layout: None, linked: None, name: None, offset_x: None, offset_y: None, pan
es: None, silence_flag: None, stack_index: None, start_flag: None, visible_layout: None, width: None, zoomed_flag: None }

[Process exited 0]

 let ws = tmux_interface::Windows::get(&session_name, tmux_interface::window::WINDOW_ALL).unwrap();

fixes

Hi,
thank you for your feedback, for choosing/using the library.
If you are calling the function Windows::get():
let ws = tmux_interface::Windows::get(&session_name, 64).unwrap();

it expects one or many WINDOW_XXXXXX flags as the secondary argument. In your example 64 is equal to 1 << 6 (bitwise shift left) and it is equal to WINDOW_FLAGS flag. This produces the following string as request command to tmux:
tmux list-windows -t session_name -F "#{window_flags}"

and the resulting Windows structure will be something like:
Vec {
  // first window, all fields except window_flag are empty
  Window {
    None, None, None, ..., Some(WindowFlag(WINDOW_FLAG_DEFAULT), None, None, ...}
  },
  // second window
  Window {
    None, None, None, ..., Some(WindowFlag(WINDOW_FLAG_CURRENT), None, None, ...}
  },
  ...
}

You are right you can request all supported fields by using WINDOW_ALL flag:
let ws = tmux_interface::Windows::get(&session_name, WINDOW_ALL).unwrap();

or you can manually set the bitflag combination for fields you need, for example WINDOW_ID | WINDOW_FLAGS |  WINDOW_NAME | WINDOW_HEIGHT | WINDOW_WIDTH
let ws = tmux_interface::Windows::get(
  &session_name,
  WINDOW_ID | WINDOW_FLAGS | WINDOW_NAME | WINDOW_HEIGHT | WINDOW_WIDTH
).unwrap();

It is made to reduce the size of the text exchanging between tmux and user application.
Sorry for missing documentation which would help you faster. I mark this as documentation required issue.
Please be advised, the library (especially dev branch) is still in experimental development stage and it is not well tested:
many features are not implemented, or can fail
some APIs/structures/names/... can be changed in future
some design patterns of the library can be changed
etc…

Thanks, digged solution out from source code :)


Introduction to OpenFlow protocol

Article Checklist
NOTE: (1st time contributors - submit ONLY one article to get familiar with the process, quality, and style-once published, you can then submit any number of articles.)
Preliminary Checks - Formatting and Structure

[x] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[x] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

Grammar Checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical Checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution Guidelines
For first-time contributors and for more details, see Contributing Guidelines

@Bayler will review this article.

@AakashR2208 This is a good article, I've really learnt a lot. However, I found many grammatical mistakes, and in some sections, the flow of some sentences were not right. Always perform grammarly checks on your article before submission to avoid unnecessary revisions. Grammarly helps solve both grammar errors and corrects flow errors.
I've also requested that you add a "Table of Content" and "Prerequisite" section. It is always a good practice to do so.
You should be able to commit some of the suggested changes directly from the PR interface on GitHub.
Please do the necessary revisions, then we can move on to the final review.

Good morning @hectorkambow, Good evening @lalith1403,
I have completed reviewing this article. Requesting for your feedbacks.
Things to be done:
1. Plagiarism check needs to be done.
2. Please add the necessary labels. (Current status: revisions needed)
3. Add PRC line.
4. Please add the front matter

Thank you.

I've made the changes @Bayler . Please let me know if you need any more changes. Thanks for the input.

@AakashR2208 Please note that the topics in the Table of Contents sections are links displayed as shown below. When a reader clicks on it, it should take him/her to that particular section. Please note that this is is not a correction.
Table of Contents

What is the OpenFlow Protocol?
Background on traditional SDN
Basics of OpenFlow
Advantages of using OpenFlow
Alternatives and other means to SDN

Okay. Noted. I'll do this kind of ToC for my next articles. Thanks!

@AakashR2208
Please take note on the folder structure of this PR - it seems to be a bit off.
You have the sub-module in there as a folder. Not sure you have forked the folder properly.
The folder structure should follow that of the repo (once its forked).
cc @Bayler

also please be sure to delete  the ds store file I dont think it is needed. 👍

@hectorkambow Please confirm whether the structure is okay now

Hi @Bayler and @hectorkambow I fixed the PR file structure. It was a little complicated getting it right so that's why a lot of commits. But now its good. Let me know how it is.

plagiarism check done

Hi @Bayler and @hectorkambow I fixed the PR file structure. It was a little complicated getting it right so that's why a lot of commits. But now its good. Let me know how it is.

looks perfect thank you!! @AakashR2208

@AakashR2208  please make note of any minor edits I made to the PR - this will help both improve future articles and help with future reviews as well. 👍
cc @Bayler

@Bayler
I added the PRL towards the bottom of the article. Please be sure to include it in any article you review to ensure Peer review payout 👍

Thanks @hectorkambow . I'll make the new edits in mind for future articles.


Integrate sim

added basic impl for simulator

I think it's better to keep the simulator a separate module so that we can choose to build it or not and it won't interfere with the original quartz_runtime.


[DOC] Document usage of  EVM

Currently documentation are examples in the https://nearprotocol.com/blog/running-ethereum-applications-on-near/ - we should have it here as well and link in the blog to the documentation.

#232 duplicate

@amgando Nope, that issue is about bridge and this one is about EVM - https://github.com/nearprotocol/near-evm & https://github.com/nearprotocol/near-web3-provider

my bad, deleted

https://github.com/near/docs/pull/649 Fixes this


Make the interface type of a generic macro into a GenericFunctionType.

This correctly models their type in the type system, and fixes the redeclaration issue reported in rdar://104183961.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test and merge


mobile is looking a little beat

WET4 has everything needed to get the dashboards looking better on mobile. Right now, I've only really added medium columns (col-md-12) but I should add small and large columns. Without small columns specified,  the dashboard components line up vertically on mobile and become weird to scroll though.
Here is a good example of a wet4 column pattern optimised for small/medium:

https://wet-boew.github.io/v4.0-ci/demos/equalheight/equalheight-en.html

Big mobile optimizations with 3aae10f


Optimize DockerfileBase for Improved Efficiency and Reduced Size

This pull request includes three commits that collectively optimize the DockerfileBase. The changes are focused on improving the build process, reducing the Docker image size, and maintaining consistency across the Dockerfile commands.
Optimize DockerfileBase for Image Efficiency

Add the --no-cache-dir flag to pip install --upgrade pip to align with other pip installation commands, prevent caching, and reduce Docker image layer size.
Move Tesseract-OCR files to '/usr/share/tesseract-ocr-original' to prevent redundant operations and improve the efficiency of the backup process.
Clean the apt cache within the same RUN statement after package installations by including rm -rf /var/lib/apt/lists/*, ensuring a reduced Docker image size by avoiding the retention of transient package data.

These changes contribute to a more efficient build process and a minimized Docker image, aligning with best practices for Dockerfile maintenance and deployment.
License Agreement for Contributions
By submitting this pull request, I acknowledge and agree that my contributions will be included in Stirling-PDF and that they can be relicensed in the future under MPL 2.0 (Mozilla Public License Version 2.0) license.
(This does not change the general open-source nature of Stirling-PDF, simply moving from one license to another license)

Docker image size before and after the change, a little bit smaller:
REPOSITORY          TAG                 IMAGE ID       CREATED          SIZE
base                after               91bee49112b9   19 hours ago     1.58GB
base                before              767036aed57a   20 hours ago     1.64GB

Plan to go with
https://github.com/Stirling-Tools/Stirling-PDF/pull/624
which will depreciate this PR


As a developer, I want to add a legal disclaimer for the generated expiration dates.

This issue should be closed as the app is not using generated expiration dates but instead user manually enter the dates which comes from the food item they purchased.


Reconstructor enters infinite loop on some example grammars

Hello,
I notice that code reconstruction with both the lark and python (2&3) example grammars enters infinite loops (sometimes it exists with an infinite recursion error message; other times it just eats up half of the CPU usage and nearly all of my RAM). JSON works quite well though.
I know that this functionality is still experimental, but since it would be very important for a new project of mine I was wondering if I could contribute to help solve this issue.
Many thanks!
-Julien

Hello,
Thanks for the insights. I tried understanding what is going on inside the reconstructor, with modest success, so instead I started making a list of things that work and things that don't. My hope would be to understand which are due to errors in the grammar (i.e., a badly written grammar for code reconstruction purposes) and which are due to errors in Lark (that could be fixed).
Most of these are minimalist examples from errors I encountered while trying to reconstruct with the .lark grammar.
All use LALR. and the following terminals:
_NL: /(\\r?\\n)+\s*/
%import common (WS_INLINE, NUMBER, WORD)
%ignore WS_INLINE

Example 1: Starred object
Grammar
start: (rule | _NL)*
rule: WORD ":" WORD

Code to be parsed and reconstructed
SALUT: BONJOUR

Error
lark.exceptions.ParseError: Infinite recursion detected! (rule <NonTerminal('__anon_star_0') : NonTerminal(Token(RULE, '__anon_star_0'))>)
Comments
Same thing happens with a plus instead of a star. Does not seem to cause a problem when included deeper inside a rule, as in the json parser. This seems like an error in Lark?
Example 2: Starred rule (works!)
Grammar
start: item*
item: NL
    | rule
rule: WORD ":" NUMBER

Code to be parsed and reconstructed
ABC: 1
DEF: 2

Comments
Example 1 works when rephrased as in this example so that no parenthesised object is starred.
However, if NL is written as an ignored terminal _NL, then the parsed tree looks like this:
Tree(start, [Tree(item, []), Tree(item, [Tree(rule, [Token(WORD, 'ABC'), Token(NUMBER, '1')])]), ...
...and the reconstructor fails with
AttributeError: 'WriteTokensTransformer' object has no attribute 'item'
...because the first new line in the code cannot be reconstructed. This seems like a grammar specification error to me?
Example 3: Extra output in reconstructed code
Grammar
start: line*
?line: NL
    | rule
    | "hello"

Code to be parsed and reconstructed
ABC: 1
DEF: 2

Error
Printing the reconstructed text gives, oddly enough, an extra "hello" at the beginning!
hello
ABC:1
DEF:2

Comments
Works fine if line is not preceded by ?.
Example 4: Alias
Grammar
start: line*
line: NL
    | rule
    | "hello" -> hi

Code to be parsed and reconstructed
ABC: 1
hello

Error
AttributeError: 'Tree' object has no attribute 'pos_in_stream'
Comments
Works fine with no alias. If, however, hello is placed before | rule, then we get AttributeError: 'WriteTokensTransformer' object has no attribute 'line' followed by KeyError: 'HELLO'
Sorry for the very long post! Hope this can help improve the reconstructor and also help me find my way around the code. By the way, running the json parser example, I now get lark.exceptions.GrammarError: Using an undefined rule: NonTerminal(Token(RULE, '__anon_star_0')). Any idea why that happened?
Regards,
Julien

By the way, the following respecification of the majority of the LARK grammar seems to work and can parse and reconstruct itself!
start: line*

line: NL
    | rule
    | token
    | statement

rule: RULE priority? ":" expansions NL
token: TOKEN priority? ":" expansions NL
priority: "." NUMBER

statement: ignore
    | import

ignore: "%ignore " expansions NL
import: "%import " import_args ["->" TOKEN] NL

import_args: name ("." name)*

expansions: exp_or_alias (VBAR exp_or_alias)*
exp_or_alias: alias | expansion
alias: expansion "->" RULE
expansion: expr*
expr: atom [OP | "~" NUMBER [".." NUMBER]]
atom: group
    | maybe
    | literal_range
    | name
    | (REGEXP | STRING)

name: RULE
    | TOKEN

maybe: "[" expansions "]"
group: "(" expansions ")"
literal_range: STRING ".." STRING

RULE: /!?[_?]?[a-z][_a-z0-9]*/
VBAR: NL? "|"
OP: /[+*][?]?|[?](?![a-z])/
TOKEN: /_?[A-Z][_A-Z0-9]*/
STRING: ESCAPED_STRING "i"?
REGEXP: /\/(?!\/)(\\\/|\\\\|[^\/\n])*?\/[imslux]*/
NL: /(\r?\n)+\s*/
COMMENT: "//" /[^\n]/*

%import common.ESCAPED_STRING
%import common.INT -> NUMBER
%import common.WS_INLINE

%ignore WS_INLINE
%ignore COMMENT

Thanks, it seems that many of these issues are simply due to the 0.6 upgrade.
Any chance you can pull request these as unit tests? (For example, in a test_reconstructor.py)

Fixed the reconstructor for the given examples (all tests passing!)
I'm sure you can find plenty of new edge-cases. Feel free to add tests for them, and I'll address them when I have the time.

Great, thanks so much! I am very eager to try it out. I will try to understand how you fixed these and will add tests (and fixes if I can figure them out) for other edge cases that I come across.

Not sure why this is still open. Anyway, closing due to inactivity.

Has there been any progress on this? I still can't seem to be able to re-construct from python 3 grammar. Just curious.

There are some conceptual obstacles for making this work.
It's mainly caused by the conditional-collapse operator (?rule).
I will try to explain briefly the main obstacle I'm facing so far, using this toy grammar:
start: z
?z: a ("-" a)*
?a: b "+"
?b: a | "+"

When parsing the text ++, the result is the empty tree of b:
Tree(b, [])

When trying to reconstruct the text from this empty tree, the reconstructor notices that an empty b can be the result of a collapsed and empty a, and an empty a can be the result of a collapsed an empty b, and so on, throwing into an infinite loop.
In other words, any amount of pluses will result in the same tree. Both ++++ and ++++++++ produce:
Tree(b, [])

There may be a simple and obvious solution to this, while still maintaining generality, but for now it eludes me.
My current efforts are in the branch recons_2020 if anyone is brave enough to give it a go :)

Having said that, if you remove all the question marks that prefix the rules, you will probably get a reconstructable grammar (if that's still useful or not, is another matter)

Hello,
I have succeeded in getting reconstruction to work with this modified Python 3 Grammar (through trial and error; not too sure why it works). Hope this helps!
ਪੈਧਾਨ ੩.lark.txt
-Julien

Thanks, @julienmalard. Is that only suitable for reconstruction? Because I couldn't parse a simple python 3 program with it.

P.S. Regarding the infinite loop, I think I got around the problem by adding a ! to potentially ambiguous rules, forcing the parser to explicitly add the symbols to the tree.

Hello,
@GelaniNijraj, I managed to get both to work, parsing and reconstruction. What error are you getting?
-Julien

The code I'm trying to parse:
for i in range(1, 100):
	print("Hello, World!")

Here's my program:

class PythonIndenter(Indenter):
    NL_type = "_NEWLINE"
    OPEN_PAREN_types = ["LPAR", "LSQB", "LBRACE"]
    CLOSE_PAREN_types = ["RPAR", "RSQB", "RBRACE"]
    INDENT_type = "_INDENT"
    DEDENT_type = "_DEDENT"
    tab_len = 8

py3 = Lark.open(
    "reconstructable.lark",
    parser="lalr",
    start="file_input",
    postlex=PythonIndenter(),
    propagate_positions=True,
)

with open("program.py") as program_file:
    program = program_file.read()
    original = program
    replacements = []
    tree = py3.parse(program)
    print(tree)
    reconstructed = Reconstructor(py3).reconstruct(tree)
    print(reconstructed)

Here's the error:
lark.exceptions.UnexpectedCharacters: No terminal defined for 'p' at line 2 col 2

        print("Hello, World!")
 ^

Expecting: {'__IGNORE_0', '__IGNORE_1', 'COMMENT'}

Hello,
Just tried and works for me. My ਲੱਸੀ package (an experimental programme I am developing to translate programming languages) manages to parse the code (and even translate it to other human languages by switching out grammar rules between the parse and the reconstruction phase). (Test script here; grammar code here).
However, one difference I see is that I am using the recons_work2 branch of Lark. Perhaps that will make the difference?
-Julien

@GelaniNijraj
If it is still useful, I made a working example (online) of Python reconstruction here: https://lassi-pakkam.herokuapp.com/
(You can click on the globe to change languages).


Implement basic UI

Description
The following items are added or modified:

Header
Hamburger button and drawer
Change test charts to chart we need to use

Screenshots

@ricky9667 All scanned issued fixed.

The isDrawerOpen ref declared in Navbar.vue seems not toggled when clicking items on the drawer. This causes the drawer hamburger button should be clicked twice for opening it again.

LGTM, but #18 opened.


Proposal: Snowflake proxy deployment

I propose we run a snowflake proxy on our netcup servers: https://snowflake.torproject.org/
Putting it brief, Snowflake is a bridge that allows people from censored countries to connect to Tor using Snowflake as a forwarder. There are also browser extensions for it: https://snowflake.torproject.org/ and https://chrome.google.com/webstore/detail/snowflake/mafpmfcccpbjnhfhjnllmmalhifmlcie. Since we only forward encrypted content and bridge IP addresses are private, there is no potential for problems (like with exit relays). Deploying this would allow people living in countries with heavily censored internet to circumvent firewalls blocking Tor relays and allow them to access the open internet.
There is a Debian package for it and setup would basically consist of installing the package and starting the service. Then in terms of resource usage, only bandwidth is really relevant.
Would be happy to hear the team's thoughts on this.

SGTM

After discussing with Admins we've come to the conclusion that since netcup gave us these servers as a sponsorship for our infra, running something that isn't our infra seemed wrong.
So while we think it's an important service, it doesn't seem appropriate to run it on this infra.


StyleCop/Resharper suggestions for Traffic/Data/VehicleState.cs

Untabified
Fixed StyleCop warnings and Resharper suggestions in VehicleState

Renamed fields according to their private/public setting
Renamed boolean fields to Is<Something>
Method ordering changed as StyleCop suggests
if () action operators changed to if () { action } even for one-liners

i could try again when that other PR is merged


Added data_pagesize_limit to write parquet pages

arrow2 writes single page by default which will hurt the read performance a lot (up to 4x slower than the original file).
This pr introduces an option named data_pagesize_limit  to split large Array into small pages.
fixes #1291

Read write benchmark gists:  https://gist.github.com/sundy-li/4984ec7cfeade556d60306a3a218ec8a
We use TPCH's  lineitem table, it's original file is generated by dremio, it's well paged for column l_quantity
column ["l_quantity"]: num_of_pages 460, num_of_rows 5192615, size 10454182, size(uncompressed) 41555178

We use parquet_write.rs to generate the output file by input file and  parquet_read.rs to test the performance read on parallel.
Before (single large page per rowgroup):
/tmp/input.parquet, parallel 1 read took: 21 ms
/tmp/input.parquet, parallel 2 read took: 21 ms
/tmp/input.parquet, parallel 4 read took: 23 ms
/tmp/input.parquet, parallel 8 read took: 37 ms
/tmp/input.parquet, parallel 16 read took: 53 ms
/tmp/output.parquet, parallel 1 read took: 37 ms
/tmp/output.parquet, parallel 2 read took: 42 ms
/tmp/output.parquet, parallel 4 read took: 65 ms
/tmp/output.parquet, parallel 8 read took: 124 ms
/tmp/output.parquet, parallel 16 read took: 284 ms

As you can see, it's 5X worse in reading on 16 parallelism.
After this pr:
/tmp/input.parquet, parallel 1 read took: 21 ms
/tmp/input.parquet, parallel 2 read took: 22 ms
/tmp/input.parquet, parallel 4 read took: 24 ms
/tmp/input.parquet, parallel 8 read took: 29 ms
/tmp/input.parquet, parallel 16 read took: 52 ms
/tmp/output.parquet, parallel 1 read took: 23 ms
/tmp/output.parquet, parallel 2 read took: 25 ms
/tmp/output.parquet, parallel 4 read took: 27 ms
/tmp/output.parquet, parallel 8 read took: 31 ms
/tmp/output.parquet, parallel 16 read took: 48 ms

Out of curiosity, what is the difference in file size? Usually smaller pages => larger files.

Out of curiosity, what is the difference in file size? Usually smaller pages => larger files.

It's a large file, 255MB snappy encoded.
column ["l_orderkey"]: num_of_pages 460, num_of_rows 5192615, size 8113390, size(uncompressed) 41555178
column ["l_partkey"]: num_of_pages 460, num_of_rows 5192615, size 25860456, size(uncompressed) 41555178
column ["l_suppkey"]: num_of_pages 460, num_of_rows 5192615, size 23360484, size(uncompressed) 41555178
column ["l_linenumber"]: num_of_pages 460, num_of_rows 5192615, size 4690406, size(uncompressed) 41555177
column ["l_quantity"]: num_of_pages 460, num_of_rows 5192615, size 10454182, size(uncompressed) 41555178
column ["l_extendedprice"]: num_of_pages 460, num_of_rows 5192615, size 29932431, size(uncompressed) 41555178
column ["l_discount"]: num_of_pages 460, num_of_rows 5192615, size 10101375, size(uncompressed) 41555178
column ["l_tax"]: num_of_pages 460, num_of_rows 5192615, size 9653229, size(uncompressed) 41555178
column ["l_returnflag"]: num_of_pages 289, num_of_rows 5192615, size 4907634, size(uncompressed) 25972033
column ["l_linestatus"]: num_of_pages 289, num_of_rows 5192615, size 3020518, size(uncompressed) 25972033
column ["l_shipdate"]: num_of_pages 231, num_of_rows 5192615, size 15957395, size(uncompressed) 20777621
column ["l_commitdate"]: num_of_pages 231, num_of_rows 5192615, size 15813887, size(uncompressed) 20777621
column ["l_receiptdate"]: num_of_pages 231, num_of_rows 5192615, size 16016467, size(uncompressed) 20777621
column ["l_shipinstruct"]: num_of_pages 914, num_of_rows 5192615, size 11190998, size(uncompressed) 83103193
column ["l_shipmode"]: num_of_pages 477, num_of_rows 5192615, size 11659513, size(uncompressed) 43039249
column ["l_comment"]: num_of_pages 1731, num_of_rows 5192615, size 67467279, size(uncompressed) 158417914

There is a similar limit in arrow-rs:
https://docs.rs/parquet/27.0.0/parquet/file/properties/struct.WriterProperties.html#method.data_pagesize_limit
Depending on your usecase you may also find limiting the row count useful as some data compresses so well it fits on quite small pages: https://docs.rs/parquet/27.0.0/parquet/file/properties/struct.WriterProperties.html#method.data_page_row_count_limit

There is a similar limit in arrow-rs

Thank you @alamb,  I can't figure out a better name so I keep it compatible with arrow-rs.  The row count limit is less useful than the bytes limit, I'll try to add it in the next pr.
I found this best practice to optimize parquet files:  https://docs.dremio.com/software/data-formats/parquet-files/
The page-size defaults to ~100KB seem to be really reasonable. (I have test from 8192byte to 1MB today and found it has the best performance in this default config)

Thanks a lot @sundy-li for the PR, and everyone else for the ideas, suggestions and reviews 🙇


Enchancement: Create a theme wiki

I just created a tokyo night theme. Where should I submit it?

haha @Zeioth, There is always a TODO in my plan list for sharing the themes, but I did not have time for it currently! I will try to make it happen ASAP.
thank you so much for your willingness to share the themes! I will update this issue if there is any progress!

For a start, there could be a themes folder in the repo where people could send PRs with new theme files.
Sure, displaying all themes is a really nice option, but having a common place to look for new themes is a good start!

@Zeioth did you upload the theme anywhere?

Anyone who is interested in contributing a theme, feel free to drop it here. Once we accumulate a few, we can start a wiki page for it.

dracula.zip
Here is my current Dracula version.

You could paste the yaml file for config here and optionally include the LS_COLORS value.

@kakulukia Your theme is really awesome! Can you share the config for the theme?

@yinanfang check the attached zip file :)

@kakulukia I wasn't able to click and open the zip because I got error 79. I thought it was corrupted but I just tried it again with unzip and it worked. Thanks for the great theme!

I have a slightly different take on dracula.yaml:
user: 231       # Foreground group: 229      # Comment permission:   read: 183     # Purple   write: 212    # Pink   exec: 159     # Cyan   exec-sticky: 231  # Foreground   no-access: 210    # Red   octal: 120    # Green   acl: 60       # Current Line   context: 103  # Comment date:   hour-old: 117 # Comment - 40% lighter   day-old: 110  # Comment - 20% lighter   older: 103    # Comment size:   none: 60      # Current Line   small: 120    # Green   medium: 222   # Orange   large: 210    # Red inode:   valid: 159    # Cyan   invalid: 210  # Red links:   valid: 159    # Cyan   invalid: 210  # Red tree-edge: 60   # Current Line

Can you also post a screenshot?

This Solarized Light theme by @bradleyhop posted in Discussions is worth mentioning here for future reference: https://github.com/orgs/lsd-rs/discussions/917

Ok I'm uploading. Consider this theme 'Tokyonight friendly', for terminals that use the tokyonight theme.
lsd-tokyonight.tar.gz


Link in wiki not working

Hi rbonghi
I was trying to test your code but in the wiki the link to http://rnext.it/project/roboteq_control was not working. Can you provide a small readme on how to start your node?
Regards Max

Webpage http://rnext.it/project/roboteq-controller/
I hope for this weekend to add the basic information.
Raffaello
PS: Next week I will be with my robot Panther at https://www.gputechconf.eu/


Unify os_channel and os_version parameters on bare-metal

Currently, all platforms takes os_channel = "stable", but bare metal takes os_channel = "flatcar-stable", as it still includes CoreOS support (#324), we should unify that, so it is not surprising for the users coming from other platforms.

Done in #1246


Add option quite for CLI.

Output errors occurs only when there are errors.

Will be official in 6.0.0


please publish the artifact to maven central

I'm not sure this is worth publishing to central:

Avatar.js is not capable of running any 1.5.x or newer tsc. There appears to be a bug (that I haven't investigated in any detail) where some combination of strings "`" and "${" cause the parser to become confused.
Project Avatar is dead so the likelihood of this bug being fixed is approximately zero.
The suggested replacement, Nodyn, is also dead.

Is there a compelling reason to build TypeScript 1.4 on JVM, or do you know of another Node.js API implementation for Nashorn that could replace Avatar.js?


fix the varname to match the main cmake file

backport of https://github.com/arangodb/arangodb/pull/20161

Unrelated failure in Jenkins.


fix: multiple env issues

Description
Fixes for issues found during ME regression
PR fixes following issue(s)
Fixes #25640
Fixes #25653

/ok-to-test

/ok-to-test


[Feature] [Exam-Mode] Automatically assess text and modeling exercises for unsubmitted student exams

Checklist

[x] I tested all changes and all related features with different users (student, tutor, instructor, admin) on the test server https://artemistest.ase.in.tum.de.
[x] Server: I followed the coding and design guidelines.
[x] Server: I added multiple integration tests (Spring) related to the features (with a high test coverage)
[x] Server: I added @PreAuthorize and check the course groups for all new REST Calls (security)
[x] Server: I implemented the changes with a good performance and prevented too many database calls
[x] Server: I documented the Java code using JavaDoc style.
[x] Client: I followed the coding and design guidelines.
[x] Client: I added multiple integration tests (Jest) related to the features (with a high test coverage)
[x] Client: I added authorities to all new routes and check the course groups for displaying navigation elements (links, buttons)
[x] Client: I documented the TypeScript code using JSDoc style.
[x] Client: I added multiple screenshots/screencasts of my UI changes
[x] Client: I translated all the newly inserted strings into German and English

Motivation and Context
Students are required to submit their student exam in the student exam end page. Exercise participation of unsubmitted student exams should not be eligible for assessment. This PR adds a button to the Student Exams page which automatically assessed modeling and text exercises of unsubmitted exams with 0 points.
Additionally, in this PR we also want to assess empty submissions for modeling and text exercises.
Description
Client: Add a button to the student exams view.
Server:

Add a result to all text and modeling submissions which are part participations of unsubmitted student exams with 0 points. The result is of type SEMI_AUTOMATIC to make sure that these submissions are not eligible for manual assessment in the assessment dashboard. The assessor is the instructor which performs the call.
Add a result to all empty latest text and modeling submissions which are part participations of student exams with 0 points. The result is of type SEMI_AUTOMATIC to make sure that these submissions are not eligible for manual assessment in the assessment dashboard. The assessor is the instructor which performs the call.

Steps for Testing

Log in to Artemis
Create an exam with all exercise types
Register 4 users, start the exam
Two users should submit, the other two should not.

Leave the submissions empty for one user who submits and one who does not the exam.

Go to the Student Exams page and click "Assess unsubmitted student exams"
The student exams should be assessed.
Go to the assessment dashboard and assess the exercises. Only the submissions of the user who submitted the exam and did not leave them empty should be eligible for assessment. The others should NOT appear.
Set the release date of the results to now.
Review the results as a student and check the feedback. It should say either "Empty Submission" or "You did not submit your exam" for the corresponding submissions

Test Coverage
With @stefanwaldhauser help we set up a test suite according to the best practices for this component. Currently it only includes tests for the feature implemented in this PR. In a follow-up PR I will improve the test suite to cover the components other functionality.
Screenshots

Thanks for the reviews, I pushed a fix :)

I don't know if this is related to this PR, but after creating an exam and registering 3 (test) users it is not possible for them to access the exam (upon starting time). There is an error shown: You are not registered for the exam . Please contact your instructor. All users were registered and shown in the user tab.
The console logs an 404-error for the exams conduction view. I did test this with several users and different exams and I was not able to participate in a single one.

@JohannesWeiss Did you create the student exams? After registering the users, you must create the student exam and start the exercises from the student exam view. This is only possible before the exam has started. See https://artemis-platform.readthedocs.io/en/latest/user/exams/instructors_guide/ Section 1.5

Tested on TS3 with @JannisBittlmayer, everything worked as described.
I noticed that on the modelling exercise there where 2/1 submissions. Could it be that example submissions are counted as well towards this? (might be out of scope of this PR)

May it be the case that one of the unsubmitted exams contained an empty model exercise? Because usually empty models are not included into assessment, and maybe the new feature still evaluates them and puts (already assessed) into the assessment dashboard?

The submissions seem to be graded with 0 points as intended. However, the assessment dashboard also shows me, that there are more submissions assessed than existing. In my case, I let one of the students with an unsubmitted exam have non-empty exercise submissions. And it's the same for both the modeling and the text exercise.

Nice catch, I changed it now so that they dont appear in the statistic at all. it should say 0/0 now

See my inline comments. Please do not use artemis_admin as assessor, this is a bad choice. Either leave the assessor empty (if it does not lead to issues later on) or use the instructor who has initiated the request (pressed the button).

I addressed this, and we now use the instructor who clicked on the button as the assessor. Unfortunately, there was no way around using SEMI_AUTOMATIC without reworking a lot of the code.

Works as intended, tested on ts1 with different test users.
Can confirm the same "issue" as mentioned by @airelawaleria, after manually assessing an exercise the diagram updated from 0/1 for that exercise to 0/0 and was not filled green. I don't know, if this is related to this PR, therefore re-approve.

What do you mean by manual assessment? I just tried it out and the exercise I assessed was correctly shown. The ones which were automatically graded do not appear in the graph. So from 3, 1 appeared as manually assessed. Can you confirm this?

Tested again with the new changes. The unsubmmitted exams are not counted now. Re-approve 👍
I also noticed something, maybe unrelated to this pr. If there are no submissions to grade and the status is 0/0, the status bar is not green. Don't know if that's intended

this is expected :)


Whats this error bro and explain briefly how to sort it out ..plz explain step by step to sort this error bcz just i m beginner

You'll need to create a db named cv


Android - Handle non touch based input

It would be great to be able to try this out on an android device hooked up to my TV such as a fire TV or Android TV. I was able to install the latest build on my fire tv and open it, but I am not able to navigate or select anything using the firetv remote.

I'm not sure if Qt has any sort of built-in handling of Android TV. If it does it probably works like keyboard nav, which is apparently broken right now (not setting a default focus; works if you click a control).
Investigating in an emulator.

Emulator's running, confirmed it's hosed. Trying to figure out what I can do with it.

I'll try installing it to my shield tv and see if anything is different, it's probably broken there as well but it's worth a shot.

Just tested the new build on the fire tv. The arrow navigation is now working but I am not able to select anything.

Sigh, you'd think I would have tried that but nope. It's a little hard given that I can't seem to even get the emulator talking with my bridge.
Going to see if I can figure out what key Qt thinks that center button is, and then see if I can get it to act like Spacebar on the PC... somehow...

If it helps I am pretty sure the center button is the same thing as pressing "A" (KEYCODE_BUTTON_A) on any connected controller: https://developer.amazon.com/docs/fire-tv/remote-input.html#capturing-input

It's "Enter" in the AVD (as far as Qt sees it). Will see...

k @dtanquary I've added a new release with this "force the enter key to fire a spacebar event" hack. It definitely works in the AVD now, which is how Amazon recommends testing it, so it really ought to work.

Shield TV works fine with it, although the UI doesn't scale very well as there doesn't seem to be a way to scroll down the app screen to see "Center Slowness" and "Side Slowness".

Unrelated to this issue, but I do have to sideload the .apk to get it to work, and even when sideloaded it doesn't show up as an app anywhere, I have to go into settings --> apps ---> app details and select hustacean, and then open it there -- where it doesn't save anything from the previous session, so I have to relink the bridge.
As far as DRM protected stuff goes, youtube/espn are working fine with huestacean.

Frame time jumping around is probably OK, Android doesn't actually seem to send frames unless something's changing on the screen.

And as far as playing Netflix goes, rooting + installing Xposed + installing the DisableSecureFlag extension seems to be the only way (I'm playing a video on Netflix right now on my phone and it's working). I can't recommend Xposed to users generally given how potentially dangerous it is but eh it exists.

@BradyBrenot I just tested out the latest build on the fire tv. I was able to navigate and select things for the most part but there are still 1 or 2 buttons that seem impossible to navigate to. I will try to make a little video of me navigating around and put it on youtube for you to see where I am getting stuck.
The firetv also seems to be killing the background process off nearly immediately after I navigate away from the app but that's a separate issue and I will see if there is anything I can tweak on the fire tv to control that. I may end up having to root to get the optimal experience but that would be worth it imo.

It might be a matter of processing power difference between the shield and fire tv. The fire tv is likely suspending everything that's in the background to reserve processing time for the foreground. Shield on the other hand has the capability of hosting a plex server + smartthings hub while playing media.
You'd definitely be able to get around it via rooting the five tv, but it might not be the best experience if processing power is the issue.

Setting the app up to act as a Foreground Service might help, see
https://developer.amazon.com/docs/fire-tv/faq-general.html
https://developer.android.com/reference/android/app/Service.html

Which means reworking a good chunk of this thing to separate the GUI from the rest, which is... probably a good idea for all sorts of reasons, but a huge pain in the neck.

Installed on my Sony X900E. App starts and I can select stuff. Only issue I have is the syncing doesn't stick when I switch from the app to anything else (including Android TV home screen)

Split the foreground service thing off to #68 / #69

2.3 release won't allow me to click the link button. I can't even select it. Sony X900E

Folded into #126


CSIP64 fileGrp/USE one-word categories instead of full folder path

The current definition of CSIP64 reads:
<requirement ID="CSIP64" REQLEVEL="MUST" EXAMPLES="fileSecExample1 fileSecExample2">
    <description>
        Description of the use of the file group

The value in the @USE is the name of the whole folder structure to the data, e.g "Documentation", "Schemas", "Representations/preingest" or "Representations/submission/data".

METS XPath

fileSec/fileGrp/@USE

Cardinality

1..1

    </description>
</requirement>

mets.xsd annotation for fileGrpType attribute @USE states:

/…/ A tagging attribute to indicate the intended use of files within this file group (e.g., master, reference, thumbnails for image files)./…/

In this light, having the full path in the @USE attribute seems weird because:

The path is already present in all child file/FLocat elements;
@USE should describe the use scenario in general, while "Representations/preingest" and "Representations/submission/data" are effectively both representations, so the full path just muddies the water;
The paths can get ugly, further exacerbating issue 2, e.g. "Representations/rep1/data/Messages/0T/0B/0M/6K/186K/" as in the Outlook example I provided in #426.

CSIP structMap is about physical structure, so it can provide the structure of file groups.
Going without full paths seems to have been the intention at some point, as the description of  VocabularyFileGrpAndStructMapDivisionLabel explicitly states fileGrp/@USE as its intended use context.
In sum, I propose sticking to the one-word values from VocabularyFileGrpAndStructMapDivisionLabel.

I'm in favour of fixing this IF it forces paths to be duplicated in a package. Repetition is brittle as it leaves the door open for a change to be made in one place while not reflected elsewhere


DON'T MERGE : Updating to 0.23.0

Quite some iteration here. Summary of changes:

Updated the recursion interface needed for 0.23.0
Updated the rest of noir packages to 0.23.0 (i.e. noir_wasm)
Removed most of the code to start using React hooks, as we should've done long time ago
Updated hardhat to be TS+ESM ♥ And the whole app to be ESM
Ditched ethers in favour of viem, and started using Wagmi hooks
Removed dummy support for other chains: this is outside of the scope of a simple example
Made the app run just fine if the user has no wallet installed
Removed redundant non-recursive test

Closes AztecProtocol/dev-rel#163

I'm merging this as 0.23.0 is out @critesjosh. There has a to be a "better" way with wagmi but time is of the essence now because of circuit breaker

(I did update the readme though!)


[Map] Modify rotate button to allow switching between North and orientation defined by user

Currently, clicking the standard map rotate button brings the user to North exclusively. We should make this button more useful for local communities by using it to switch back and forth between a user-defined orientation and north.

[X] Create custom compass icon
[X] Change onClick behavior to switch between user-defined orientation and north
[X] Add rotation behavior to custom compass icon
[ ] Add "click and hold" behavior to custom compass icon (@newguyen)
[ ] Add CMS integration (@rudokemper)

@tomekr that's correct the NavigationControl API is very limited. I think we will need a custom button to control the camera for custom orientations. The easiest thing would be too hide the default NavigationControl and replace it with the custom one.
@rudokemper Where would you like the user to select this? Should it be an option every user has or an admin? Once we decide that, the button is pretty easy to implement.
@tomekr pretty much has it done with the custom button. Happy to clarify what I'm saying if necessary (sorry a little rushed here today).

I think that we can have the custom button replacing the default NavigationControl, and having it reset to North only as a standard. Then, somewhere in the code*, there can be a parameter where the administrator can insert a custom orientation. This value is set to blank on a default Terrastories build and therefore ignored by the custom button. Once the administrator defines an orientation using that parameter, the custom button will then use that orientation along with North.

eventually we will want to build the ability to set the orientation into a UI field in the Terrastories back-end, but this will do for now.

Hi @tomekr! Were you still interested in working on this, or maybe sharing a WIP of what you did so somebody else could finish it (and also give you credit as co-author)?

@tomekr just following up on the awesome work you did already :)

Hello! I started to look into incorporating Kalimar's suggestion to address this issue and create the functionality.  With some of the refactoring going on, would it be possible for me to work on this issue?


(GH-39) removed all documentation

everything is available at
https://cakebuild.net/docs/integrations/editors/rider/
we'll track only changes here and PR them into cake-build/website
on release.
fixed #39

@nils-a your changes have been merged, thanks for your contribution 👍

@nils-a your changes have been merged, thanks for your contribution 👍


Removed note about aria-label requiring a  or  element

aria-label can be used on any element, and is even used on the <span>
example right below this paragraph.
I verified with ChromeVox+Chrome and VoiceOver+Safari that the tooltip's contents (via aria-label) are read off even on a <span>.

These changes should be made against the code in master, not gh-pages. The gh-pages branch is generated via deploy script :).

I'm no good with computers :) Sending you another PR - sorry for the noise.


v0.22.0 slow and buggy

Describe the bug
Just updated to v0.22.0 and I'm finding it very slow to the point of barely being able to use it. The previous version was running great.
Particularly:

The "Timeline" is always stuck "Fetching data..."
The "Resources" section only displays some of the images.
The "Inbox" indicates there's a message (blue dot) - but there's no messages.
I have to keep reloading the page to get Memos to show. It's almost unusable for me now.

I've restarted the Docker container in which I run Memos and I've tried this on different machines using Safari and Firefox.
Steps to reproduce

Go to Timeline...
Go to Resources...
Go to Inbox...
etc

The version of Memos you're using
v0.22.0
Screenshots or additional context
No response

Could you provide some logs from backend about the "stuck" issue?

The first one my tags are all gone, the second one the share-picture feature is gone ~ the third one the phone can't log in (apple, android)

How to return to the v21 version? I tried it, but the content could not be read. I had no choice but to upgrade to the latest version. After the upgrade, many things could not be displayed and there were many problems.

我实在不理解便签为啥全没了，点击重构便签不仅不支持二级标签而且很多标签都没有成功导入，why？谁的天才想法啊？？？

最近的几次更新都不如不更，真心希望好好沉淀一下

最近的几次更新都不如不更，真心希望好好沉淀一下
每次更新，糟糕的体验，手机端要等才能用。

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated.

The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down.

How do I go back to version v20-v21? It’s really bad. I’ve lost a lot of stuff.

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated.

The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down.

How do I go back to version v20-v21? It’s really bad. I’ve lost a lot of stuff.

备份下文件把容器删了重新拉一个再映射文件夹，标签用stable

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated.问题不是英文的。它已被自动翻译。问题不是英文的。它已被自动翻译。

The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down.最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。

How do I go back to version v20-v21? It‘s really bad. I’ve lost a lot of stuff.如何返回到 v20-v21 版本？这真的很糟糕。我失去了很多东西。

备份下文件把容器删了重新拉一个再映射文件夹，标签用 stable

我试过了，我之前的内容一直显示，内容获取中~~~~

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated.问题不是英文的。它已被自动翻译。问题不是英文的。它已被自动翻译。

The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down.最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。

How do I go back to version v20-v21? It‘s really bad. I’ve lost a lot of stuff.如何返回到 v20-v21 版本？这真的很糟糕。我失去了很多东西。

备份下文件把容器删了重新拉一个再映射文件夹，标签用 stable

我试过了，我之前的内容一直显示，内容获取中~~~~

我的建议是用之前的备份，自从升级0.19的时候数据库崩了之后我每次升级都备份，还有就是换版本必须把浏览器cooike删除再重启

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated.问题不是英文的。它已被自动翻译。问题不是英文的。它已被自动翻译。问题不是英文的。它已被自动翻译。问题不是英文的。It has been automatically translated.问题不是英文的。它已被自动翻译。问题不是英文的。它已被自动翻译。

The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down.最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。最后几次更新比根本没有更新更糟糕。最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。最后几次更新比根本没有更新更糟糕。我真的希望它能安定下来。

How do I go back to version v20-v21? It『s really bad. I』ve lost a lot of stuff.如何返回到 v20-v21 版本？这真的很糟糕。我失去了很多东西。如何返回到 v20-v21 版本？这真的很糟糕。I』ve lost lot of stuff.如何返回到 v20-v21 版本？这真的很糟糕。我失去了很多东西。

备份下文件把容器删了重新拉一个再映射文件夹，标签用 stable

我试过了，我之前的内容一直显示，内容获取中~~~~

我的建议是用之前的备份，自从升级 0.19 的时候数据库崩了之后我每次升级都备份，还有就是换版本必须把浏览器 cooike 删除再重启

这个我以为是最完美了，没想到每次升级太糟糕了，偶尔经常抽风。我现在考虑用别的了，不能全部都放在这个上面。

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated.

Issue is not in English. It has been translated automatically. Issue is not in English. It has been automatically translated. Issue is not in English. It has been automatically translated. The question is not in English. It has been automatically translated. The question is not in English. It has been automatically translated. The question is not in English. It has been automatically translated. The question is not in English. It has been automatically translated. English. It has been automatically translated. The question is not in English. It has been automatically translated. The question is not in English. It has been automatically translated. The question is not in English. It has been automatically translated. This question is not in English. It has been automatically translated. This question is not in English. It has been automatically translated. This question is not in English. It has been automatically translated. This question is not in English. It has been automatically translated. This question is not in English. It has been automatically translated.

The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. Updates are even worse. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. No updates are worse. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. Updates are even worse. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. The last few updates are worse than no updates at all. I really hope it settles down. The last few updates are worse than no updates at all. I really hope it settles down.

How do I go back to version v20-v21? It's really bad. I've lost a lot of stuff. How do I go back to version v20-v21? This is really bad. I've lost a lot. How to return to v20-v21 version? This is really bad. I've lost a lot of stuff. How to get back to v20-v21 version? This is really bad. I've lost a lot.How to get back to v20-v21 version? v20-v21 version? This is really bad. I've lost a lot. How to return to v20-v21 version? This is really bad. I've lost a lot. How to return to v20-v21 version? This is really bad. I've lost a lot. How to go back to v20-v21 version? This is really bad. I've lost a lot.

Back up the files, delete the container, pull a new one, and map the folder. The label is stable. Back up the files, delete the container, pull a new one, and map the folder. Labels are stable.

I tried it, my previous content is always displayed, and the content is being obtainedI tried it, my previous content is always displayed, and the content is being obtained

My suggestion is to use the previous backup. Since the database crashed when upgrading to 0.19, I have backed up every time I upgraded. Also, when changing versions, I must delete the browser cooike and restart it. My suggestion is to use Previous backup. Since the database crashed when upgrading to 0.19, I backed up every time I upgraded. Also, when changing versions, I have to delete the browser and restart it.

I thought this was the most perfect one, but I didn't expect that it would be so bad every time I upgraded it, and I would occasionally have convulsions. I'm thinking about using other things now, and I can't focus everything on this. I thought this was the most perfect one, but I didn't expect it would be so miserable every time I upgraded, with occasional twitching. I'm thinking of using other things now and I can't focus everything on this.

This is a problem that occurs when downgrading to v21. I don’t know what to do.


Unit testing strategy needed

The services component needs a coverage test solution to be integrated into the CI/CD strategy. Probably with coveralls & mocha.
The UI also needs unit testing. See the recommendations from the Vue site for direction. https://vuejs.org/v2/guide/testing.html

I looked at Selenium as the UI final view testing framework.
I do not recommend Selenium as the Only testing for the UI, as we need tests against the UI construction layer not just the browser final render ( see the Vue recommendations) but Selenium has the benefit of having a fairly easy IDE that can be used in Chrome/Firefox as plugin, enabling non-developers to also build tests and test suites, and can run tests in headless so can be used with builds and also on the live site.
The Selenium ability to pull into the plugin and run also means that it can be used for running and updating manual tests by simply grabbing from github and downloading then browsing to the test from the plugin.
This seems like a good place to start from the middle, and have some tests, where we can then know what we need from other testing frameworks.


Correction of the slider width to no longer display the horizontal scroll + doc for deviceType.getByCategory

If you set slider-horizontal-width to 100%; the slider-tick-label goes beyond the container at max value :
before:

After:

Hey!
I'm trying to reproduce your bug but i can't manage to reproduce it...
When exactly does it happens? Is there with a specific screen resolution? :)

I have it with Windows 7, on Chrome and Firefox (latest version), at the resolution recommended by my screen.

Got it! I see what you mean and i'm able to reproduce indeed!
I'm merging right now


Update peptideshaker to SearchGUI 2.1 and PeptideShaker 1.1

This relies on a new binary SearchGUIArchive datatype in galaxy that would track versions in metadata.
Should also remove repository_dependencies.xml  since datatypes are in main galaxy distribution,
We should also determine if searchgui_mods.loc.sample needs any updates.

@jj-umn like it! :+1:

@jj-umn this is great.

Updated the extensions used in the tool wrappers to reflect the change in extension names:
http://compomics.github.io/projects/peptide-shaker.html
commit 02763fbff4c2b207d5a80f61196996c039baa5bb
Author: Harald Barsnes<EMAIL_ADDRESS>Date:   Tue Aug 25 14:23:15 2015 +0200
Renamed .cps to .cpsx and .parameters to .par.

package_peptideshaker_1_1 tool_dependencies.xml
The download of zip results in a redundant PeptideShaker-1.1.1 dir, changed the source_directory for the move_directory_files action.
This also requires:
commit 197c7b21b209a7b6fbdb9a8a11c232a2b88523fc
Author: Nicola Soranzo<EMAIL_ADDRESS>Date:   Thu Sep 3 12:55:28 2015 +0100
Fix for fix for fix for handling of unix permissions in .zip files.
Append common_prefix to extraction_path only when returning.

@iracooke @bgruening
With SearchGuiArchive datatype in current dev lib/galaxy/datatypes/binary.py
and changes in this pull request, I was able to run searchgui and peptideshaker on the sample files from our GCC2015 tutorial  at UMN on galaxyp server.
Still need to test if any changes are required for:  searchGUI_mods.xml   searchGUI_usermods.xml


Update SwiftPM file to 5.0.

Fix compilation issue by adding import for UIBezierPath
This allow to open project in Xcode 11 by opening Package.swift
To have build and test available
Using command line, build could be checked by executing
sdk=`xcrun -sdk iphonesimulator -show-sdk-path`
sdkVersion=`echo $sdk | sed -E 's/.*iPhoneSimulator(.*)\.sdk/\1/'`
swift build  -Xswiftc "-sdk" -Xswiftc "$sdk" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios$sdkVersion-simulator"

could be added to a CI like travis or github workflow like this

@phimage Thx for your contribution.


CHECK_EQ with enum values

Description
I don't know if it could be a bug or it is more a feature request.
Anyway if you compare two enum values using CHECK_EQ and the check fails, the error message shows question mark instead of values.
I would expect that the enum values are casted to integer by default. Or maybe to  have a macro (e.g.: CHECK_EQ_ENUM) that automatically cast to int.
Extra info

doctest version: 2.3.3
Operating System: Arch Linux x86_64 5.2.9
Compiler+version: clang 8.0.1

This is a duplicate of this: https://github.com/onqtam/doctest/issues/121

Yes looks like a duplicate.

closing this one since #121 has been implemented & closed


Cant access ddrive v3 metadata

Each time I try to access the localhost:4380/metadata, it just appears a "not found" message. And yes I did put --metadata=true in the command.

Bruh I had the wrong version sorry


QIR Validation Script - Quantum

Major updates to the validation script.
See also: https://github.com/microsoft/qsharp-runtime/pull/763

I've merged in the PR as it is and left the open comments up for us to follow up on later. We should have a broader conversation about the things raised here and how we want to implement them in our build scripts.


Show the receiver in the coder breadcrump in the debugger and for inherited examples/tests

In the debugger when the receiver is different than the method class we should show that in the breadcrumb.
Should be the same for inherited examples and tests.


[BEAM-6480] Adds AvroIO sink for generic records.

Add a sink to AvroIO that takes generic data (usually GenericRecords).  The current method sinkViaGenericRecords() has been deprecated.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[X] Choose reviewer(s) and mention them in a comment (R: @username).
[X] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[X] If this contribution is large, please file an Apache Individual Contributor License Agreement.

R: @iemejia Can you take a look?

Oops -- there's a NeedsRunner issue with this PR.  It turns out that the unit test relies on heterogeneous GenericRecords being sent to dynamic files.  It's unlikely that a PCollection<GenericRecord> with different schemas will be correctly serialized with a single AvroCoder (and probably undesirable).
I can either rewrite the test to use a single schema and different criteria to select dynamic destinations (which exercises the code equally well) or write a custom Coder to correctly serialize the different GenericRecords in a single collection (which is a good example of how to use this technique).  I'm taking a look.

Run Java PreCommit

R: @aromanenko-dev


AWS RDS Cluster scaling-compute API call sends incorrect request parameter

What happened?

Changing dbClusterInstanceClass to a new value for RDS Clusters triggers an API call with incorrect parameter.

How can we reproduce it?

Create an RDS cluster (via Claim-Composition or via Managed Resource route) (I have tried PostgresQL and MySQL db engine types).
Once cluster is fully provisioned, change 'dbClusterInstanceClass' parameter to a new value.  (i changed instance class from db.r6db.xlarge to db.m5d.large).
This will trigger an API call, but it has incorrect parameters passed, which will result in error and constant failed reconciliation.
Error and incorrect request parameters.

"errorCode": "InvalidParameterCombinationException",

"errorMessage": "Cannot find upgrade target from 8.0.32 with requested version db.r6gd.large.",
"requestParameters": {
"dBClusterIdentifier": "dd-managed-cluster",
"applyImmediately": true,
"allowMajorVersionUpgrade": false,
"allowEngineModeChange": false,
"engineVersion": "db.r6gd.large" <<< This parameter is mapped incorrectly.
},
While if request is submitted via AWS CLI, UI or even via Terraform, it generates correct request and scaling-compute initiates on RDS cluster.
Correct API Call request parameters.
"requestParameters": {
"dBClusterIdentifier": "dd-managed-cluster",
"applyImmediately": true,
"allowMajorVersionUpgrade": false,
"allowEngineModeChange": false,
"dBClusterInstanceClass": "db.r6gd.large"
},

What environment did it happen in?

Crossplane Version: 1.21
Provider Version: 0.37
Kubernetes Version: 1.21
Kubernetes Distribution: EKS

Hi @desaidipen, could you please give us more information, example manifests you used, about the changes you made?

I have tried upgrading RDS (PostgresQL and MySQL) engine version, but it failed.   The claim file used is as below.
apiVersion: db.test.org/v1alpha1 kind: RelationalDB metadata:   name: rds-pgql-a-11   namespace: team-a spec:   compositionSelector:     matchLabels:       provider: aws       environment: dev       configuration: standard   clusterNetwork:     vpcId: vpc-id     subnetIds:       - "subnet-001"       - "subnet-002"       - "subnet-003"   resourceConfig:     providerConfigName: provider-config-irsa     region: us-east-1     allocatedStorage: 200     backupRetentionPeriod: 20     dbClusterInstanceClass: db.m5d.xlarge >>> After successful deploy change this value to db.r6gd.xlarge.     iops: 2000     preferredMaintenanceWindow: "tue:08:00-tue:10:00"     tags:       cluster: crossplane       namespace: team-a       environment: dev       application: my-app-1     # RDS Engine Specific Configurations     engine: postgres     engineVersion: "14.8"     engineFamily: postgres14     port: 5432   parameterConfig:     rds.force_ssl: "1"
By apply change, we get above cloudtrail api call (with requested parameters) which is incorrect mapping.

@desaidipen it still doesn't seem possible to reproduce this error with the information you provided. As I understand it, you get an error when you change the dbClusterInstanceClass parameter in the apiVersion: rds.aws.upbound.io/v1beta1, kind: Cluster resource.
Could you please give me the full MR, not the claim or composition?

Sure, here is the yaml file for managed resource.
kind: Cluster
metadata:
  annotations:
    meta.upbound.io/example-id: rds/v1beta1/cluster
  name: dd-managed-pgql-cluster
  namespace: team-a
spec:
  forProvider:
    dbSubnetGroupName: dd-rds-sng-managed
    manageMasterUserPassword: true
    masterUsername: cpadmin
    region: us-east-1
    skipFinalSnapshot: true
    # ADDITIONAL MANDATORY CONFIG
    allocatedStorage: 200
    backupRetentionPeriod: 7
    dbClusterInstanceClass: db.m5d.xlarge >>> After successful deploy change this value to db.r6gd.xlarge.
    # dbClusterParameterGroupName: default.RDSX.cluster.on
    engine: postgres
    engineVersion: "14.8"
    iops: 5000
    storageEncrypted: true
    storageType: io1
  writeConnectionSecretToRef:
    name: dd-managed-cluster-secret
    namespace: crossplane-system
  providerConfigRef:
    name: provider-config-irsa```

@desaidipen Are you sure that the above MR works in its current state, I get the following error:
    message: "apply failed: creating RDS Cluster (dd-managed-pgql-cluster): InvalidParameterCombination:
      The specified DB engine version isn't valid for the postgres DB cluster. Specify
      a valid DB engine version.\n\tstatus code: 400, request id: 78ad87a2-51e7-43fc-8762-cf4440cc4de2: "

Just a note: Please ensure that the error can be reproduced with the information you provide when reporting a bug, and clearly state the steps for reproduction.

@turkenf Here is some additional details.
Crossplane Version: 1.12
Upbound Version: 0.37

Try: Change engine version to 15.3.

If above try does not work, then please create a RDS PostgresQL DB cluster and then try scaling compute.

Observe that reconcile is failing and check API call in Cloudtrail.  It clearly shows that incorrect variable is sent to the api call.


Uses chmod on the cfn-hup target instead of the symlink

Private build demonstrating that this is working: https://us-east-1.console.aws.amazon.com/codesuite/codebuild/701759196663/projects/spel-ci/build/spel-ci%3A0a7a2755-15c5-4651-8325-2242399cc346?region=us-east-1


Added admin endpoints to client

Codecov Report

Merging #44 (3079cba) into master (8a9f13d) will decrease coverage by 11.65%.
The diff coverage is 7.20%.

@@             Coverage Diff             @@
##           master      #44       +/-   ##
===========================================
- Coverage   41.24%   29.58%   -11.66%
===========================================
  Files          14       16        +2
  Lines        1428     1994      +566
===========================================
+ Hits          589      590        +1
- Misses        793     1358      +565
  Partials       46       46

Flag
Coverage Δ

unittests
29.58% <7.20%> (-11.66%)
:arrow_down:

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

Impacted Files
Coverage Δ

transports/http.go
24.79% <ø> (-1.60%)
:arrow_down:

transports/http_admin.go
5.23% <5.23%> (ø)

transports/graphql_admin.go
6.61% <6.61%> (ø)

transports/graphql.go
32.82% <100.00%> (-2.25%)
:arrow_down:

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 8a9f13d...3079cba. Read the comment docs.


JsonSchema::AggregateError, Reference resolution over file is not currently supported

I'm using v0.11.1 with json_schema 0.20.7 in a Rails application, in which I want to validate the response within request specs. I have the helper configured for this root:
JsonMatchers.schema_root = "spec/support/schemas"

In my request spec I have:
expect(json).to match_json_schema("client_api/v1/geolocation_trace")

Where the valid JSON content of the response is (compacted for brevity):
{"geolocation_trace":{"id":2,"geolocations":[{"id":10,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":9,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":8,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":7,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":6,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":5,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":4,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":3,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":2,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2},{"id":1,"accuracy":0.0,"client_time":"2019-07-31T13:45:06.000Z","client_time_skewed":"2019-07-31T13:45:06.000Z","latitude":40.1235,"longitude":40.1235,"lonlat":"POINT (40.12345 40.12345)","speed":0.0,"geolocation_trace_id":2}]}}

The JSON schemata are as follows:
spec/support/schemas/client_api/v1/geolocation_trace.json
{
  "$id": "file:/geolocation_trace.json#",
  "description": "A geolocation trace",
  "type": "object",
  "required": ["id"],
  "definitions": {
    "geolocation": {
      "type": "array",
      "items": {
        "$ref": "file:/geolocation.json#"
      }
    }
  },
  "properties": {
    "id": { "type": "number" },
    "geolocations": {
      "$ref": "#/definitions/geolocation"
    }
  }
}

spec/support/schemas/client_api/v1/geolocation.json
{
  "$id": "file:/geolocation.json#",
  "description": "A geolocation",
  "type": "object",
  "required": ["id", "latitude", "longitude", "client_time"],
  "properties": {
    "id": { "type": "number" },
    "latitude": { "type": "number" },
    "longitude": { "type": "number" },
    "client_time": { "type": ["string"], "format": "date-time" },
    "client_time_skewed": { "type": ["string", "null"], "format": "date-time" },
    "accuracy": { "type": ["number", "null"] },
    "speed": { "type": ["number", "null"] }
  }
}

When running the test, I'm getting:
     JsonSchema::AggregateError:
       #/definitions/geolocation/items: Reference resolution over file is not currently supported (URI: file:///geolocation.json). #: Couldn't resolve references: file:///geolocation.json#.
     # /usr/local/bundle/gems/json_schema-0.20.7/lib/json_schema/reference_expander.rb:43:in `expand!'
     # /usr/local/bundle/gems/json_schema-0.20.7/lib/json_schema/schema.rb:208:in `expand_references!'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/matcher.rb:38:in `block in build_and_populate_document_store'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/matcher.rb:38:in `each'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/matcher.rb:38:in `build_and_populate_document_store'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/matcher.rb:9:in `initialize'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/assertion.rb:11:in `new'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/assertion.rb:11:in `initialize'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/rspec.rb:9:in `new'
     # /usr/local/bundle/gems/json_matchers-0.11.1/lib/json_matchers/rspec.rb:9:in `block in <top (required)>'
     # ./spec/requests/client_api/v1/geolocation_traces_spec.rb:57:in `block (3 levels) in <top (required)>'
     # ./spec/rails_helper.rb:95:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/database_cleaner-1.7.0/lib/database_cleaner/generic/base.rb:16:in `cleaning'
     # /usr/local/bundle/gems/database_cleaner-1.7.0/lib/database_cleaner/base.rb:100:in `cleaning'
     # /usr/local/bundle/gems/database_cleaner-1.7.0/lib/database_cleaner/configuration.rb:86:in `block (2 levels) in cleaning'
     # /usr/local/bundle/gems/database_cleaner-1.7.0/lib/database_cleaner/configuration.rb:87:in `cleaning'
     # ./spec/rails_helper.rb:94:in `block (2 levels) in <top (required)>'

But I don't understand why this would not be supported. For all I can tell, $ref is explicitly mentioned in the documentation – there's even a test with a relative file reference.
Note that the JSON response is correctly validated with the following schema:
{
  "$id": "file:/geolocation_trace.json#",
  "description": "A geolocation trace",
  "type": "object",
  "required": ["id"],
  "properties": {
    "id": { "type": "number" },
    "geolocations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "latitude", "longitude", "client_time"],
        "properties": {
          "id": { "type": "number" },
          "latitude": { "type": "number" },
          "longitude": { "type": "number" },
          "client_time": { "type": ["string"], "format": "date-time" },
          "client_time_skewed": { "type": ["string", "null"], "format": "date-time" },
          "accuracy": { "type": ["number", "null"] },
          "speed": { "type": ["number", "null"] }
        }
      }
    }
  }
}

My thinking was that maybe the relatve paths could not be resolved, but even changing the schema_root to spec/support/schemas/client_api/v1/ does not solve this issue.

I realize this might be a problem with json_schema itself, but perhaps it's an interaction with this Gem? I'm not sure. I can move the issue if needed, of course.

Oh, I got it now. The problem was that I used $id instead of id, so the file reference could never be resolved. The error was misleading. The fact that the document store was empty never occurred to me.

I just had the same issue... Looks like the gem is outdated and does not support newer JSON Schema drafts, using draft 6 is mandatory. :(


Stale analysis tables block from deleting users

Error:
PG::Error: ERROR: cannot drop schema USERNAME because other objects depend on it
DETAIL: table USERNAME.analysis_UUID depends on schema USERNAME
HINT: Use DROP ... CASCADE to drop the dependent objects too.

19
File "/home/ubuntu/www/production.cartodb.com/releases/20161123092123/app/models/user/db_service.rb", line 395 in block (2 levels) in drop_organization_user
20
File "/home/ubuntu/www/production.cartodb.com/releases/20161123092123/app/models/user.rb", line 638 in in_database
21
File "/home/ubuntu/www/production.cartodb.com/releases/20161123092123/app/models/user/db_service.rb", line 376 in block in drop_organization_user

...

+ 18 non-project frames
19
File "/home/ubuntu/www/production.cartodb.com/releases/20161123092123/app/models/user/db_service.rb", line 395 in block (2 levels) in drop_organization_user
20
File "/home/ubuntu/www/production.cartodb.com/releases/20161123092123/app/models/user.rb", line 638 in in_database
21
File "/home/ubuntu/www/production.cartodb.com/releases/20161123092123/app/models/user/db_service.rb", line 376 in block in drop_organization_user

cc @CartoDB/builder-backend

This should be handled by https://github.com/CartoDB/cartodb/blob/master/app/models/user/db_service.rb#L819
Maybe this is an old user (which didn't have username in the analysis catalog). Leaving open for now, but I think we should not try to fix it if it just happened once.

Closing automatically because of inactivity. If anybody considers that this still important, please reopen and it'll be prioritized.