Giter VIP home page Giter VIP logo

csv's People

Contributors

lvmvrquxl avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

csv's Issues

Fix writer on Windows

Description

CSV writer doesn't seem to like absolute paths in Windows (because they begin with <DiskLetter>:/)...

Checklist

  • Fix.
  • Update integration workflow for running tests on Windows.
  • Update Work in progress section in changelog.

Kotools Assert v3.0

Description

Migrate incrementally to the latest version of Kotools Assert.

Checklist

  • Migrate to v1.2.
  • Migrate to v2.0.
  • Migrate to v2.1.
  • Migrate to v3.0.

Read file's content

Description

Create functions for reading all lines of a CSV file.
Types of functions to implement:

  • suspending function
  • async style function.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Document.
  • Update Work in progress section in changelog.

Document features

Dependencies

Checklist

  • Document reader.
  • Document strict reader.
  • Document writer.
  • Document strict writer.

Kotools Types v3.1

Description

Migrate incrementally to the latest version of Kotools Types.

We should accept future fixes of this version!
Also, records conversions should work with data classes containing types provided by this library.

Checklist

  • Migrate to v1.1.
  • Migrate to v1.2.
  • Migrate to v1.3.
  • Migrate to v2.0.
  • Migrate to v3.0.
  • Migrate to v3.1.
  • Allow records conversions to types provided by this library.
  • Update Work in progress section in changelog.

Use secrets for Gradle dev info

Description

Store developer information in secrets for delivering the library to Maven Central Repository.

Checklist

  • Update Gradle configuration.
  • Update Continuous Delivery workflow.

Release version 2.3

Dependencies

Issues of this new version should be done before resolving this issue.

Checklist

  • Upgrade the application's version.
  • Add a new version in changelog.
  • Update version in readme.
  • Create a release on the repository.

Create CI

Description

Create a Continuous Integration workflow.

Trunk based development strategy

Description

Update workflows for using the trunk based development strategy instead of GitHub flow.

Checklist

  • Update integration workflows.
  • Update delivery workflow.
  • Test.
  • Refactor.
  • Update issue labels of the repository.

Typeful design of the API

Description

Migrate the API to a typeful design by using the types provided by the Kotools Types library.

This is a breaking change! ๐Ÿ”ฅ

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Strict file's writing

Description

Implement a StrictWriter type that should write rows in a CSV file or throw an exception if the configuration is invalid or if something else goes wrong.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Document.
  • Update Work in progress section in changelog.

Create CD

Description

Create a Continuous Deployment workflow, triggerred when a new release is created, that should publish the library in the GitHub registry.

Conventional commits

Description

The history of this repository should follow the conventional commits specifications.
For easing the migration, create a new main branch containing the new history.

Checklist

  • Update the history of the version 2.2.0.
  • Update the history of the version 2.1.1.
  • Update the history of the version 2.1.0.
  • Update the history of the version 2.0.1.
  • Update the history of the version 2.0.0.
  • Update the history of the version 1.0.0.

Resources

Qodana

Description

Integrate Qodana in the CI workflow for analyzing the code quality of the library.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Release version 2.0.1

Dependencies

Issues of this new version should be done before resolving this issue.

Checklist

  • Upgrade the application's version.
  • Add a new version in changelog.
  • Update version in readme.
  • Create a release on the repository.
  • Remove snapshots of this version from OSSRH.

Filter and pagination ordering

Description

We should apply the filter before the pagination.

This bug was introduced in v2.1.1 and its fix should be included in the v2.1.2 and the v2.2.1!

Checklist

  • Fix.
  • Include this fix in the v2.1.2.
  • Include this fix in the v2.2.1.
  • Update Work in progress section in changelog.

Write in file as given type

Description

Users should be able to write in file by given the type of rows in the DSL.

Function's styles

  • csvWriterAsOrNull and csvWriterAsOrNullAsync.
  • csvWriterAs and csvWriterAsAsync.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Update design for explicit error handling

Description

Update functions for following the design of Kotlin Standard Library for explicit error handling.

Checklist

  • Reimplement, test and document CSV reader or null (suspending and async styles).
  • Reimplement, test and document CSV reader (suspending and async styles).
  • Reimplement, test and document CSV writer or null (suspending and async styles).
  • Reimplement, test and document CSV writer (suspending and async styles).
  • Update Work in progress section in changelog.

Update documentation

Description

Update documentation files for version 2.0.0.

Checklist

  • Update readme.md.
  • Update Work in progress section in changelog.

Write content in file

Description

Create functions for writing content in a CSV file.
If the file doesn't exist, it should be created automatically.
If the file exist, the user should be able to choose if he wants to overwrite or to append its content.

Types of functions

  • Suspending functions.
  • Asynchronous style functions.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Document.
  • Update Work in progress section in changelog.

Missing `csvWriterAsync` function

Description

Implement the missing csvWriterAsync function in the io.github.kotools.csv package (see the following screenshot).

This is a regression from v2.0 of this library because this function was present on v1.0.
This issue should fix the following versions : v2.0, v2.1 and v2.2.

image

Checklist

  • Fix.
  • Include this fix in the v2.0.2.
  • Include this fix in the v2.1.2.
  • Include this fix in the v2.2.1.
  • Update Work in progress section in changelog.

Stabilize API version 2.0

Description

Stabilize features for the next major version.

Checklist

  • Reimplement, test and refactor csvReaderOrNull and csvReaderOrNullAsync.
  • Reimplement, test and refactor csvReader and csvReaderAsync.
  • Reimplement, test and refactor csvWriterOrNull and csvWriterOrNullAsync.
  • Reimplement, test and refactor csvWriter and csvWriterAsync.
  • Refactor code.

Create new library with Gradle

Description

Initialize a new library with Gradle for following best practices and fixing indexing.

Checklist

  • Implement.
  • Test.
  • Refactor.

Release version 2.2

Dependencies

Issues of this new version should be done before resolving this issue.

Checklist

  • Upgrade the application's version.
  • Add a new version in changelog.
  • Update version in readme.
  • Create a release on the repository.

Release version 1.0

Dependencies

Issues of this new version should be done before resolving this issue.

Checklist

  • Upgrade the application's version.
  • Add a new version in changelog.
  • Update version in readme.
  • Create a release on the repository.
  • Prepare next version in Gradle configuration.

Read file's content line by line

Description

Create a function for reading a CSV file's content line by line.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Release version 2.1.0

Dependencies

Issues of this new version should be done before resolving this issue.

Checklist

  • Upgrade the application's version.
  • Add a new version in changelog.
  • Update version in readme.
  • Create a release on the repository.

Strict file's content reading

Description

Create functions that should read a CSV file's content or throw an exception if something goes wrong.

Checklist

  • Implement.
  • Test.
  • Document.
  • Refactor.
  • Update Work in progress section in changelog.

Fix delivery workflow

Description

Deliver to OSSRH job shouldn't be ignored in the delivery workflow.

Checklist

  • Fix.

Release version 2.0.0

Dependencies

Issues of this new version should be done before resolving this issue.

Checklist

  • Upgrade the application's version.
  • Add a new version in changelog.
  • Update readme.md.
  • Create a release on the repository.

Required `file` property

Description

Change the design of DSL for forcing users to define a file property instead of setting it in the builder. This allows to check the requirements in compile time instead of runtime.
Here's an example of what a user should do:

data class Person(val name: String, val age: Int, val isAdmin: Boolean = false)

suspend fun main() {
    csvWriter<Person>(file = "people") {
        records { +Person("Nobody", 25) }
    }
    val people: List<Person> = csvReader(file = "people")
    println(people)
}

This is a breaking change! ๐Ÿ”ฅ

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Default value of `file` property

Description

The file property should have a default value corresponding to the given type's name in lowercase and followed by a s.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Upgrade to Kotlin 1.6

Requirements

  • Check if dependencies support the 1.6 version of Kotlin.

Checklist

  • Upgrade.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Package `kotools.csv`

Description

Create a package kotools.csv containing all declarations of the package io.github.kotools.csv.
Then, deprecate all declarations of the old package.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Read file as a list of given type

Description

Create functions for reading a CSV file as a list of given type.

Requirements

  • Regular mode (returning the type or null).
  • Strict mode (returning the type or throwing an exception).

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Update Work in progress section in changelog.

Search records in a CSV file

Description

The idea is to search records in a given CSV file based on provided filters.
Because the return type will basically be the same of csvReader {...}, we could simply integrate filters in it.

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Document.
  • Update Work in progress section in changelog.

Read file with pagination

Description

Users should be able to read a CSV file with a pagination

Checklist

  • Implement.
  • Test.
  • Refactor.
  • Document.
  • Update Work in progress section in changelog.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.