[ 
https://issues.apache.org/jira/browse/METRON-1796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16639896#comment-16639896
 ] 

ASF GitHub Bot commented on METRON-1796:
----------------------------------------

Github user ruffle1986 commented on a diff in the pull request:

    https://github.com/apache/metron/pull/1219#discussion_r223030359
  
    --- Diff: metron-interface/metron-alerts/package.json ---
    @@ -22,17 +22,17 @@
         "@angular/platform-browser": "^6.1.6",
         "@angular/platform-browser-dynamic": "^6.1.6",
         "@angular/router": "^6.1.6",
    +    "@ruffle1986/pikaday-time": "^1.6.1",
         "@types/bootstrap": "^4.1.1",
         "@types/jquery": "^3.3.4",
         "ace-builds": "^1.2.6",
         "ajv": "^6.5.1",
         "angular-confirmation-popover": "^4.2.0",
         "bootstrap": "4.0.0-alpha.6",
         "core-js": "^2.4.1",
    +    "date-fns": "^1.29.0",
         "font-awesome": "^4.7.0",
    -    "moment": "^2.22.2",
         "ng2-dragula": "^1.5.0",
    -    "pikaday-time": "^1.6.1",
    --- End diff --
    
    > Why is pikaday-time suddenly an issue?
    
    I agree with you to not use smaller individual projects like 
`pikaday-time`. `pikaday-time` is introduced in the project by @iraghumitra 
almost a year ago.
    The goal wasn't replacing `pikaday-time` with a better well-supported 
library but eliminating `moment.js` because of the aforementioned reasons in 
the description.
    
    > I am concerned about this pikaday dependency. I would rather see us 
depending on larger, community supported projects like https://momentjs.com/, 
rather than smaller, individual supported projects like @owenmean/pikaday (or 
even your own fork @ruffle1986/pikaday-time).
    
    `moment.js` is a very popular and great library to manipulate date and 
time. 
    
    `date-fns` has the exact same purpose.
    
    `pikaday` is a standalone calendar user interface component.
    
    `pikaday-time` is an extension of `pikaday` with additional fields to 
select time, not just date.
    
    `moment.js` is an optional dependency of `pikaday` (! not `pikaday-time`). 
it works perfectly fine without `moment.js`. But if it is convenient to use 
`pikaday` with `moment`, it's fine then, you can use it by calling `pikaday`'s 
`getMoment` method if needed.
    `pikaday-time` is just a fork of `pikaday` and the author of `pikaday-time` 
made a mistake by setting `moment.js` as a dependency of `pikaday-time` and 
every time we install `pikaday-time` we install `moment.js` too. If `moment.js` 
is installed in the `node_modules` folder `pikaday` will use it therefore it 
will be part of the bundle.


> [UI] Migrate off moment.js
> --------------------------
>
>                 Key: METRON-1796
>                 URL: https://issues.apache.org/jira/browse/METRON-1796
>             Project: Metron
>          Issue Type: Improvement
>            Reporter: Tamas Fodor
>            Assignee: Tamas Fodor
>            Priority: Minor
>
> Remove Moment.js and replace with another smaller library.
> Moment.js requires us to import the entire library vs. a few necessary 
> modules.
> Moment.js can prevent bundlers from supporting tree-shaking.
> By removing Moment.js, we can decrease our overall bundle size and prevent 
> issues with tree-shaking in the future.
> Here you can find the discussion on the mailing list:
> https://lists.apache.org/thread.html/2e4fafa4256ce14ebcd4433420974e24962884204418ade51f0e3bfb@%3Cdev.metron.apache.org%3E



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to