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

RSE-25 analysis #19

Open
5 of 13 tasks
AkshayDevkate opened this issue Nov 25, 2024 · 3 comments
Open
5 of 13 tasks

RSE-25 analysis #19

AkshayDevkate opened this issue Nov 25, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@AkshayDevkate
Copy link
Member

AkshayDevkate commented Nov 25, 2024

Description:
Refactor and restructure scripts in collect_variables/scripts/soft_dev_pract

  1. FAIR (Spyder graph)

    • License (type - copyleft, permissive)
    • Citation
    • community registry
    • checklist
  2. Documentation (Decide what type of graph)
    Readme Analysis:

    • Extend collect_variables/scripts/parse_readme to:
      • Check for the presence of code review checklists and software quality checklists mentioned in the README (beyond those recommended by howfairis_api like OpenSSF badge).
      • Verify if contributing guidelines are present in the repository.
  3. Data License and Folder Analysis: (Not planned for RSE25)

    • Check if there is a folder named data in the root directory.
    • Verify if a data license is mentioned in the README.
  4. Documentation:

    • Update the documentation to reflect the changes and provide stepwise instructions for using the scripts.
  • Collect if contributing guideline or code of conduct is present (write the program)
  • Run the collection script
  • Visualise docs (its correlation with contributor count/until dlr application class is done)
  1. Testing and making dependency requirements explicit.
    • Graph for testing
    • One liner for type of testing and programming languages (plan for dlr application classes or impact of contributors on these practices)
    • Graph for making dependency requirements explicit.
    • One line for how they are made explicit like dependency configuration files or build tools (for python and r) and for c++ dont know how.

Tasks:

  • Analyze license types (copyleft, permissive, proprietary) using howfairis_api.
  • Extend parse_readme to detect additional checklists and contributing guidelines.
  • Check for the data folder and data license mention in the README.
  • Update documentation to describe the new functionality.
  • Restructure scripts for better modularity and stepwise usability.
  • Refactor code make .env file path in software development practices scripts.
@AkshayDevkate AkshayDevkate added the enhancement New feature or request label Nov 25, 2024
@AkshayDevkate AkshayDevkate self-assigned this Nov 25, 2024
@AkshayDevkate
Copy link
Member Author

AkshayDevkate commented Dec 9, 2024

How to make dependency requirements explicit ?

  • We can make dependencies explicit in two ways: 1. dependency configuration files and 2. .lock files.

Dependency Configuration Files

  • Allow flexible version constraints (e.g., numpy>=1.21).
  • recording general requirements without enforcing exact versions.

.lock Files

  • Freeze dependencies to exact versions (e.g., numpy==1.21.4).

  • Ensure reproducibility and consistency across development, testing, and production environments.

  • Prevent issues caused by version updates.

  • .lock files are typically generated after configuration files, as they depend on the information defined in those files. (2nd and additional step)

Programming language Configuration Files .lock Files
Python requirements.txt, setup.py, pyproject.toml, Pipfile Pipfile.lock, poetry.lock, requirement.lock
R DESCRIPTION renv.lock, packrat.lock
C++ CMakeLists.txt, vcpkg.json, conanfile.py, conanfile.txt vcpkg.lock, conan.lock, CMakeCache.txt (indirect lock mechanism for CMake projects) is this correct ?
  • Update existing program (requirement_explicit.py) to only check for dependency configuration files
  • Write another program to check .lock dependency files and save it to other column in the csv file.

@AkshayDevkate
Copy link
Member Author

AkshayDevkate commented Dec 11, 2024

Testing

  • Presence of Test/Tests folder.

The folder should be present in the root directory of the repository. folder names - test, tests, gtest, catch2.

  • Write the python program to check the folder named, test, tests, inst in the root directory.

  • Test file naming conventions.

Language Common Test Folder Names Common File Naming Conventions Frameworks
Python tests, test test_*.py, *_test.py unittest and pytest.
R tests, tests/testthat, tests/tinytest test-*.R (for testthat), *.R (for tinytest) testthat framework requires testthat.R. tinytest allows tests in tests/tinytest.
C++ tests, test, gtest, catch2 *_test.cpp, test_*.cpp Google Test or Catch2.
  • Write the python program to if the naming conventions are followed in the testing folder as per (guidelines of Python, R, C++).

  • Test types.

Language Root Test Folder Look subfolders for testing types
Python tests, test unit, integration, system, e2e, performance, regression, functional, acceptance, security, sanity , mutation, metamorphic
R tests, tests/testthat, tests/tinytest unit, integration, system, e2e, performance, regression, functional, acceptance, security, sanity , mutation, metamorphic
C++ tests, test, gtest, catch2 unit, integration, system, e2e, performance, regression, functional, acceptance, security, sanity , mutation, metamorphic
  • Write a python program to check if the following folders are present in the folder named (test, tests, test/tinytest, test/testthat, gtest, catch2) etc.

-Folders in test/tests.
get the sub folders in the folder named test,tests, gtest, catch2, tests/testthat, tests/tinytest.

  • Write a python program to save the subfolder names from the folder named test.

@AkshayDevkate AkshayDevkate changed the title extending FAIR recommendations and documentation RSE-25 analysis Dec 11, 2024
@AkshayDevkate
Copy link
Member Author

AkshayDevkate commented Jan 17, 2025

README Extentions -

CONTRIBUTING -
CONTRIBUTING.rst
CONTRIBUTING.md
CONTRIBUTING

CODE_OF_CONDUCT -
CODE_OF_CONDUCT.md
CODE-OF-CONDUCT.md
CONDUCT

CHANGELOG -
CHANGELOG.md

RELEASE -
RELEASE.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant