Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#2161] One-Stop Config File for Code Portfolio #2192

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

asdfghjkxd
Copy link
Contributor

@asdfghjkxd asdfghjkxd commented Apr 15, 2024

Part of #2161

Proposed commit message

Currently, `report-config.json` is underutilised (it is only used for
defining report titles). However, considering the code portfolio
feature, we need to implement a config file that allows users to
quickly set up and deploy it to their favourite platform to host
websites.

Let's move to repurpose `report-config.json` into a YAML file that
users can use it to set up configs to build their code portfolio more
easily.

Other information

Requires CI/CD to be updated to Java 11:

@github-actions github-actions bot requested a deployment to dashboard-2192 April 15, 2024 06:42 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 April 15, 2024 06:42 Abandoned
@asdfghjkxd asdfghjkxd requested a review from a team April 16, 2024 06:49
docs/ug/configFiles.md Outdated Show resolved Hide resolved
@jonasongg jonasongg requested review from a team April 18, 2024 17:55
@github-actions github-actions bot requested a deployment to dashboard-2192 April 27, 2024 07:32 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 April 27, 2024 07:32 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 April 27, 2024 08:22 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 April 27, 2024 08:22 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 May 6, 2024 11:56 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 May 6, 2024 11:56 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 May 7, 2024 04:16 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 May 7, 2024 04:16 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 May 7, 2024 04:48 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 May 7, 2024 04:48 Abandoned
Copy link
Contributor

@jonasongg jonasongg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Member

@ckcherry23 ckcherry23 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on the YAML config file @asdfghjkxd! I have some questions and left them as comments below.

config/report-config.yaml Outdated Show resolved Hide resolved
config/report-config.yaml Outdated Show resolved Hide resolved
docs/ug/configFiles.md Show resolved Hide resolved
@@ -107,12 +107,22 @@ e.g.: `example.java` in `example-repo` can either be in the `test` group or the

<!-- ==================================================================================================== -->

## `report-config.json`
## `report-config.yaml`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we also update the --config flag under 'CLI syntax reference' to include report-config.yaml instead of json? https://docs-2192-pr-reposense-reposense.surge.sh/ug/cli.html#config-c

Let's also update the 'Customize using CSV config files' heading on the 'Customizing Reports` page to include YAML or remove file types entirely. https://docs-2192-pr-reposense-reposense.surge.sh/ug/customizingReports.html#customize-using-csv-config-files

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do!

Comment on lines 12 to 30
public static final List<String> DEFAULT_FILE_FORMATS = List.of(
"override:java", "md", "fxml"
);
public static final List<String> DEFAULT_IGNORE_GLOB_LIST = List.of(
"docs**"
);
public static final List<String> DEFAULT_IGNORE_COMMITS_LIST = List.of(
"2fb6b9b2dd9fa40bf0f9815da2cb0ae8731436c7",
"c5a6dc774e22099cd9ddeb0faff1e75f9cf4f151",
"cd7f610e0becbdf331d5231887d8010a689f87c7",
"768015345e70f06add2a8b7d1f901dc07bf70582"
);
public static final List<String> DEFAULT_IGNORE_AUTHORS_LIST = List.of(
"author1",
"author2"
);
public static final boolean DEFAULT_IS_FIND_PREVIOUS_AUTHOR = false;
public static final boolean DEFAULT_IS_SHALLOW_CLONING = true;
public static final boolean DEFAULT_IS_IGNORE_STANDALONE_CONFIG = true;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if we need these hardcoded default values here? Check for this in the other files inside reportconfig/ too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe they are present for testing purposes (creating default instances), but I will have to check before reverting back to you!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If they're just for tests, could we move them into the test files like we do for test defaults for the other classes? It doesn't seem like these values are useful defaults outside of the tests.

@ckcherry23 ckcherry23 requested a review from a team May 11, 2024 20:03
Copy link
Contributor

@gok99 gok99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this PR complete? I don't see how this config is handled beyond being parsed and having the name read from in SummaryJson.java. How does the config fit into the existing processing flow and modify RepoConfiguration (along with the interaction with the conflicting CSV fields)?

config/report-config.yaml Show resolved Hide resolved
}

@Override
protected ReportConfiguration fromJson(Gson gson, Path path, Type type) throws IOException , JsonMappingException {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fromYaml?

Copy link
Contributor Author

@asdfghjkxd asdfghjkxd May 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I initially wanted to follow the same interface as JsonParser, but in retrospect it might have been better to declare another abstract YamlParser that implements similar interface methods as JsonParser. I could probably work on this in the upcoming weeks if I have some time; anyone is welcome to jump in and refactor the code if this feature is needed urgently!

@github-actions github-actions bot requested a deployment to dashboard-2192 June 9, 2024 06:12 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 June 9, 2024 06:12 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 June 29, 2024 14:02 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 June 29, 2024 14:02 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 July 14, 2024 09:41 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 July 14, 2024 09:41 Abandoned
@github-actions github-actions bot requested a deployment to dashboard-2192 July 14, 2024 10:25 Abandoned
@github-actions github-actions bot requested a deployment to docs-2192 July 14, 2024 10:25 Abandoned
@asdfghjkxd
Copy link
Contributor Author

asdfghjkxd commented Jul 15, 2024

@gok99 @damithc The feature is still being worked on at the moment (I have not finalised the precedence to read in config files/CLI arguments, and subsequently have not updated tests and test resources), but I would like to confirm with you that:

  1. For blurbs
    1. If blurbs are specified in the one-stop config file and in blurbs.md, blurbs.md is prioritised
    2. If blurbs are not specified in the one-stop config file but are specified in blurbs.md, blurbs.md is prioritised
    3. If blurbs are specified in the one-stop config file but are not specified in blurbs.md, the one-stop config file is prioritised
    4. If blurbs are not specified at all, then neither are prioritised and BlurbMap is empty
  2. For the precedence of configurations for the application, it is: one-stop > CLI (repos are specified in the CLI argument) > CLI (repos and settings specified in config files)

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants