diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/404.html b/404.html new file mode 100644 index 0000000000..2d54e93b78 --- /dev/null +++ b/404.html @@ -0,0 +1,14 @@ + + + + + +Page Not Found | GSoC projects at FOSSology + + + + + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/assets/css/styles.21e0d9bd.css b/assets/css/styles.21e0d9bd.css new file mode 100644 index 0000000000..bb2b6c6983 --- /dev/null +++ b/assets/css/styles.21e0d9bd.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.button,.carousel .thumb,.carousel .thumbs,.dropdown__link,.text--truncate{white-space:nowrap}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#d50019;--ifm-color-primary-dark:#bd0016;--ifm-color-primary-darker:#960012;--ifm-color-primary-darkest:#57000a;--ifm-color-primary-light:#9badc4;--ifm-color-primary-lighter:#b0c4de;--ifm-color-primary-lightest:#b9cfeb;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*,.carousel *{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.carousel .thumb img,.dropdown{vertical-align:top}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.carousel img,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden;bottom:0}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.carousel .thumbs,.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#e6e6e6;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.carousel-root,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.carousel .control-arrow:focus,.carousel .control-arrow:hover,.carousel .control-dots .dot.selected,.carousel .control-dots .dot:hover,.carousel:hover .slide .legend,.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.imageCarousel__irZ{align-items:center;display:flex;flex-direction:column!important;padding:2rem 1rem;width:100%}.subTitle_tuoz{padding:0 1rem}.imageCarouselCaption_yarU{background:#000000e6!important;border-radius:2rem;bottom:20px;color:#fff;font-size:20px;left:50%;padding:10px;position:absolute;text-align:center;transform:translate(-50%,-50%)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.carousel .control-arrow,.carousel.carousel-slider .control-arrow{background:none;border:0;cursor:pointer;font-size:32px;opacity:.4;position:absolute;top:20px;transition:.25s ease-in;z-index:2}.carousel,.carousel .carousel,.carousel .slide,.carousel .slider,.carousel .thumbs,.codeBlockContent_biex{position:relative}.carousel .control-arrow:before,.carousel.carousel-slider .control-arrow:before{border-bottom:8px solid #0000;border-top:8px solid #0000;content:"";display:inline-block;margin:0 5px}.carousel .control-disabled.control-arrow{cursor:inherit;display:none;opacity:0}.carousel .control-prev.control-arrow{left:0}.carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.carousel .control-next.control-arrow{right:0}.carousel .control-next.control-arrow:before{border-left:8px solid #fff}.carousel{width:100%}.carousel img{display:inline-block;width:100%}.carousel .control-arrow{background:none;border:0;font-size:18px;margin-top:-13px;outline:0;top:50%}.carousel .thumbs-wrapper{margin:20px;overflow:hidden}.carousel .thumbs{list-style:none;transition:.15s ease-in}.carousel .thumb{border:3px solid #fff;display:inline-block;margin-right:6px;overflow:hidden;padding:2px;transition:border .15s ease-in}.carousel .thumb:focus{border:3px solid #ccc;outline:0}.carousel .thumb.selected,.carousel .thumb:hover{border:3px solid #333}.carousel.carousel-slider{margin:0;overflow:hidden;position:relative}.carousel.carousel-slider .control-arrow{bottom:0;color:#fff;font-size:26px;margin-top:0;padding:5px;top:0}.carousel.carousel-slider .control-arrow:hover{background:#0003}.carousel .slider-wrapper{margin:auto;overflow:hidden;transition:height .15s ease-in;width:100%}.carousel .slider-wrapper.axis-horizontal .slider,.carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-moz-flex;display:flex}.carousel .slider-wrapper.axis-horizontal .slider .slide{flex-direction:column;flex-flow:column}.carousel .slider-wrapper.axis-vertical .slider{flex-direction:column}.carousel .slider{list-style:none;margin:0;padding:0;width:100%}.carousel .slider.animated{transition:.35s ease-in-out}.carousel .slide{margin:0;min-width:100%;text-align:center}.carousel .slide img{border:0;vertical-align:top;width:100%}.carousel .slide iframe{border:0;display:inline-block;margin:0 40px 40px;width:calc(100% - 80px)}.carousel .slide .legend{background:#000;border-radius:10px;bottom:40px;color:#fff;font-size:12px;left:50%;margin-left:-45%;opacity:.25;padding:10px;position:absolute;text-align:center;transition:opacity .35s ease-in-out;width:90%}.carousel .control-dots{bottom:0;margin:10px 0;padding:0;position:absolute;text-align:center;width:100%;z-index:1}.carousel .control-dots .dot{background:#fff;border-radius:50%;box-shadow:1px 1px 2px #000000e6;cursor:pointer;display:inline-block;height:8px;margin:0 8px;opacity:.3;transition:opacity .25s ease-in;width:8px}.carousel .carousel-status{color:#fff;font-size:10px;padding:5px;position:absolute;right:0;text-shadow:1px 1px 1px #000000e6;top:0}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}@media (min-width:960px){.carousel .control-dots{bottom:0}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_qdFl{padding:2rem}.buttons_AeoN{flex-direction:column}}@media screen and (max-width:700px){.imageCarouselCaption_yarU{font-size:10px}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/files/SPDX2TV_Test19.zip_1720209488-1636715989f1ccd687a58c10d6c02ba0.spdx b/assets/files/SPDX2TV_Test19.zip_1720209488-1636715989f1ccd687a58c10d6c02ba0.spdx new file mode 100644 index 0000000000..1a1744f560 --- /dev/null +++ b/assets/files/SPDX2TV_Test19.zip_1720209488-1636715989f1ccd687a58c10d6c02ba0.spdx @@ -0,0 +1,163 @@ +SPDXVersion: SPDX-2.3 +DataLicense: CC0-1.0 + +##------------------------- +## Document Information +##------------------------- + +DocumentNamespace: http://akash-HP-Pavilion-Laptop-15-eg2xxx/repo/SPDX2TV_Test19.zip_1720209488.spdx +DocumentName: /srv/fossology/repository/report +SPDXID: SPDXRef-DOCUMENT + +##------------------------- +## Creation Information +##------------------------- + +Creator: Tool: fossology- +Creator: Person: fossy (y) +CreatorComment: +This document was created using license information and a generator from Fossology. + +Created: 2024-07-05T19:58:08Z +LicenseListVersion: 3.22 + +##------------------------- +## Package Information +##------------------------- + + +PackageName: Test19.zip +PackageFileName: Test19.zip +SPDXID: SPDXRef-upload19 +PackageDownloadLocation: NOASSERTION +FilesAnalyzed: true +PackageVerificationCode: bcd3746b2210d8a18610b7af1567a42aaa8b7a8e +PackageChecksum: SHA1: bf9a0672e64c0557a25bef00bd6d3ba98412c1ae +PackageChecksum: SHA256: 600541c0dfa6782cd4c11ae5cde4948add0042ba06978ba05f29705c2a97ba5a +PackageChecksum: MD5: 919a09fa79c69c3d52197c8a7490192a +PackageLicenseConcluded: NOASSERTION +PackageLicenseDeclared: NOASSERTION +PackageLicenseComments: licenseInfoInFile determined by Scanners: + - nomos ("".db2422) + - monk ("".db2422) + - ojo ("".db2422) +PackageLicenseInfoFromFiles: NOASSERTION +PackageCopyrightText: NOASSERTION + +Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-upload19 + + +##-------------------------- +## File Information +##-------------------------- + +##File + +FileName: Test19.zip/Test17 +SPDXID: SPDXRef-item177 +FileChecksum: SHA1: c281d099fc10e31965a824f517e391a8e427bb7d +FileChecksum: SHA256: c1f3f53e3fa92008121471181f28793f6ba9f5a44cf0ed6e5b0440d6d3ca4d4e +FileChecksum: MD5: ce954c3f29246cba636cc1961886317d +LicenseConcluded: (MIT WITH Asterisk-exception) + +LicenseInfoInFile: BSD-2-Clause + +LicenseInfoInFile: MIT + +LicenseInfoInFile: LicenseRef-fossology-BSD + + +FileCopyrightText: NOASSERTION + +##File + +FileName: Test19.zip/Test7 +SPDXID: SPDXRef-item176 +FileChecksum: SHA1: 42a84366da049b32a08b7ea2b777a80ead5082ef +FileChecksum: SHA256: 939725c5a5ef56d792a724915a9937be89c65387fb0b714ed63a30c85e980cf0 +FileChecksum: MD5: 296c30f5a2c917761ce6aac04c0c059e +LicenseConcluded: (MIT AND (GPL-2.0-only OR BSD-3-Clause)) + +LicenseInfoInFile: AFL-1.1 + +LicenseInfoInFile: MIT + +LicenseInfoInFile: GPL-2.0-only + +LicenseInfoInFile: BSD-3-Clause + +LicenseInfoInFile: LicenseRef-fossology-Dual-license + +LicenseInfoInFile: LicenseRef-fossology-BSD + + +FileCopyrightText: NOASSERTION + +##File + +FileName: Test19.zip/Test18 +SPDXID: SPDXRef-item175 +FileChecksum: SHA1: 180aa02ae54254f8b122d1675a0854515372b1cb +FileChecksum: SHA256: dfc7a1880190025121db47d8f468d51a5490d46041e72799f535c544709a27ee +FileChecksum: MD5: 07608519d92f2fa6a053b1c67956eb09 +LicenseConcluded: (MIT AND (GPL-2.0-only OR BSD-2-Clause)) + +LicenseInfoInFile: BSD-2-Clause + +LicenseInfoInFile: MIT + +LicenseInfoInFile: GPL-2.0-only + +LicenseInfoInFile: LicenseRef-fossology-Dual-license + +LicenseInfoInFile: LicenseRef-fossology-BSD + + +FileCopyrightText: NOASSERTION + +##File + +FileName: Test19.zip/Test16.txt +SPDXID: SPDXRef-item174 +FileChecksum: SHA1: b0a628c1ac47ee2de6a03dafd18927eee240901b +FileChecksum: SHA256: 381ba9e8b7ef548bbb36e70f5a7615445f95fcd98c07bc906357a6a939f5c48f +FileChecksum: MD5: a04ef8df8807f9bf3d01d507cf87dd7c +LicenseConcluded: LicenseRef-newlc + + +FileCopyrightText: NOASSERTION + + + +##------------------------- +## License Information +##------------------------- + + +LicenseID: LicenseRef-fossology-BSD +LicenseName: BSD +ExtractedText: BSD is referenced without a version number. Please look up BSD in the License Admin to view the different versions. + + +LicenseID: LicenseRef-fossology-Dual-license +LicenseName: Dual-license +ExtractedText: Multi-licensing is the practice of distributing software under two or more different sets of terms and conditions. This may mean multiple different software licenses or sets of licenses. Prefixes may be used to indicate the number of licenses used, e.g. dual-licensed for software licensed under two different licenses. +When software is multi-licensed, recipients can choose which terms under which they want to use or distribute the software. The distributor may or may not apply a fee to either option. The two usual motivations for multi-licensing are license compatibility and market segregation based business models. + + +LicenseID: LicenseRef-newlc +LicenseName: LicenseRef-newlc +ExtractedText: License by OJO. + + + + + + + + + + + + + diff --git a/assets/files/SPDX2_Test19.zip_1720209507.spdx-a2cf3ccc7754e928d4d86ebc059da072.rdf b/assets/files/SPDX2_Test19.zip_1720209507.spdx-a2cf3ccc7754e928d4d86ebc059da072.rdf new file mode 100644 index 0000000000..ab910adef2 --- /dev/null +++ b/assets/files/SPDX2_Test19.zip_1720209507.spdx-a2cf3ccc7754e928d4d86ebc059da072.rdf @@ -0,0 +1,987 @@ + + + SPDX-2.3 + + + Creative Commons Zero v1.0 Universal + CC0-1.0 + + https://creativecommons.org/publicdomain/zero/1.0/legalcode + + + + + 3.22 + Person: fossy (y) + Organization: FOSSology + Tool: fossology- + 2024-07-05T19:58:27Z + + + /srv/fossology/repository/report + + This document was created using license information and a generator from Fossology. + + + + LicenseRef-fossology-BSD + BSD + + + + + + LicenseRef-fossology-Dual-license + Dual-license + + + + + + LicenseRef-newlc + LicenseRef-newlc + + + + + + + + + Test19.zip + Test19.zip + + + true + + + bcd3746b2210d8a18610b7af1567a42aaa8b7a8e + + + + + + bf9a0672e64c0557a25bef00bd6d3ba98412c1ae + + + + + + 600541c0dfa6782cd4c11ae5cde4948add0042ba06978ba05f29705c2a97ba5a + + + + + + 919a09fa79c69c3d52197c8a7490192a + + + + + + + + + Test19.zip/Test17 + + + + c281d099fc10e31965a824f517e391a8e427bb7d + + + + + + c1f3f53e3fa92008121471181f28793f6ba9f5a44cf0ed6e5b0440d6d3ca4d4e + + + + + + ce954c3f29246cba636cc1961886317d + + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + Asterisk exception + Asterisk-exception + + https://github.com/asterisk/libpri/blob/7f91151e6bd10957c746c031c1f4a030e8146e9a/pri.c#L22 + + + + + + + + + BSD 2-Clause "Simplified" License + BSD-2-Clause + + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-2-Clause + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + + + + + + Test19.zip/Test7 + + + + 42a84366da049b32a08b7ea2b777a80ead5082ef + + + + + + 939725c5a5ef56d792a724915a9937be89c65387fb0b714ed63a30c85e980cf0 + + + + + + 296c30f5a2c917761ce6aac04c0c059e + + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + + + GNU General Public License v2.0 only + GPL-2.0-only + + https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + + + + + + + BSD 3-Clause "New" or "Revised" License + BSD-3-Clause + . + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-3-Clause + + + + + + + + + + + + + + Academic Free License v1.1 + AFL-1.1 + + http://opensource.linux-mirror.org/licenses/afl-1.1.txt + + + + + + + + + GNU General Public License v2.0 only + GPL-2.0-only + + https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + + + + + + BSD 3-Clause "New" or "Revised" License + BSD-3-Clause + . + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-3-Clause + + + + + + + + + + + + + + Test19.zip/Test18 + + + + 180aa02ae54254f8b122d1675a0854515372b1cb + + + + + + dfc7a1880190025121db47d8f468d51a5490d46041e72799f535c544709a27ee + + + + + + 07608519d92f2fa6a053b1c67956eb09 + + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + + + GNU General Public License v2.0 only + GPL-2.0-only + + https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + + + + + + + BSD 2-Clause "Simplified" License + BSD-2-Clause + + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-2-Clause + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test19.zip/Test16.txt + + + + b0a628c1ac47ee2de6a03dafd18927eee240901b + + + + + + 381ba9e8b7ef548bbb36e70f5a7615445f95fcd98c07bc906357a6a939f5c48f + + + + + + a04ef8df8807f9bf3d01d507cf87dd7c + + + + + + + + + + + + + + + diff --git a/assets/files/golang_arch-845b2fcaba867fd8c16c3061cf774283.png b/assets/files/golang_arch-845b2fcaba867fd8c16c3061cf774283.png new file mode 100644 index 0000000000..32902562f0 Binary files /dev/null and b/assets/files/golang_arch-845b2fcaba867fd8c16c3061cf774283.png differ diff --git a/assets/files/gsoc_2022_atarashi-108e673f48d64c63100f2c18029aad86.ics b/assets/files/gsoc_2022_atarashi-108e673f48d64c63100f2c18029aad86.ics new file mode 100644 index 0000000000..e40387e893 --- /dev/null +++ b/assets/files/gsoc_2022_atarashi-108e673f48d64c63100f2c18029aad86.ics @@ -0,0 +1,135 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN=sushantmishra02102002@gmail.com;RSVP=TRUE:mailto:sushantmishra0 + 2102002@gmail.com +ATTENDEE;CN=vasudevmaduri2@gmail.com;RSVP=TRUE:mailto:vasudevmaduri2@gmail. + com +ATTENDEE;CN=classicayush@gmail.com;RSVP=TRUE:mailto:classicayush@gmail.com +ATTENDEE;CN=mcj@mcj.de;RSVP=TRUE:mailto:mcj@mcj.de +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";ROLE=OPT-PARTICIPANT;RSVP=TRUE: + mailto:mishra.gaurav@siemens.com +CLASS:PUBLIC +CREATED:20220720T051739Z +DESCRIPTION:Setting up this meeting for everyone to have our weekly discuss + ions over Atarashi Project\n \n \nBR\nKaushlendra Pratap Singh\n\n\n\n____ + __________________________________________________________________________ + __ \nMicrosoft Teams meeting \nJoin on your computer or mobile app \nClick + here to join the meeting \nOr call in (audio onl + y) \n+91 22 6259 0317\,\,\,\,547042649# India\, Mumbai \nPhone Conference ID: 547 042 649# \nFind a local n + umber | Reset PIN \nLearn More | Meeting + options \n_____________________________________ + ___________________________________________ \n +DTEND;TZID="India Standard Time":20220608T103000 +DTSTAMP:20220720T051337Z +DTSTART;TZID="India Standard Time":20220608T100000 +LAST-MODIFIED:20220720T051739Z +ORGANIZER;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)":mailto:kaushlendra- + pratap.singh@siemens.com +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=WE +SEQUENCE:1 +SUMMARY:GSoC 2022 Discussions- Atarashi-Minerva +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000ADAB280CF97AD801000000000000000 + 0100000006F821D4B7E01DB4A8E087A88069695AC +X-ALT-DESC;FMTTYPE=text/html:\n\n\n
Setting up + this meeting for everyone to have our weekly discussions over Atarashi Pr + oject
\n
 \;
\n
 \;
\n
BR
\n
K + aushlendra Pratap Singh
\n

\n
\n
\n
__________________________________________________________________ + ______________\n
\n
\n
Microsoft Teams meeting + \n
\n
\n
Join on your computer or mobile app\n
\nClick\n here to j + oin the meeting
\n
\n
Or call in (audio only)\n
\n\n
\nPhone Conference ID: 547 042 649#\n\n\n\n
\ + n
\n
\n
\n
\n
________________ + ________________________________________________________________\n< + /div>\n
\n\n\n +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTSEQTIME:20220720T051337Z +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2022_project-d0c3e6d8b9e7466343af8099296f6abe.ics b/assets/files/gsoc_2022_project-d0c3e6d8b9e7466343af8099296f6abe.ics new file mode 100644 index 0000000000..2d55bd262e --- /dev/null +++ b/assets/files/gsoc_2022_project-d0c3e6d8b9e7466343af8099296f6abe.ics @@ -0,0 +1,149 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN=fwhdzh@gmail.com;RSVP=TRUE:mailto:fwhdzh@gmail.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN=avinal.xlvii@gmail.com;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN=nicolas1.toussaint@orange.com;RSVP=TRUE:mailto:nicolas1.toussai + nt@orange.com +CLASS:PUBLIC +CREATED:20220606T045457Z +DESCRIPTION:Hello all\,\n\n \n\nLet’s use this meeting to have discussion + s on introducing project concept.\n\n \n\nWith best regards\,\n\nGaurav Mi + shra\n\n__________________________________________________________________ + ______________ \n\nMicrosoft Teams meeting \n\nJoin on your computer or mo + bile app \n\nClick here to join the meeting \n\nO + r call in (audio only) \n\n+91 22 6259 0317\,\,\,\,785164572# India\, Mumbai \n\nPhone Conference ID: 785 1 + 64 572# \n\nFind a local number | Reset PIN \n\nLearn More | Meeting options \n\n_______ + _________________________________________________________________________ + \n\n \n\n +DTEND;TZID="India Standard Time":20220609T150000 +DTSTAMP:20220606T045435Z +DTSTART;TZID="India Standard Time":20220609T143000 +LAST-MODIFIED:20220606T045457Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=TH +SEQUENCE:1 +SUMMARY;LANGUAGE=en-in:GSoC 2022 Discussions - Project concept +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000104C81C38D79D801000000000000000 + 0100000008488202A23E695458A4906E7E1EB8210 +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Let’\;s use this meeting to have discussions + on introducing project concept.

&nbs + p\;

With best regards\,

Gaurav Mishra

_________________________________________________________ + _______________________

+ Microsoft Teams meeting

Join on + your computer or mobile app

Click here to join the meeting

+

Or call in (audio only)

+91 22 6259 0317\,\,\,\,785164572# +  \; India\, Mumbai

Phone Conference I + D: 785 164 572#

Find a local + number | + Reset PIN

________________________________________ + ________________________________________

 \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTLASTSEQUENCE:1 +X-MS-OLK-APPTSEQTIME:20220606T045435Z +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR +diff --git a/docs/2022/index.md b/docs/2022/index.md diff --git a/assets/files/gsoc_2022_reuse-bca23d35bbae63e79cf26905a63b221d.ics b/assets/files/gsoc_2022_reuse-bca23d35bbae63e79cf26905a63b221d.ics new file mode 100644 index 0000000000..f3c4b73afd --- /dev/null +++ b/assets/files/gsoc_2022_reuse-bca23d35bbae63e79cf26905a63b221d.ics @@ -0,0 +1,151 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN=rohit.pandey4900@gmail.com;RSVP=TRUE:mailto:rohit.pandey4900@gm + ail.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN=vvksindia@gmail.com;RSVP=TRUE:mailto:vvksindia@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +ATTENDEE;CN=nicolas1.toussaint@orange.com;RSVP=TRUE:mailto:nicolas1.toussai + nt@orange.com +CLASS:PUBLIC +CREATED:20220606T045057Z +DESCRIPTION:Hello all\,\n\n \n\nLet’s use this meeting to have discussion + about the REUSE project.\n\n \n\nWith best regards\,\n\nGaurav Mishra\n\n + __________________________________________________________________________ + ______ \n\nMicrosoft Teams meeting \n\nJoin on your computer or mobile app + \n\nClick here to join the meeting \n\nOr call i + n (audio only) \n\n+91 22 6259 0317\,\,\,\,9143012# India\, Mumbai \n\nPhone Conference ID: 914 301 2# \n\nFi + nd a local number | Reset PIN \n\nLearn More | Meeting options \n\n_______________________ + _________________________________________________________ \n\n \n\n +DTEND;TZID="India Standard Time":20220607T180000 +DTSTAMP:20220606T044059Z +DTSTART;TZID="India Standard Time":20220607T173000 +LAST-MODIFIED:20220606T045057Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2022 Discussions - REUSE +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E0080000000090112B708D79D801000000000000000 + 010000000151CF261C8A9FB4FA0EFD19A9419EA76 +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Le + t’\;s use this meeting to have discussion about the REUSE project.

 \;

Wi + th best regards\,

Gaurav Mishra

_________________ + _______________________________________________________________

Microsoft Teams meeting

Join on your computer or mobile app +

Click here to join the + meeting

Or call in (audio only)

+91 22 + 6259 0317\,\,\,\,9143012#  \; Ind + ia\, Mumbai

< + span lang=EN-US style='font-size:10.5pt\;font-family:"Segoe UI"\,sans-seri + f\;color:#252424'>Phone Conference ID: 914 301 2 + #

________ + ________________________________________________________________________

 \;

+ +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTSEQTIME:20220606T044059Z +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR +diff --git a/static/ics/gsoc_2022_spasht.ics b/static/ics/gsoc_2022_spasht.ics diff --git a/assets/files/gsoc_2022_ui-d90bca4bc8befce72563349223589308.ics b/assets/files/gsoc_2022_ui-d90bca4bc8befce72563349223589308.ics new file mode 100644 index 0000000000..a798bfeca4 --- /dev/null +++ b/assets/files/gsoc_2022_ui-d90bca4bc8befce72563349223589308.ics @@ -0,0 +1,162 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";RSVP=TRUE:mailto:katharina + .ettinger@siemens.com +ATTENDEE;CN="Michael C. Jaeger";RSVP=TRUE:mailto:mcj@mcj.de +ATTENDEE;CN=sjha200000@gmail.com;RSVP=TRUE:mailto:sjha200000@gmail.com +ATTENDEE;CN=mail2shruti.ag@gmail.com;RSVP=TRUE:mailto:mail2shruti.ag@gmail. + com +ATTENDEE;CN=vvksindia@gmail.com;RSVP=TRUE:mailto:vvksindia@gmail.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";RSVP=TRUE:mailto:mishra.gaurav@ + siemens.com +ATTENDEE;CN=sohambanerjee4abc@gmail.com;RSVP=TRUE:mailto:sohambanerjee4abc@ + gmail.com +ATTENDEE;CN=ayushknj3@gmail.com;RSVP=TRUE:mailto:ayushknj3@gmail.com +ATTENDEE;CN=dushsam100@gmail.com;RSVP=TRUE:mailto:dushsam100@gmail.com +ATTENDEE;CN=krishhtrishh9304@gmail.com;RSVP=TRUE:mailto:krishhtrishh9304@gm + ail.com +CATEGORIES:Shaheem,Fossology +CLASS:PUBLIC +CREATED:20220608T060343Z +DESCRIPTION:Hello all\,\n\n \n\nLet’s use this meeting discuss updates an + d clarifications about the UI project.\n\n \n\nBest Regards\n\nShaheem Azm + al M MD\n\n \n\n__________________________________________________________ + ______________________ \n\nMicrosoft Teams meeting \n\nJoin on your comput + er or mobile app \n\nClick here to join the meeting \n\nOr call in (audio only) \n\n+91 22 6259 0317\,\,\,\,574632763# India\, Mumbai \n\nPhone Conference I + D: 574 632 763# \n\nFind a local number | Reset PIN \n\nLearn More | Meeting options \n\ + n_________________________________________________________________________ + _______ \n\n \n\n +DTEND;TZID="India Standard Time":20220607T210000 +DTSTAMP:20220607T122115Z +DTSTART;TZID="India Standard Time":20220607T200000 +LAST-MODIFIED:20220608T060343Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto:shaheem.azmal@siem + ens.com +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=25;BYDAY=TU +SEQUENCE:0 +SUMMARY:GSoC 2022 Discussions - UI +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000809AE069967AD801000000000000000 + 010000000A6F5C909E32CCC4897EA2281F8A7CB12 +X-ALT-DESC;FMTTYPE=text/html:\n

Hello all\,

 \;

Extending the meeting by 15 minutes as requested.< + o:p>

 \;

+ With best regards\,

Gaurav Mishra

 \;

 \;

Hello all\,

 \;

Let us meet here f + or the project specific discussions.

 \;

With best regards\,

Gaurav Mishra

____________________________________________________ + ____________________________

Microsoft Teams meeting

Joi + n on your computer\, mobile app or room device < + /span>

Click here to join the meeting < + o:p>

Meeting ID: 352 030 350 990
Passcode: 3XxBGh

Or + call in (audio only)

Phone Conference ID: 808 070 547# < + /span>

_________ + _______________________________________________________________________

 \;

< + /body> +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTLASTSEQUENCE:1 +X-MS-OLK-APPTSEQTIME:20230824T054804Z +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2023_cyclonedx-60321d8c57218983047090f7590e4aee.ics b/assets/files/gsoc_2023_cyclonedx-60321d8c57218983047090f7590e4aee.ics new file mode 100644 index 0000000000..66a37b5c22 --- /dev/null +++ b/assets/files/gsoc_2023_cyclonedx-60321d8c57218983047090f7590e4aee.ics @@ -0,0 +1,683 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Sushant Kumar";RSVP=TRUE:mailto:sushantmishra02102002@gmail.co + m +ATTENDEE;CN=Avinal;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Ayush Bhardwaj";RSVP=TRUE:mailto:classicayush@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +CLASS:PUBLIC +CREATED:20230511T153048Z +DESCRIPTION:Hello all\,\n \nLet us meet here for the project specific discu + ssions.\n \nWith best regards\,\nGaurav Mishra\n__________________________ + ______________________________________________________ \nMicrosoft Teams m + eeting \nJoin on your computer\, mobile app or room device \nClick here to + join the meeting \nMeeting ID: 325 765 387 938 \ + nPasscode: 2PPxkE \nDownload Teams | Join on the web \nOr call in (audio only) \n+91 22 6259 0317\, + \,\,\,848694533# India\, Mumbai \ + nPhone Conference ID: 848 694 533# \nFind a local number | R + eset PIN \nLear + n More | Meeting options \n____________________________________________________________ + ____________________ \n \n +DTEND;TZID=UTC:20230530T110000 +DTSTAMP:20230511T153049Z +DTSTART;TZID=UTC:20230530T103000 +LAST-MODIFIED:20230511T153048Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=TU +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - CycloneDX +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000904AF93A4B84D901000000000000000 + 010000000D537C41F6948ED4B9C06815F05C415DC +X-ALT-DESC;FMTTYPE=text/html:< + /head>

H + ello all\,

 \;

Let us meet here for the project specific discussions.

 \;

With bes + t regards\,

Gaurav Mishra

< + div>

______________________________________________________ + __________________________

Microsoft Teams meeting

Join on your co + mputer\, mobile app or room device< + span lang=EN-US style='font-family:"Segoe UI"\,sans-serif\;mso-fareast-fon + t-family:"Times New Roman"\;color:#252424\;mso-ansi-language:EN-US'> +

Click here to join the meeting +

Me + eting ID: 325 765 387 938 < + span lang=EN-US style='font-family:"Segoe UI"\,sans-serif\;mso-fareast-fon + t-family:"Times New Roman"\;color:#252424\;mso-ansi-language:EN-US'>
Passcode: 2PPxkE

Or call in (audio only)

Phone Conference ID: 848 694 533#

_________________________________________________________________________ + _______

 \;

< + /div> +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2023_laas-49fd108c8b4efcb7015b6ca7703de6db.ics b/assets/files/gsoc_2023_laas-49fd108c8b4efcb7015b6ca7703de6db.ics new file mode 100644 index 0000000000..8df7f4778f --- /dev/null +++ b/assets/files/gsoc_2023_laas-49fd108c8b4efcb7015b6ca7703de6db.ics @@ -0,0 +1,685 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Kavya Shukla";RSVP=TRUE:mailto:kavyuushukla59@gmail.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Sahil Jha";RSVP=TRUE:mailto:sjha200000@gmail.com +ATTENDEE;CN=Avinal;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +CLASS:PUBLIC +CREATED:20230511T152720Z +DESCRIPTION:Hello all\,\n \nLet us meet here for the project specific discu + ssions.\n \nWith best regards\,\nGaurav Mishra\n__________________________ + ______________________________________________________ \nMicrosoft Teams m + eeting \nJoin on your computer\, mobile app or room device \nClick here to + join the meeting \nMeeting ID: 347 490 353 952 \ + nPasscode: oXKNGQ \nDownload Teams | Join on the web \nOr call in (audio only) \n+91 22 6259 0317\, + \,\,\,232050869# India\, Mumbai \ + nPhone Conference ID: 232 050 869# \nFind a local number | R + eset PIN \nLear + n More | Meeting options \n____________________________________________________________ + ____________________ \n \n +DTEND;TZID=UTC:20230602T110000 +DTSTAMP:20230511T152720Z +DTSTART;TZID=UTC:20230602T103000 +LAST-MODIFIED:20230511T152720Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=FR +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - License as a Service +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E0080000000030B30BBC4A84D901000000000000000 + 01000000049006192A034B14A91C64E941A874DD0 +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Let us m + eet here for the project specific discussions.

 \;

With best regards\,

Gaurav Mishra

_________________________________________________________________________ + _______

Microsoft Team + s meeting

+

Join on your computer\, mobile app + or room device

Click here to join the meeting < + /p>

Meeting ID: 347 490 353 952
P + asscode: oXKNGQ

Or call in (audio only)

< + p class=MsoNormal>Phone Conference ID: 23 + 2 050 869#

< + a href="https://aka.ms/JoinTeamsMeeting" target="_blank">Learn More | Meeting options

______________________________________________ + __________________________________

 \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2023_rest-56d9e264652456438580e626f9e8cb47.ics b/assets/files/gsoc_2023_rest-56d9e264652456438580e626f9e8cb47.ics new file mode 100644 index 0000000000..b96ce23252 --- /dev/null +++ b/assets/files/gsoc_2023_rest-56d9e264652456438580e626f9e8cb47.ics @@ -0,0 +1,688 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Soham Banerjee";RSVP=TRUE:mailto:sohambanerjee4abc@gmail.com +ATTENDEE;CN="DUSHIMIMANA Samuel";RSVP=TRUE:mailto:dushsam100@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Rohit Pandey";RSVP=TRUE:mailto:rohit.pandey4900@gmail.com +ATTENDEE;CN="Vivek Kumar";RSVP=TRUE:mailto:vvksindia@gmail.com +CLASS:PUBLIC +CREATED:20230511T151817Z +DESCRIPTION:Hello all\,\n \nLet us meet here for the REST API specific proj + ect discussions.\n \nWith best regards\,\nGaurav Mishra\n_________________ + _______________________________________________________________ \nMicrosof + t Teams meeting \nJoin on your computer\, mobile app or room device \nClic + k here to join the meeting \nMeeting ID: 397 902 + 744 922 \nPasscode: sfHsAY \nDownload Teams | Join on the web \nOr call in (audio only) \n+91 22 62 + 59 0317\,\,\,\,614020409# India\, + Mumbai \nPhone Conference ID: 614 020 409# \nFind a local number | Reset PIN \nLearn More | Meeting options \n___________________________________________________ + _____________________________ \n \n +DTEND;TZID=UTC:20230531T130000 +DTSTAMP:20230511T151817Z +DTSTART;TZID=UTC:20230531T120000 +LAST-MODIFIED:20230511T151817Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=WE +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - REST API +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000909B27094984D901000000000000000 + 01000000003C80CE3F1B284448FEB189E4826634E +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Let us m + eet here for the REST API specific project discussions.

 \;

With best regards\ + ,

Gaurav Mishra

________________________________________________________________ + ________________

Micro + soft Teams meeting

Join on your computer\, m + obile app or room device

Click here to join the meeting

Meeting ID: + 397 902 744 922
Passcode: sfHsAY

Download Teams | < + a href="https://www.microsoft.com/microsoft-teams/join-a-meeting" target=" + _blank">Join on the web< + /span>

_____________________________________ + ___________________________________________

 \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2023_weekly-1952eade81b26e41916522b84619be9b.ics b/assets/files/gsoc_2023_weekly-1952eade81b26e41916522b84619be9b.ics new file mode 100644 index 0000000000..40414d01ee --- /dev/null +++ b/assets/files/gsoc_2023_weekly-1952eade81b26e41916522b84619be9b.ics @@ -0,0 +1,702 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Vivek Kumar";RSVP=TRUE:mailto:vvksindia@gmail.com +ATTENDEE;CN="Shruti Agarwal";RSVP=TRUE:mailto:mail2shruti.ag@gmail.com +ATTENDEE;CN=Sahil;RSVP=TRUE:mailto:sjha200000@gmail.com +ATTENDEE;CN="Rohit Pandey";RSVP=TRUE:mailto:rohit.pandey4900@gmail.com +ATTENDEE;CN=Avinal;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Ayush Bhardwaj";RSVP=TRUE:mailto:classicayush@gmail.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";RSVP=TRUE:mailto:katharina + .ettinger@siemens.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +ATTENDEE;CN="DUSHIMIMANA Samuel";RSVP=TRUE:mailto:dushsam100@gmail.com +ATTENDEE;CN="Sushant Kumar";RSVP=TRUE:mailto:sushantmishra02102002@gmail.co + m +ATTENDEE;CN="Soham Banerjee";RSVP=TRUE:mailto:sohambanerjee4abc@gmail.com +ATTENDEE;CN="Abdelrahman Jamal";RSVP=TRUE:mailto:abdelrahmanjamal5565@gmail + .com +ATTENDEE;CN="Kavya Shukla";RSVP=TRUE:mailto:kavyuushukla59@gmail.com +CLASS:PUBLIC +CREATED:20230511T151419Z +DESCRIPTION:Hello all\,\n \nLet us meet here every week to have general dis + cussion on all projects.\n \nYou can find details about other calls at htt + ps://fossology.github.io/gsoc/docs/2023/#meetings-table\n \nWith best rega + rds\,\nGaurav Mishra\n____________________________________________________ + ____________________________ \nMicrosoft Teams meeting \nJoin on your comp + uter\, mobile app or room device \nClick here to join the meeting \nMeeting ID: 346 509 982 936 \nPasscode: 2ARDRQ \nDownlo + ad Teams | + Join on the web \nOr call in (audio only) \n+91 22 6259 0317\,\,\,\,121388062# India\, Mumbai \nPhone Conference ID: 121 + 388 062# \nFind a local number | Reset PIN \nLearn More | Meeting options \n____________ + ____________________________________________________________________ \n \n +DTEND;TZID=UTC:20230511T140000 +DTSTAMP:20230511T151419Z +DTSTART;TZID=UTC:20230511T130000 +LAST-MODIFIED:20230511T151419Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=16;BYDAY=TH +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - General Meeting +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E0080000000010F9A28E4784D901000000000000000 + 010000000F8962B5254044844962C780DBE433B82 +X-ALT-DESC;FMTTYPE=text/html:\n\n\n

Hello all\,

+

 \;

Let us meet he + re every week to have general discussion on all projects.

 \;

You can find det + ails about other calls at https://fossology.github.io/gsoc/docs/2023/#meetings- + table

 \;

With best regards\,

Gaurav Mish + ra

____________________________________ + ____________________________________________

Microsoft Teams meeting

Join on your computer\, mobile app or room device

Click here to join the m + eeting

Meeting ID: 346 509 982 936
Passcode: 2ARDRQ < + /span>

Or call in (audio only)

< + span lang=EN-US style='font-family:"Segoe UI"\,sans-serif\;mso-fareast-fon + t-family:"Times New Roman"\;color:#252424\;mso-ansi-language:EN-US'>+91 22 6259 0317\,\,\,\,121388062#  \; India\, Mumbai

Phone Conference ID: 121 388 062 + #

Learn More | Meeting options

_______________________________________________________ + _________________________

+  \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2024_ai-cef5a24aa367c63b5261ebb2297d61b6.ics b/assets/files/gsoc_2024_ai-cef5a24aa367c63b5261ebb2297d61b6.ics new file mode 100644 index 0000000000..774c71bfd7 --- /dev/null +++ b/assets/files/gsoc_2024_ai-cef5a24aa367c63b5261ebb2297d61b6.ics @@ -0,0 +1,149 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +UID: + 040000008200E00074C5B7101A82E00800000000E0F110CACDADDA01000000000000000010 + 000000ED6299C77DA5DE46950419D14B5BAE12 +RECURRENCE-ID:20240530T103000Z +SUMMARY:Updates on Data pipelining and AI-powered license identification +DTSTART;TZID=Asia/Kolkata:20240530T160000 +DTEND;TZID=Asia/Kolkata:20240530T165000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240530T095515Z +TRANSP:TRANSPARENT +STATUS:CONFIRMED +LOCATION:https: + //moderated.jitsi.net/15ee0bf46cb345e4accc817ed2967b55db216bf57c894c30bd15 + 50ecf3ec3ace +X-MICROSOFT-CDO-OWNERAPPTID:1268275176 +X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=Abdelrahman Jamal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:abdelrahmanjamal5565@gmail.com +ATTENDEE;CN=Shreya Gautam;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:gautamm.shreya@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + anupam.ghosh@siemens.com +ATTENDEE;CN=Shreya Singh;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=ACCEPTED:mailto:shreya.out@gmail.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN=vasudevmaduri2@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + vasudevmaduri2@gmail.com +ATTENDEE;CN=classicayush@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:classicayush@gmail.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=DECLINED:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3IA7cvdAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGdT4FfgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZxXmxt +CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpVSUQ6DQogMDQw + MDAwMDA4MjAwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMEUwRjExMENBQ0RBRERBMDEwMD + AwMDAwMDAwMDAwMDAwMTANCiAwMDAwMDBFRDYyOTlDNzdEQTVERTQ2OTUwNDE5RDE0QjVCQUUx + Mg0KUkVDVVJSRU5DRS1JRDoyMDI0MDUzMFQxMDMwMDBaDQpTVU1NQVJZOlVwZGF0ZXMgb24gRG + F0YSBwaXBlbGluaW5nIGFuZCBBSS1wb3dlcmVkIGxpY2Vuc2UgaWRlbnRpZmljYXRpb24NCkRU + U1RBUlQ7VFpJRD1Bc2lhL0tvbGthdGE6MjAyNDA1MzBUMTYwMDAwDQpEVEVORDtUWklEPUFzaW + EvS29sa2F0YToyMDI0MDUzMFQxNjUwMDANCkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0KRFRT + VEFNUDoyMDI0MDUzMFQwOTU1MTVaDQpUUkFOU1A6VFJBTlNQQVJFTlQNClNUQVRVUzpDT05GSV + JNRUQNCkxPQ0FUSU9OOmh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC8xNWVlMGJmNDZj + YjM0NWU0YWNjYzgxN2VkMjk2N2I1NWRiMjE2YmY1N2M4OTRjMzBiZDE1DQogNTBlY2YzZWMzYW + NlDQpYLU1JQ1JPU09GVC1DRE8tT1dORVJBUFBUSUQ6MTI2ODI3NTE3Ng0KWC1NSUNST1NPRlQt + Q0RPLUJVU1lTVEFUVVM6VEVOVEFUSVZFDQpYLU1JQ1JPU09GVC1DRE8tSU5URU5ERURTVEFUVV + M6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLUFMTERBWUVWRU5UOkZBTFNFDQpYLU1JQ1JPU09GVC1D + RE8tSU1QT1JUQU5DRToxDQpYLU1JQ1JPU09GVC1DRE8tSU5TVFRZUEU6Mw0KWC1MSUMtRVJST1 + I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3Bl + cnR5LiANCiBSZW1vdmluZyBlbnRpcmUgcHJvcGVydHk6DQpYLUxJQy1FUlJPUjtYLUxJQy1FUl + JPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHkuIA0KIFJl + bW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVFlQRT1WQU + xVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQogUmVtb3ZpbmcgZW50 + aXJlIHByb3BlcnR5Og0KWC1NSUNST1NPRlQtRE9OT1RGT1JXQVJETUVFVElORzpGQUxTRQ0KWC + 1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC1NSUNST1NPRlQtUkVRVUVTVEVE + QVRURU5EQU5DRU1PREU6REVGQVVMVA0KWC1NSUNST1NPRlQtSVNSRVNQT05TRVJFUVVFU1RFRD + pUUlVFDQpBVFRFTkRFRTtDTj0iQXptYWwgTSBNRCwgU2hhaGVlbSAoVCBTU1AgQVNJLUlOKSI7 + Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUl + RTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogc2hhaGVlbS5hem1hbEBzaWVtZW5zLmNvbQ0K + QVRURU5ERUU7Q049QWJkZWxyYWhtYW4gSmFtYWw7Q1VUWVBFPUlORElWSURVQUw7Uk9MRT1SRV + EtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1haWx0bzphYmRl + bHJhaG1hbmphbWFsNTU2NUBnbWFpbC5jb20NCkFUVEVOREVFO0NOPVNocmV5YSBHYXV0YW07Q1 + VUWVBFPUlORElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRT + VEFUPUFDQ0VQVEVEOm1haWx0bzpnYXV0YW1tLnNocmV5YUBnbWFpbC5jb20NCkFUVEVOREVFO0 + NOPSJTaW5naCwgS2F1c2hsZW5kcmEgUHJhdGFwIChUIFNTUCBBU0ktSU4pIjtDVVRZUEU9SU5E + SVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUEFOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRV + BURUQ6bWFpbHRvOg0KIGthdXNobGVuZHJhLXByYXRhcC5zaW5naEBzaWVtZW5zLmNvbQ0KQVRU + RU5ERUU7Q049Ikdob3NoLCBBbnVwYW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVU + FMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJ + T046bWFpbHRvOg0KIGFudXBhbS5naG9zaEBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049U2hyZX + lhIFNpbmdoO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJV + RTsNCiBQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86c2hyZXlhLm91dEBnbWFpbC5jb20NCkFUVE + VOREVFO0NOPWF2aW5hbC54bHZpaUBnbWFpbC5jb207Q1VUWVBFPUlORElWSURVQUw7Uk9MRT1S + RVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG + 86YXZpbmFsLnhsdmlpQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049dmFzdWRldm1hZHVyaTJAZ21h + aWwuY29tO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VF + JVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHZhc3VkZXZtYWR1cmkyQGdtYWls + LmNvbQ0KQVRURU5ERUU7Q049Y2xhc3NpY2F5dXNoQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRF + VBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNU + SU9OOm1haWx0bzpjbGFzc2ljYXl1c2hAZ21haWwuY29tDQpBVFRFTkRFRTtDTj0iTWlzaHJhLC + BHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBB + UlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIG1pc2 + hyYS5nYXVyYXZAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPSJFdHRpbmdlciwgS2F0aGFyaW5h + IChUIFNTUCBET1MtREUpIjtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPU9QVC1QQVJUSUNJUE + FOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9REVDTElORUQ6bWFpbHRvOg0KIGthdGhhcmluYS5ldHRp + bmdlckBzaWVtZW5zLmNvbQ0KWC1FVk9MVVRJT04tSVRFTUlEOg0KIEFBTWtBR1E0T1RZeVpEYz + VMV1poWlRrdE5EWTBaUzFoWTJVeUxUZzFPRFZqWkdGbU5UVTVaQUZSQUFnSTNJQTdjdmRBQUVZ + QUFBDQogQUFUdjNMbzF3K0hrbUR0M1U1UlFOVmJ3Y0FicVVQKzh6VjBVYURucDk1dHNKbzlBQU + FBQUFCRFFBQWJxVVArOHpWMFVhRG5wOTUNCiB0c0pvOUFBR2RUNEZmZ0FBRUE9PQ0KWC1FVk9M + VVRJT04tQ0hBTkdFS0VZOkR3QUFBQllBQUFCdXBRLzd6TlhSUm9PZW4zbTJ3bWowQUFaeFhteH + QNCkNBVEVHT1JJRVM6Rm9zc29sb2d5DQpFTkQ6VkVWRU5UDQoA +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2024_ci-a68f75ea05c0fb21eb88a0c3b8e4af12.ics b/assets/files/gsoc_2024_ci-a68f75ea05c0fb21eb88a0c3b8e4af12.ics new file mode 100644 index 0000000000..d4c4abd709 --- /dev/null +++ b/assets/files/gsoc_2024_ci-a68f75ea05c0fb21eb88a0c3b8e4af12.ics @@ -0,0 +1,299 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello Everyone\,\n\nLet’s meet here and discuss updates + regarding improving fossology CI scanner.\n\n\nBest Regards\nShaheem + Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/39896aad61bc4a27b9418ee6b78689348c65790e889046069dbe + 9c8c34110c9a\n\n_______________________________________________________ + _________________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000D0F9146B14B1DA01000000000000000010 + 0000002D45257FF6936049A9681A6858126ABC +RECURRENCE-ID:20240529T103000Z +SUMMARY:Updates on CI/CD Project +DTSTART;TZID=Asia/Kolkata:20240529T160000 +DTEND;TZID=Asia/Kolkata:20240529T163000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240528T100904Z +TRANSP:OPAQUE +STATUS:CONFIRMED +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION + property. Removing entire property: +X-MICROSOFT-CDO-OWNERAPPTID:964450280 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=rajuljha49@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:rajuljha49@gmail.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3H9ySI2AAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGc/y9XgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZxXg1l +X-ALT-DESC;FMTTYPE=text/html:\n

Hello Everyone\,

 \;

Let’s meet here and discuss + updates regarding improving fossology CI scanner.

 \;

 \; +

Best Regards

Shaheem Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/39896aad61bc4a27b9418ee6b78689348c65790e889046069dbe + 9c8c34110c9a

 \;

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBFdmVyeW9uZVwsXG5cbkxldOKAmXMgbWVldCBoZXJlIGFuZCBkaXNjdXNzIHVwZG + F0ZXMgDQogcmVnYXJkaW5nIGltcHJvdmluZyBmb3Nzb2xvZ3kgQ0kgc2Nhbm5lci5cblxuXG5C + ZXN0IFJlZ2FyZHNcblNoYWhlZW0gDQogQXptYWwgTSANCiBNRFxuX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K + IF9fX19fX19fX19cbkppdHNpIExpbms6IGh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC + 8zOTg5NmFhZDYxYmM0YTI3Yjk0MThlZTZiNzg2ODkzNDhjNjU3OTBlODg5MDQ2MDY5ZGJlDQog + OWM4YzM0MTEwYzlhPGh0dHBzOg0KIC8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG + 9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRm1vZGVyYXRlZC5qaXRzDQogaS5uZXQlMkYzOTg5 + NmFhZDYxYmM0YTI3Yjk0MThlZTZiNzg2ODkzNDhjNjU3OTBlODg5MDQ2MDY5ZGJlOWM4YzM0MT + EwYzlhJmQNCiBhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5zLmNvbSU3QzRm + YmRjYThhYjljYjRlNTAwNzAzMDhkYzdlZmUzNQ0KIDllJTdDMzhhZTNiY2Q5NTc5NGZkNGFkZG + FiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUyNDg3NzQ4NTY5NjE3MSU3Q1Vua25vDQogd24l + N0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVG + lJNklrMWhhV3dpTENKWFYNCiBDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPWkwbHBLaHVy + Mlc4R1VlSjRrZTRiOER5NzU1dEpNc2Q4Vm55bVlpek8lMkJjWQ0KICUzRCZyZXNlcnZlZD0wPl + xuXG5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fDQogX19fX19fX19fX19fX19fX19fX19fX19fX1xuXG4NClVJRDoNCiAwNDAwMDAwMDgyMD + BFMDAwNzRDNUI3MTAxQTgyRTAwODAwMDAwMDAwRDBGOTE0NkIxNEIxREEwMTAwMDAwMDAwMDAw + MDAwMDAxMA0KIDAwMDAwMDJENDUyNTdGRjY5MzYwNDlBOTY4MUE2ODU4MTI2QUJDDQpSRUNVUl + JFTkNFLUlEOjIwMjQwNTI5VDEwMzAwMFoNClNVTU1BUlk6VXBkYXRlcyBvbiBDSS9DRCBQcm9q + ZWN0DQpEVFNUQVJUO1RaSUQ9QXNpYS9Lb2xrYXRhOjIwMjQwNTI5VDE2MDAwMA0KRFRFTkQ7VF + pJRD1Bc2lhL0tvbGthdGE6MjAyNDA1MjlUMTYzMDAwDQpDTEFTUzpQVUJMSUMNClBSSU9SSVRZ + OjUNCkRUU1RBTVA6MjAyNDA1MjhUMTAwOTA0Wg0KVFJBTlNQOk9QQVFVRQ0KU1RBVFVTOkNPTk + ZJUk1FRA0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5v + IHZhbHVlIGZvciBMT0NBVElPTiANCiBwcm9wZXJ0eS4gUmVtb3ZpbmcgZW50aXJlIHByb3Blcn + R5Og0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjk2NDQ1MDI4MA0KWC1NSUNST1NPRlQt + Q0RPLUJVU1lTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLUlOVEVOREVEU1RBVFVTOkJVU1 + kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0KWC1NSUNST1NPRlQtQ0RPLUlN + UE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOjMNClgtTElDLUVSUk9SO1gtTE + lDLUVSUk9SVFlQRT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4g + DQogUmVtb3ZpbmcgZW50aXJlIHByb3BlcnR5Og0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWV + BFPVZBTFVFLVBBUlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmlu + ZyBlbnRpcmUgcHJvcGVydHk6DQpYLUxJQy1FUlJPUjtYLUxJQy1FUlJPUlRZUEU9VkFMVUUtUE + FSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHkuIA0KIFJlbW92aW5nIGVudGlyZSBw + cm9wZXJ0eToNClgtTUlDUk9TT0ZULURPTk9URk9SV0FSRE1FRVRJTkc6RkFMU0UNClgtTUlDUk + 9TT0ZULURJU0FMTE9XLUNPVU5URVI6RkFMU0UNClgtTUlDUk9TT0ZULVJFUVVFU1RFREFUVEVO + REFOQ0VNT0RFOkRFRkFVTFQNClgtTUlDUk9TT0ZULUlTUkVTUE9OU0VSRVFVRVNURUQ6VFJVRQ + 0KQVRURU5ERUU7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQ + RT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD + 1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHNoYWhlZW0uYXptYWxAc2llbWVucy5jb20NCkFUVEVO + REVFO0NOPXJhanVsamhhNDlAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLV + BBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86cmFqdWxq + aGE0OUBnbWFpbC5jb20NCkFUVEVOREVFO0NOPWF2aW5hbC54bHZpaUBnbWFpbC5jb207Q1VUWV + BFPUlORElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFU + PU5FRURTLUFDVElPTjptYWlsdG86YXZpbmFsLnhsdmlpQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q0 + 49IlNpbmdoLCBLYXVzaGxlbmRyYSBQcmF0YXAgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJ + VklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUF + RFRDptYWlsdG86DQoga2F1c2hsZW5kcmEtcHJhdGFwLnNpbmdoQHNpZW1lbnMuY29tDQpBVFRF + TkRFRTtDTj0iTWlzaHJhLCBHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVU + FMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDpt + YWlsdG86DQogbWlzaHJhLmdhdXJhdkBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049IkV0dGluZ2 + VyLCBLYXRoYXJpbmEgKFQgU1NQIERPUy1ERSkiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9 + T1BULVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg + 0KIGthdGhhcmluYS5ldHRpbmdlckBzaWVtZW5zLmNvbQ0KWC1FVk9MVVRJT04tSVRFTUlEOg0K + IEFBTWtBR1E0T1RZeVpEYzVMV1poWlRrdE5EWTBaUzFoWTJVeUxUZzFPRFZqWkdGbU5UVTVaQU + ZSQUFnSTNIOXlTSTJBQUVZQUFBDQogQUFUdjNMbzF3K0hrbUR0M1U1UlFOVmJ3Y0FicVVQKzh6 + VjBVYURucDk1dHNKbzlBQUFBQUFCRFFBQWJxVVArOHpWMFVhRG5wOTUNCiB0c0pvOUFBR2MveT + lYZ0FBRUE9PQ0KWC1FVk9MVVRJT04tQ0hBTkdFS0VZOkR3QUFBQllBQUFCdXBRLzd6TlhSUm9P + ZW4zbTJ3bWowQUFaeFhnMWwNClgtQUxULURFU0M7Rk1UVFlQRT10ZXh0L2h0bWw6PGh0bWwgeG + 1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbToNCiB2bWwiIHhtbG5zOm89InVybjpz + Y2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOg0KIHNjaG + VtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDoNCiAvL3NjaGVt + YXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDoNCiAvL3 + d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+XG48bWV0YSBodHRwLWVxdWl2PSJDb250 + ZW50LVR5cGUiIA0KIGNvbnRlbnQ9InRleHQvaHRtbFw7IGNoYXJzZXQ9dXRmLTgiPjxtZXRhIG + 5hbWU9IkdlbmVyYXRvciIgDQogY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVk + IG1lZGl1bSkiPjxzdHlsZT48IS0tXG4vKiBGb250IA0KIERlZmluaXRpb25zICovXG5AZm9udC + 1mYWNlXG4Je2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiXDtcbglwYW5vc2UtMToyIDQgDQog + NSAzIDUgNCA2IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5OkNhbGlicmlcO1 + xuCXBhbm9zZS0xOjIgMTUgNSANCiAyIDIgMiA0IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2Zv + bnQtZmFtaWx5OiJTZWdvZSBVSSJcO1xuCXBhbm9zZS0xOjIgMTEgDQogNSAyIDQgMiA0IDIgMi + AzXDt9XG4vKiBTdHlsZSBEZWZpbml0aW9ucyAqL1xucC5Nc29Ob3JtYWxcLCBsaS5Nc29Ob3Jt + YWxcLCANCiBkaXYuTXNvTm9ybWFsXG4Je21hcmdpbjowaW5cO1xuCWZvbnQtc2l6ZToxMS4wcH + RcO1xuCWZvbnQtZmFtaWx5Og0KICJDYWxpYnJpIlwsc2Fucy1zZXJpZlw7XG4JbXNvLWxpZ2F0 + dXJlczpzdGFuZGFyZGNvbnRleHR1YWxcO31cbmE6bGlua1wsIA0KIHNwYW4uTXNvSHlwZXJsaW + 5rXG4Je21zby1zdHlsZS1wcmlvcml0eTo5OVw7XG4JY29sb3I6IzA1NjNDMVw7DQogXG4JdGV4 + dC1kZWNvcmF0aW9uOnVuZGVybGluZVw7DQogfVxuc3Bhbi5tZS1lbWFpbC10ZXh0LXNlY29uZG + FyeVxuCXttc28tc3R5bGUtbmFtZToNCiBtZS1lbWFpbC10ZXh0LXNlY29uZGFyeVw7fVxuc3Bh + bi5FbWFpbFN0eWxlMTlcbgl7bXNvLXN0eWxlLXR5cGU6DQogcGVyc29uYWwtY29tcG9zZVw7fV + xuLk1zb0NocERlZmF1bHRcbgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHlcOw0KIFxuCWZv + bnQtc2l6ZToxMC4wcHRcO1xuCW1zby1saWdhdHVyZXM6bm9uZVw7fVxuQHBhZ2UgV29yZFNlY3 + Rpb24xXG4Je3NpemU6DQogOC41aW4gMTEuMGluXDtcbgltYXJnaW46MS4waW4gMS4waW4gMS4w + aW4gMS4waW5cOw0KIH1cbmRpdi5Xb3JkU2VjdGlvbjFcbgl7cGFnZTpXb3JkU2VjdGlvbjFcO3 + 1cbi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIA0KIDldPjx4bWw+XG48bzpzaGFwZWRlZmF1 + bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiANCiAvPlxuPC94bWw+PCFbZW5kaWZdLS + 0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+XG48bzpzaGFwZWxheW91dCB2Og0KIGV4dD0iZWRp + dCI+XG48bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz5cbjwvbzoNCiBzaGFwZWxheW + 91dD48L3htbD48IVtlbmRpZl0tLT48L2hlYWQ+PGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9IiMw + NTYzQzEiIA0KIHZsaW5rPSIjOTU0RjcyIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPj + xkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8g + RXZlcnlvbmVcLDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOg0KIHA+Jm + 5ic3BcOzwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5MZXTigJlzIG1lZXQgaGVyZSBh + bmQgZGlzY3VzcyANCiB1cGRhdGVzIHJlZ2FyZGluZyBpbXByb3ZpbmcgZm9zc29sb2d5IENJIH + NjYW5uZXIuPG86cD48L286cD48L3A+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz + cFw7PC9vOnA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3BcOw0KIDwvbzpwPj + wvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5CZXN0IFJlZ2FyZHM8bzpwPjwvbzpwPjwvcD48cCAN + CiBjbGFzcz0iTXNvTm9ybWFsIj5TaGFoZWVtIEF6bWFsIE0gTUQgPG86cD48L286cD48L3A+PG + Rpdj48ZGl2IA0KIHN0eWxlPSJtYXJnaW4tYm90dG9tOi4yNWluXDtvdmVyZmxvdzpoaWRkZW4i + PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIA0KIHN0eWxlPSJmb250LWZhbWlseTomcXVvdF + w7U2Vnb2UgVUkmcXVvdFw7XCxzYW5zLXNlcmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19f + X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 + b3RcO1NlZ29lIFVJJnF1b3RcOw0KIFwsc2Fucy1zZXJpZlw7Y29sb3I6IzI0MjQyNFw7bXNvLW + xpZ2F0dXJlczpub25lIj48bzpwPjwvbzoNCiBwPjwvc3Bhbj48L3A+PC9kaXY+PGRpdiBzdHls + ZT0ibWFyZ2luLWJvdHRvbTouMjVpblw7b3ZlcmZsb3c6aGlkZGVuIj48cCANCiBjbGFzcz0iTX + NvTm9ybWFsIj48c3BhbiBjbGFzcz0ibWUtZW1haWwtdGV4dC1zZWNvbmRhcnkiPjxzcGFuIA0K + IHN0eWxlPSJmb250LXNpemU6MTAuNXB0XDtmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcX + VvdFw7XCxzYW5zLXNlcmlmXDsNCiBjb2xvcjojNjE2MTYxIj5KaXRzaSBMaW5rOiA8YSBocmVm + PSJodHRwczoNCiAvL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cm + w9aHR0cHMlM0ElMkYlMkZtb2RlcmF0ZWQuaml0cw0KIGkubmV0JTJGMzk4OTZhYWQ2MWJjNGEy + N2I5NDE4ZWU2Yjc4Njg5MzQ4YzY1NzkwZTg4OTA0NjA2OWRiZTljOGMzNDExMGM5YSZhDQogbX + BcOw0KIGRhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5zLmNvbSU3QzRmYmRj + YThhYjljYjRlNTAwNzAzMDhkYzdlZmUzDQogNTllJTdDMzhhZTNiY2Q5NTc5NGZkNGFkZGFiND + JlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUyNDg3NzQ4NTY5NjE3MSU3Q1Vua24NCiBvd24lN0NU + V0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNk + lrMWhhV3dpTENKWA0KIFZDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJmFtcFw7DQogc2RhdGE9aTBs + cEtodXIyVzhHVWVKNGtlNGI4RHk3NTV0Sk1zZDhWbnltWWl6TyUyQmNZJTNEJmFtcFw7cmVzZX + J2ZWQ9MCIgDQogb3JpZ2luYWxzcmM9Imh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC8z + OTg5NmFhZDYxYmM0YTI3Yjk0MThlZTZiNzg2ODkzNDhjNjU3OTBlODg5MDQ2MDY5ZGJlDQogOW + M4YzM0MTEwYzlhIiANCiBzaGFzaD0iYk5mQVhPVk5Db3NFRUp0ejlNbGxrcXF5R2hKY2U0Q3BI + NVRLeVFXY0FRV0dvdUozNTJvWkNZTWtld1ExNzdRU2tibw0KIExLNFkxRk8vSVdDWTVDQ3Iydm + ZKS3hvUVZFTk9KMy9mK0xTMXVWZ2J4eTdRSUNQM2hLVDhwSlRkZ1hIYURDOXlGSHVmWjR6ZXNW + DQogcDdSdWh2UmZTVEQ0WXUwR0YrN1lDajA1VUt6Y0NzPSI+aHR0cHM6DQogLy9tb2RlcmF0ZW + Quaml0c2kubmV0LzM5ODk2YWFkNjFiYzRhMjdiOTQxOGVlNmI3ODY4OTM0OGM2NTc5MGU4ODkw + NDYwNjlkYmUNCiA5YzhjMzQxMTBjOWE8L2E+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW + UtZW1haWwtdGV4dC1zZWNvbmRhcnkiPjxzcGFuIA0KIHN0eWxlPSJmb250LXNpemU6MTAuNXB0 + XDtjb2xvcjojNjE2MTYxIj48bzpwPjwvbzpwPjwvc3Bhbj48L3NwYW4+PC9wPjxwIA0KIGNsYX + NzPSJNc29Ob3JtYWwiPjxzcGFuIGNsYXNzPSJtZS1lbWFpbC10ZXh0LXNlY29uZGFyeSI+PHNw + YW4gDQogc3R5bGU9ImZvbnQtc2l6ZToxMC41cHRcO2ZvbnQtZmFtaWx5OiZxdW90XDtTZWdvZS + BVSSZxdW90XDtcLHNhbnMtc2VyaWZcOw0KIGNvbG9yOiM2MTYxNjEiPjxvOnA+Jm5ic3BcOzwv + bzpwPjwvc3Bhbj48L3NwYW4+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eW + xlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlmXDtj + b2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48c3Bh + biBzdHlsZT0iY29sb3I6IzI0MjQyNCI+PG86cD48L286DQogcD48L3NwYW4+PC9wPjwvZGl2Pj + wvZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3BcOzwvbzoNCiBwPjwvcD48L2Rp + dj48L2JvZHk+PC9odG1sPg0KQ0FURUdPUklFUzpGb3Nzb2xvZ3kNCkVORDpWRVZFTlQNCgA= +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2024_rest-bf29190aaa6356257f7bb1c0421fec58.ics b/assets/files/gsoc_2024_rest-bf29190aaa6356257f7bb1c0421fec58.ics new file mode 100644 index 0000000000..3d5869f555 --- /dev/null +++ b/assets/files/gsoc_2024_rest-bf29190aaa6356257f7bb1c0421fec58.ics @@ -0,0 +1,330 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello All\,\n\nLet’s meet here and discuss regarding the + updates REST API project.\n\nNOTE: Sharing the same link as SPDX + projects\, So that there is no confusion and also we can save some time + 😊\n\n\nBest Regards\nShaheem Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6\n_______________________________________________________ + _________________________\n\n +UID: + 040000008200E00074C5B7101A82E008000000009074EA90D3B6DA01000000000000000010 + 000000CD6D624BCB9E5A43ADC3EB07CA353E18 +RECURRENCE-ID:20240611T110000Z +SUMMARY:Updates on REST API PROJECT +DTSTART;TZID=Asia/Kolkata:20240611T163000 +DTEND;TZID=Asia/Kolkata:20240611T172000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240604T174738Z +TRANSP:OPAQUE +STATUS:CONFIRMED +SEQUENCE:1 +LOCATION:Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6 +X-MICROSOFT-CDO-APPT-SEQUENCE:1 +X-MICROSOFT-CDO-OWNERAPPTID:1585735656 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +X-MICROSOFT-LOCATIONS:[ { "DisplayName" : "Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6"\, "LocationAnnotation" : ""\, "LocationSource" : 0\, + "Unresolved" : true\, "LocationUri" : "" } ] +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=divijs75@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:divijs75@gmail.com +ATTENDEE;CN=valensniyonsenga2003@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + valensniyonsenga2003@gmail.com +ATTENDEE;CN=sohambanerjee4abc@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + sohambanerjee4abc@gmail.com +ATTENDEE;CN=dushsam100@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:dushsam100@gmail.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3Impb+xAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGdUCTvwAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZxYJ8s +X-ALT-DESC;FMTTYPE=text/html:\n

Hello All\,

 \;

Let’s meet + here and discuss regarding the updates REST API project.

 \;

NOTE: + Sharing the same link as SPDX projects\, So that there is no confusion + and also we can save some time 😊\;

 \;

 \; +

Best Regards

Shaheem Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBBbGxcLFxuXG5MZXTigJlzIG1lZXQgaGVyZSBhbmQgZGlzY3VzcyByZWdhcmRpbm + cgdGhlIA0KIHVwZGF0ZXMgUkVTVCBBUEkgcHJvamVjdC5cblxuTk9URTogU2hhcmluZyB0aGUg + c2FtZSBsaW5rIGFzIFNQRFggDQogcHJvamVjdHNcLCBTbyB0aGF0IHRoZXJlIGlzIG5vIGNvbm + Z1c2lvbiBhbmQgYWxzbyB3ZSBjYW4gc2F2ZSBzb21lIHRpbWUgDQog8J+YilxuXG5cbkJlc3Qg + UmVnYXJkc1xuU2hhaGVlbSBBem1hbCBNIA0KIE1EXG5fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogX19fX19f + X19fX1xuSml0c2kgTGluazogaHR0cHM6DQogLy9tb2RlcmF0ZWQuaml0c2kubmV0L2Q2MjNiYj + EyODRhNTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDANCiBkNTk2M2Y0 + ZTE4YjY8aHR0cHM6DQogLy9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS + 8/dXJsPWh0dHBzJTNBJTJGJTJGbW9kZXJhdGVkLmppdHMNCiBpLm5ldCUyRmQ2MjNiYjEyODRh + NTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDBkNTk2M2Y0ZTE4YjYmZA + 0KIGF0YT0wNSU3QzAyJTdDbWlzaHJhLmdhdXJhdiU0MHNpZW1lbnMuY29tJTdDNDRmOTI0MzRi + ODY5NDM0MjUyZTEwOGRjODRiZTRiDQogZTklN0MzOGFlM2JjZDk1Nzk0ZmQ0YWRkYWI0MmUxND + k1ZDU1YSU3QzElN0MwJTdDNjM4NTMxMjAwMDYzODc2OTcwJTdDVW5rbm8NCiB3biU3Q1RXRnBi + R1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaG + FXd2lMQ0pYVg0KIENJNk1uMCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9V3F1ZUNNZHRZcmx5YmtG + YkFZZWpCYSUyRmR6VCUyQkFUa1F0QWk4OGsybFJRDQogSjglM0QmcmVzZXJ2ZWQ9MD5cbl9fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBf + X19fX19fX19fX19fX19fX19fX19fX19fXG5cbg0KVUlEOg0KIDA0MDAwMDAwODIwMEUwMDA3NE + M1QjcxMDFBODJFMDA4MDAwMDAwMDA5MDc0RUE5MEQzQjZEQTAxMDAwMDAwMDAwMDAwMDAwMDEw + DQogMDAwMDAwQ0Q2RDYyNEJDQjlFNUE0M0FEQzNFQjA3Q0EzNTNFMTgNClJFQ1VSUkVOQ0UtSU + Q6MjAyNDA2MTFUMTEwMDAwWg0KU1VNTUFSWTpVcGRhdGVzIG9uIFJFU1QgQVBJIFBST0pFQ1QN + CkRUU1RBUlQ7VFpJRD1Bc2lhL0tvbGthdGE6MjAyNDA2MTFUMTYzMDAwDQpEVEVORDtUWklEPU + FzaWEvS29sa2F0YToyMDI0MDYxMVQxNzIwMDANCkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0K + RFRTVEFNUDoyMDI0MDYwNFQxNzQ3MzhaDQpUUkFOU1A6T1BBUVVFDQpTVEFUVVM6Q09ORklSTU + VEDQpTRVFVRU5DRToxDQpMT0NBVElPTjpKaXRzaSBMaW5rOiBodHRwczoNCiAvL21vZGVyYXRl + ZC5qaXRzaS5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2NlOWVkNmI4OTQzMTJlZG + E0ZWQ5YjQwMA0KIGQ1OTYzZjRlMThiNg0KWC1NSUNST1NPRlQtQ0RPLUFQUFQtU0VRVUVOQ0U6 + MQ0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjE1ODU3MzU2NTYNClgtTUlDUk9TT0ZULU + NETy1CVVNZU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1JTlRFTkRFRFNUQVRVUzpCVVNZ + DQpYLU1JQ1JPU09GVC1DRE8tQUxMREFZRVZFTlQ6RkFMU0UNClgtTUlDUk9TT0ZULUNETy1JTV + BPUlRBTkNFOjENClgtTUlDUk9TT0ZULUNETy1JTlNUVFlQRTozDQpYLUxJQy1FUlJPUjtYLUxJ + Qy1FUlJPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHkuIA + 0KIFJlbW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVFlQ + RT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQogUmVtb3Zpbm + cgZW50aXJlIHByb3BlcnR5Og0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBB + UlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmluZyBlbnRpcmUgcH + JvcGVydHk6DQpYLU1JQ1JPU09GVC1ET05PVEZPUldBUkRNRUVUSU5HOkZBTFNFDQpYLU1JQ1JP + U09GVC1ESVNBTExPVy1DT1VOVEVSOkZBTFNFDQpYLU1JQ1JPU09GVC1SRVFVRVNURURBVFRFTk + RBTkNFTU9ERTpERUZBVUxUDQpYLU1JQ1JPU09GVC1JU1JFU1BPTlNFUkVRVUVTVEVEOlRSVUUN + ClgtTUlDUk9TT0ZULUxPQ0FUSU9OUzpbIHsgIkRpc3BsYXlOYW1lIiA6ICJKaXRzaSBMaW5rOi + BodHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMx + ZDJlY2NlOWVkNmI4OTQzMTJlZGE0ZWQ5YjQwMA0KIGQ1OTYzZjRlMThiNiJcLCAiTG9jYXRpb2 + 5Bbm5vdGF0aW9uIiA6ICIiXCwgIkxvY2F0aW9uU291cmNlIiA6IDBcLCANCiAiVW5yZXNvbHZl + ZCIgOiB0cnVlXCwgIkxvY2F0aW9uVXJpIiA6ICIiIH0gXQ0KQVRURU5ERUU7Q049IkF6bWFsIE + 0gTUQsIFNoYWhlZW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9 + UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg + 0KIHNoYWhlZW0uYXptYWxAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPWRpdmlqczc1QGdtYWls + LmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVU + U7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOmRpdmlqczc1QGdtYWlsLmNvbQ0KQVRURU5ERUU7 + Q049dmFsZW5zbml5b25zZW5nYTIwMDNAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMOw0KIF + JPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86 + DQogdmFsZW5zbml5b25zZW5nYTIwMDNAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1zb2hhbWJhbm + VyamVlNGFiY0BnbWFpbC5jb207Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElD + SVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogc29oYW1iYW + 5lcmplZTRhYmNAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1kdXNoc2FtMTAwQGdtYWlsLmNvbTtD + VVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVUU7UEFSVF + NUQVQ9QUNDRVBURUQ6bWFpbHRvOmR1c2hzYW0xMDBAZ21haWwuY29tDQpBVFRFTkRFRTtDTj0i + TWlzaHJhLCBHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTE + U9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86DQog + bWlzaHJhLmdhdXJhdkBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049IkV0dGluZ2VyLCBLYXRoYX + JpbmEgKFQgU1NQIERPUy1ERSkiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9T1BULVBBUlRJ + Q0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIGthdGhhcm + luYS5ldHRpbmdlckBzaWVtZW5zLmNvbQ0KWC1FVk9MVVRJT04tSVRFTUlEOg0KIEFBTWtBR1E0 + T1RZeVpEYzVMV1poWlRrdE5EWTBaUzFoWTJVeUxUZzFPRFZqWkdGbU5UVTVaQUZSQUFnSTNJbX + BiK3hBQUVZQUFBDQogQUFUdjNMbzF3K0hrbUR0M1U1UlFOVmJ3Y0FicVVQKzh6VjBVYURucDk1 + dHNKbzlBQUFBQUFCRFFBQWJxVVArOHpWMFVhRG5wOTUNCiB0c0pvOUFBR2RVQ1R2d0FBRUE9PQ + 0KWC1FVk9MVVRJT04tQ0hBTkdFS0VZOkR3QUFBQllBQUFCdXBRLzd6TlhSUm9PZW4zbTJ3bWow + QUFaeFlKOHMNClgtQUxULURFU0M7Rk1UVFlQRT10ZXh0L2h0bWw6PGh0bWwgeG1sbnM6dj0idX + JuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbToNCiB2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1p + Y3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOg0KIHNjaGVtYXMtbWljcm + 9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDoNCiAvL3NjaGVtYXMubWljcm9z + b2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDoNCiAvL3d3dy53My5vcm + cvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+XG48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi + IA0KIGNvbnRlbnQ9InRleHQvaHRtbFw7IGNoYXJzZXQ9dXRmLTgiPjxtZXRhIG5hbWU9Ikdlbm + VyYXRvciIgDQogY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSki + PjxzdHlsZT48IS0tXG4vKiBGb250IA0KIERlZmluaXRpb25zICovXG5AZm9udC1mYWNlXG4Je2 + ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiXDtcbglwYW5vc2UtMToyIDQgDQogNSAzIDUgNCA2 + IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5OkNhbGlicmlcO1xuCXBhbm9zZS + 0xOjIgMTUgNSANCiAyIDIgMiA0IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5 + OkFwdG9zXDsNCiB9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5OiJTZWdvZSBVSSBFbW9qaS + JcO1xuCXBhbm9zZS0xOjIgMTEgNSAyIDQgMiA0IA0KIDIgMiAzXDt9XG5AZm9udC1mYWNlXG4J + e2ZvbnQtZmFtaWx5OiJTZWdvZSBVSSJcO1xuCXBhbm9zZS0xOjIgMTEgNSAyIDQgMiANCiA0ID + IgMiAzXDt9XG4vKiBTdHlsZSBEZWZpbml0aW9ucyAqL1xucC5Nc29Ob3JtYWxcLCBsaS5Nc29O + b3JtYWxcLCANCiBkaXYuTXNvTm9ybWFsXG4Je21hcmdpbjowaW5cO1xuCWZvbnQtc2l6ZToxMS + 4wcHRcO1xuCWZvbnQtZmFtaWx5Og0KICJDYWxpYnJpIlwsc2Fucy1zZXJpZlw7XG4JbXNvLWxp + Z2F0dXJlczpzdGFuZGFyZGNvbnRleHR1YWxcO31cbmE6bGlua1wsIA0KIHNwYW4uTXNvSHlwZX + JsaW5rXG4Je21zby1zdHlsZS1wcmlvcml0eTo5OVw7XG4JY29sb3I6IzQ2Nzg4Nlw7DQogXG4J + dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZVw7fVxuc3Bhbi5tZS1lbWFpbC10ZXh0XG4Je21zby + 1zdHlsZS1uYW1lOg0KIG1lLWVtYWlsLXRleHRcO31cbnNwYW4uRW1haWxTdHlsZTE5XG4Je21z + by1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBvc2VcOw0KIH1cbi5Nc29DaHBEZWZhdWx0XG4Je2 + 1zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5XDtcbglmb250LXNpemU6MTAuMHB0XDsNCiBcbglt + c28tbGlnYXR1cmVzOm5vbmVcO31cbkBwYWdlIFdvcmRTZWN0aW9uMVxuCXtzaXplOjguNWluID + ExLjBpblw7DQogXG4JbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluXDt9XG5kaXYuV29y + ZFNlY3Rpb24xXG4Je3BhZ2U6DQogV29yZFNlY3Rpb24xXDt9XG4tLT48L3N0eWxlPjwhLS1baW + YgZ3RlIG1zbyA5XT48eG1sPlxuPG86c2hhcGVkZWZhdWx0cyB2Og0KIGV4dD0iZWRpdCIgc3Bp + ZG1heD0iMTAyNiIgLz5cbjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyANCiA5XT + 48eG1sPlxuPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPlxuPG86aWRtYXAgdjpleHQ9ImVk + aXQiIGRhdGE9IjEiIA0KIC8+XG48L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+PC + 9oZWFkPjxib2R5IGxhbmc9IkVOLVVTIiANCiBsaW5rPSIjNDY3ODg2IiB2bGluaz0iIzk2NjA3 + RCIgc3R5bGU9IndvcmQtd3JhcDpicmVhay13b3JkIj48ZGl2IA0KIGNsYXNzPSJXb3JkU2VjdG + lvbjEiPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhlbGxvIEFsbFwsPG86cD48L286cD48L3A+PHAg + DQogY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPjxwIGNsYXNzPSJNc2 + 9Ob3JtYWwiPkxldOKAmXMgbWVldCANCiBoZXJlIGFuZCBkaXNjdXNzIHJlZ2FyZGluZyB0aGUg + dXBkYXRlcyBSRVNUIEFQSSBwcm9qZWN0LjxvOnA+PC9vOnA+PC9wPjxwIA0KIGNsYXNzPSJNc2 + 9Ob3JtYWwiPjxvOnA+Jm5ic3BcOzwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5OT1RF + OiANCiBTaGFyaW5nIHRoZSBzYW1lIGxpbmsgYXMgU1BEWCBwcm9qZWN0c1wsIFNvIHRoYXQgdG + hlcmUgaXMgbm8gY29uZnVzaW9uIA0KIGFuZCBhbHNvIHdlIGNhbiBzYXZlIHNvbWUgdGltZSA8 + c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJIA0KIEVtb2ppJnF1b3RcO1 + wsc2Fucy1zZXJpZiI+JiMxMjg1MjJcOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCANCiBjbGFz + cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwXDs8L286cD48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbC + I+PG86cD4mbmJzcFw7DQogPC9vOnA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkJlc3QgUmVn + YXJkczxvOnA+PC9vOnA+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPlNoYWhlZW0gQXptYW + wgTSBNRDxvOnA+PC9vOnA+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl + PSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlmXDtjb2 + xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48c3Bhbi + BzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcOw0KIFwsc2Fucy1zZXJp + Zlw7Y29sb3I6IzI0MjQyNFw7bXNvLWxpZ2F0dXJlczpub25lIj48bzpwPjwvbzpwPjwvc3Bhbj + 48L3A+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gY2xhc3M9Im1lLWVtYWlsLXRleHQi + PjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6DQogMTguMHB0XDtmb250LWZhbWlseTomcXVvdF + w7U2Vnb2UgVUkmcXVvdFw7XCxzYW5zLXNlcmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5KaXRzaSBM + aW5rOiA8YSBocmVmPSJodHRwczoNCiAvL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dG + xvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZtb2RlcmF0ZWQuaml0cw0KIGkubmV0JTJGZDYy + M2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2NlOWVkNmI4OTQzMTJlZGE0ZWQ5YjQwMGQ1OTYzZj + RlMThiNiZhDQogbXBcOw0KIGRhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5z + LmNvbSU3QzQ0ZjkyNDM0Yjg2OTQzNDI1MmUxMDhkYzg0YmU0DQogYmU5JTdDMzhhZTNiY2Q5NT + c5NGZkNGFkZGFiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUzMTIwMDA2Mzg3Njk3MCU3Q1Vu + a24NCiBvd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU + 16SWlMQ0pCVGlJNklrMWhhV3dpTENKWA0KIFZDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJmFtcFw7 + DQogc2RhdGE9V3F1ZUNNZHRZcmx5YmtGYkFZZWpCYSUyRmR6VCUyQkFUa1F0QWk4OGsybFJRSj + glM0QmYW1wXDtyZXNlcnZlZD0wIiANCiBvcmlnaW5hbHNyYz0iaHR0cHM6DQogLy9tb2RlcmF0 + ZWQuaml0c2kubmV0L2Q2MjNiYjEyODRhNTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZW + RhNGVkOWI0MDANCiBkNTk2M2Y0ZTE4YjYiIA0KIHNoYXNoPSJvK0k0cG9oaTBxU3NORlpOR3pw + VVVPT3VDL0tMT1JPUzZ5b2ZBTUtuZ21rV3puRmU0aHNJYlludEl2T2x6LzFEbzBrDQogRklVVW + lLbDlWbUFZK1VpZk1yWGJCbDhJbEZyYi9VcS94MmZNOHdOK21vT2xzajd2N0NXTTZDbVFYL3Az + b2p2aWcxcXY0djR0ZE4NCiBUaFpnMXJoVVYzNTVDUlhpcjhMbzEzUXlnV1BtbjQ9Ij5odHRwcz + oNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2Nl + OWVkNmI4OTQzMTJlZGE0ZWQ5YjQwMA0KIGQ1OTYzZjRlMThiNjwvYT48L3NwYW4+PC9iPjwvc3 + Bhbj48c3BhbiBjbGFzcz0ibWUtZW1haWwtdGV4dCI+PGI+PHNwYW4gDQogc3R5bGU9ImZvbnQt + c2l6ZToxOC4wcHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvYj48L3NwYW4+PC9wPjxwIA0KIGNsYX + NzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkm + cXVvdFw7DQogXCxzYW5zLXNlcmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9f + X19fX19fX19fX19fXzwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj + 48c3BhbiANCiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO0FwdG9zJnF1b3RcO1wsc2Fucy1z + ZXJpZiI+PG86cD4mbmJzcFw7PC9vOg0KIHA+PC9zcGFuPjwvcD48L2Rpdj48L2JvZHk+PC9odG + 1sPg0KQ0FURUdPUklFUzpGb3Nzb2xvZ3kNCkJFR0lOOlZBTEFSTQ0KWC1FVk9MVVRJT04tQUxB + Uk0tVUlEOjJmZTg5MWJmNzM1YzRkNmQ1MjBiY2Y5OTVkNmM5NjQyMjE5N2YyNjANCkFDVElPTj + pESVNQTEFZDQpERVNDUklQVElPTjpVcGRhdGVzIG9uIFJFU1QgQVBJIFBST0pFQ1QNClRSSUdH + RVI7UkVMQVRFRD1TVEFSVDotUFQxNU0NCkVORDpWQUxBUk0NCkVORDpWRVZFTlQNCgA= +BEGIN:VALARM +X-EVOLUTION-ALARM-UID:2fe891bf735c4d6d520bcf995d6c96422197f260 +ACTION:DISPLAY +DESCRIPTION:Updates on REST API PROJECT +TRIGGER;RELATED=START:-PT15M +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2024_scheduler-99050b70f631126c905f98ea057c0c9a.ics b/assets/files/gsoc_2024_scheduler-99050b70f631126c905f98ea057c0c9a.ics new file mode 100644 index 0000000000..9e5bec442a --- /dev/null +++ b/assets/files/gsoc_2024_scheduler-99050b70f631126c905f98ea057c0c9a.ics @@ -0,0 +1,298 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Dear All\,\n\nLet’s meet here and discuss the updates + regarding Scheduler Design Project.\n\n\nBest Regards\nShaheem Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/5444f675f5ce47c788fa4238a6a958c53d3e62804e9243d5b807 + fbaa81f3120f\n_______________________________________________________ + _________________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000B0F8D00AC9ADDA01000000000000000010 + 0000006BCFB3D7BC8D0C4FAA37F7326AED6C23 +RECURRENCE-ID:20240531T103000Z +SUMMARY:Updates on Scheduler Design Project +DTSTART;TZID=Asia/Kolkata:20240531T160000 +DTEND;TZID=Asia/Kolkata:20240531T163000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240524T053419Z +TRANSP:OPAQUE +STATUS:CONFIRMED +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION + property. Removing entire property: +X-MICROSOFT-CDO-OWNERAPPTID:1192777704 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN=singh.aaditya889@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + singh.aaditya889@gmail.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=DECLINED:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3IEEnWEAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGcUm8FgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZtbdgT +X-ALT-DESC;FMTTYPE=text/html:\n

Dear All\,

 \;

Let’s meet + here and discuss the updates regarding Scheduler Design Project.

 \;

 \;

Best Regards

Shaheem Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/5444f675f5ce47c788fa4238a6a958c53d3e62804e9243d5b807 + fbaa81f3120f

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpEZWFyIEFsbFwsXG5cbkxldOKAmXMgbWVldCBoZXJlIGFuZCBkaXNjdXNzIHRoZSB1cGRhdG + VzIA0KIHJlZ2FyZGluZyBTY2hlZHVsZXIgRGVzaWduIFByb2plY3QuXG5cblxuQmVzdCBSZWdh + cmRzXG5TaGFoZWVtIEF6bWFsIE0gDQogTURcbl9fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBfX19fX19fX19f + XG5KaXRzaSBMaW5rOiBodHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvNTQ0NGY2NzVmNW + NlNDdjNzg4ZmE0MjM4YTZhOTU4YzUzZDNlNjI4MDRlOTI0M2Q1YjgwNw0KIGZiYWE4MWYzMTIw + ZjxodHRwczoNCiAvL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cm + w9aHR0cHMlM0ElMkYlMkZtb2RlcmF0ZWQuaml0cw0KIGkubmV0JTJGNTQ0NGY2NzVmNWNlNDdj + Nzg4ZmE0MjM4YTZhOTU4YzUzZDNlNjI4MDRlOTI0M2Q1YjgwN2ZiYWE4MWYzMTIwZiZkDQogYX + RhPTA1JTdDMDIlN0NtaXNocmEuZ2F1cmF2JTQwc2llbWVucy5jb20lN0MwZmRlN2E0ZmIwYzA0 + ZmJhYjUzNjA4ZGM3YmIzMmENCiBjYyU3QzM4YWUzYmNkOTU3OTRmZDRhZGRhYjQyZTE0OTVkNT + VhJTdDMSU3QzAlN0M2Mzg1MjEyNTY2NTQwMDUyMzklN0NVbmtubw0KIHduJTdDVFdGcGJHWnNi + M2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aU + xDSlhWDQogQ0k2TW4wJTNEJTdDMCU3QyU3QyU3QyZzZGF0YT0lMkZJa2hVOGxkV0xTbkI0SDhy + TWhNMThaalY5aWtOV2N5Q1k3TXolMkJtdk4NCiBGVSUzRCZyZXNlcnZlZD0wPlxuX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19f + X19fX19fX19fX19fX19fX19fX19cblxuDQpVSUQ6DQogMDQwMDAwMDA4MjAwRTAwMDc0QzVCNz + EwMUE4MkUwMDgwMDAwMDAwMEIwRjhEMDBBQzlBRERBMDEwMDAwMDAwMDAwMDAwMDAwMTANCiAw + MDAwMDA2QkNGQjNEN0JDOEQwQzRGQUEzN0Y3MzI2QUVENkMyMw0KUkVDVVJSRU5DRS1JRDoyMD + I0MDUzMVQxMDMwMDBaDQpTVU1NQVJZOlVwZGF0ZXMgb24gU2NoZWR1bGVyIERlc2lnbiBQcm9q + ZWN0DQpEVFNUQVJUO1RaSUQ9QXNpYS9Lb2xrYXRhOjIwMjQwNTMxVDE2MDAwMA0KRFRFTkQ7VF + pJRD1Bc2lhL0tvbGthdGE6MjAyNDA1MzFUMTYzMDAwDQpDTEFTUzpQVUJMSUMNClBSSU9SSVRZ + OjUNCkRUU1RBTVA6MjAyNDA1MjRUMDUzNDE5Wg0KVFJBTlNQOk9QQVFVRQ0KU1RBVFVTOkNPTk + ZJUk1FRA0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5v + IHZhbHVlIGZvciBMT0NBVElPTiANCiBwcm9wZXJ0eS4gUmVtb3ZpbmcgZW50aXJlIHByb3Blcn + R5Og0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjExOTI3Nzc3MDQNClgtTUlDUk9TT0ZU + LUNETy1CVVNZU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1JTlRFTkRFRFNUQVRVUzpCVV + NZDQpYLU1JQ1JPU09GVC1DRE8tQUxMREFZRVZFTlQ6RkFMU0UNClgtTUlDUk9TT0ZULUNETy1J + TVBPUlRBTkNFOjENClgtTUlDUk9TT0ZULUNETy1JTlNUVFlQRTozDQpYLUxJQy1FUlJPUjtYLU + xJQy1FUlJPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHku + IA0KIFJlbW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVF + lQRT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQogUmVtb3Zp + bmcgZW50aXJlIHByb3BlcnR5Og0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLV + BBUlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmluZyBlbnRpcmUg + cHJvcGVydHk6DQpYLU1JQ1JPU09GVC1ET05PVEZPUldBUkRNRUVUSU5HOkZBTFNFDQpYLU1JQ1 + JPU09GVC1ESVNBTExPVy1DT1VOVEVSOkZBTFNFDQpYLU1JQ1JPU09GVC1SRVFVRVNURURBVFRF + TkRBTkNFTU9ERTpERUZBVUxUDQpYLU1JQ1JPU09GVC1JU1JFU1BPTlNFUkVRVUVTVEVEOlRSVU + UNCkFUVEVOREVFO0NOPSJBem1hbCBNIE1ELCBTaGFoZWVtIChUIFNTUCBBU0ktSU4pIjtDVVRZ + UEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUEFOVDtSU1ZQPVRSVUU7UEFSVFNUQV + Q9TkVFRFMtQUNUSU9OOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpBVFRF + TkRFRTtDTj0iTWlzaHJhLCBHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVU + FMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDpt + YWlsdG86DQogbWlzaHJhLmdhdXJhdkBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049YXZpbmFsLn + hsdmlpQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsN + CiBSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzphdmluYWwueGx2aWlAZ2 + 1haWwuY29tDQpBVFRFTkRFRTtDTj0iU2luZ2gsIEthdXNobGVuZHJhIFByYXRhcCAoVCBTU1Ag + QVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD + 1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1haWx0bzoNCiBrYXVzaGxlbmRyYS1wcmF0YXAuc2lu + Z2hAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPXNpbmdoLmFhZGl0eWE4ODlAZ21haWwuY29tO0 + NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJU + U1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHNpbmdoLmFhZGl0eWE4ODlAZ21haWwuY29tDQ + pBVFRFTkRFRTtDTj0iRXR0aW5nZXIsIEthdGhhcmluYSAoVCBTU1AgRE9TLURFKSI7Q1VUWVBF + PUlORElWSURVQUw7DQogUk9MRT1PUFQtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU + RFQ0xJTkVEOm1haWx0bzoNCiBrYXRoYXJpbmEuZXR0aW5nZXJAc2llbWVucy5jb20NClgtRVZP + TFVUSU9OLUlURU1JRDoNCiBBQU1rQUdRNE9UWXlaRGM1TFdaaFpUa3RORFkwWlMxaFkyVXlMVG + cxT0RWalpHRm1OVFU1WkFGUkFBZ0kzSUVFbldFQUFFWUFBQQ0KIEFBVHYzTG8xdytIa21EdDNV + NVJRTlZid2NBYnFVUCs4elYwVWFEbnA5NXRzSm85QUFBQUFBQkRRQUFicVVQKzh6VjBVYURucD + k1DQogdHNKbzlBQUdjVW04RmdBQUVBPT0NClgtRVZPTFVUSU9OLUNIQU5HRUtFWTpEd0FBQUJZ + QUFBQnVwUS83ek5YUlJvT2VuM20yd21qMEFBWnRiZGdUDQpYLUFMVC1ERVNDO0ZNVFRZUEU9dG + V4dC9odG1sOjxodG1sIHhtbG5zOnY9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206DQogdm1s + IiB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiIHhtbG + 5zOnc9InVybjoNCiBzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOndvcmQiIHhtbG5zOm09 + Imh0dHA6DQogLy9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG + 1sbnM9Imh0dHA6DQogLy93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPjxoZWFkPlxuPG1ldGEg + aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiANCiBjb250ZW50PSJ0ZXh0L2h0bWxcOyBjaGFyc2 + V0PXV0Zi04Ij48bWV0YSBuYW1lPSJHZW5lcmF0b3IiIA0KIGNvbnRlbnQ9Ik1pY3Jvc29mdCBX + b3JkIDE1IChmaWx0ZXJlZCBtZWRpdW0pIj48c3R5bGU+PCEtLVxuLyogRm9udCANCiBEZWZpbm + l0aW9ucyAqL1xuQGZvbnQtZmFjZVxuCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIlw7XG4J + cGFub3NlLTE6MiA0IA0KIDUgMyA1IDQgNiAzIDIgNFw7fVxuQGZvbnQtZmFjZVxuCXtmb250LW + ZhbWlseTpDYWxpYnJpXDtcbglwYW5vc2UtMToyIDE1IDUgDQogMiAyIDIgNCAzIDIgNFw7fVxu + QGZvbnQtZmFjZVxuCXtmb250LWZhbWlseToiU2Vnb2UgVUkiXDtcbglwYW5vc2UtMToyIDExIA + 0KIDUgMiA0IDIgNCAyIDIgM1w7fVxuLyogU3R5bGUgRGVmaW5pdGlvbnMgKi9cbnAuTXNvTm9y + bWFsXCwgbGkuTXNvTm9ybWFsXCwgDQogZGl2Lk1zb05vcm1hbFxuCXttYXJnaW46MGluXDtcbg + lmb250LXNpemU6MTEuMHB0XDtcbglmb250LWZhbWlseToNCiAiQ2FsaWJyaSJcLHNhbnMtc2Vy + aWZcO1xuCW1zby1saWdhdHVyZXM6c3RhbmRhcmRjb250ZXh0dWFsXDt9XG5hOmxpbmtcLCANCi + BzcGFuLk1zb0h5cGVybGlua1xuCXttc28tc3R5bGUtcHJpb3JpdHk6OTlcO1xuCWNvbG9yOiMw + NTYzQzFcOw0KIFxuCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmVcO31cbnNwYW4ubWUtZW1haW + wtdGV4dFxuCXttc28tc3R5bGUtbmFtZToNCiBtZS1lbWFpbC10ZXh0XDt9XG5zcGFuLkVtYWls + U3R5bGUxOVxuCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlXDsNCiB9XG4uTXNvQ2 + hwRGVmYXVsdFxuCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seVw7XG4JZm9udC1zaXplOjEw + LjBwdFw7DQogXG4JbXNvLWxpZ2F0dXJlczpub25lXDt9XG5AcGFnZSBXb3JkU2VjdGlvbjFcbg + l7c2l6ZTo4LjVpbiAxMS4waW5cOw0KIFxuCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBp + blw7fVxuZGl2LldvcmRTZWN0aW9uMVxuCXtwYWdlOg0KIFdvcmRTZWN0aW9uMVw7fVxuLS0+PC + 9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD5cbjxvOnNoYXBlZGVmYXVsdHMgdjoNCiBl + eHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+XG48L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIG + d0ZSBtc28gDQogOV0+PHhtbD5cbjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij5cbjxvOmlk + bWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiANCiAvPlxuPC9vOnNoYXBlbGF5b3V0PjwveG1sPj + whW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPSJFTi1VUyIgDQogbGluaz0iIzA1NjNDMSIg + dmxpbms9IiM5NTRGNzIiIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCI+PGRpdiANCiBjbG + Fzcz0iV29yZFNlY3Rpb24xIj48cCBjbGFzcz0iTXNvTm9ybWFsIj5EZWFyIEFsbFwsPG86cD48 + L286cD48L3A+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPj + xwIGNsYXNzPSJNc29Ob3JtYWwiPkxldOKAmXMgbWVldCANCiBoZXJlIGFuZCBkaXNjdXNzIHRo + ZSB1cGRhdGVzIHJlZ2FyZGluZyBTY2hlZHVsZXIgRGVzaWduIFByb2plY3QuPG86cD48L286DQ + ogcD48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPjxwIGNs + YXNzPSJNc29Ob3JtYWwiPjxvOg0KIHA+Jm5ic3BcOzwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm + 9ybWFsIj5CZXN0IFJlZ2FyZHM8bzpwPjwvbzpwPjwvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFs + Ij5TaGFoZWVtIEF6bWFsIE0gTUQ8bzpwPjwvbzpwPjwvcD48ZGl2PjxkaXYgDQogc3R5bGU9Im + 1hcmdpbi1ib3R0b206LjI1aW5cO292ZXJmbG93OmhpZGRlbiI+PHAgY2xhc3M9Ik1zb05vcm1h + bCI+PHNwYW4gDQogc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90XDtTZWdvZSBVSSZxdW90XDtcLH + NhbnMtc2VyaWZcO2NvbG9yOg0KICMyNDI0MjQiPl9fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogX19fX19fX19fX19fX1 + 9fPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7 + DQogXCxzYW5zLXNlcmlmXDtjb2xvcjojMjQyNDI0XDttc28tbGlnYXR1cmVzOm5vbmUiPjxvOn + A+PC9vOg0KIHA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOi4y + NWluXDtvdmVyZmxvdzpoaWRkZW4iPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGNsYX + NzPSJtZS1lbWFpbC10ZXh0Ij48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOg0KIDE4LjBwdFw7 + Zm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcO1wsc2Fucy1zZXJpZiI+Sml0c2kgTG + luazogPHNwYW4gDQogc3R5bGU9ImNvbG9yOiMyNDI0MjQiPjxhIGhyZWY9Imh0dHBzOg0KIC8v + ZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRi + UyRm1vZGVyYXRlZC5qaXRzDQogaS5uZXQlMkY1NDQ0ZjY3NWY1Y2U0N2M3ODhmYTQyMzhhNmE5 + NThjNTNkM2U2MjgwNGU5MjQzZDViODA3ZmJhYTgxZjMxMjBmJmENCiBtcFw7DQogZGF0YT0wNS + U3QzAyJTdDbWlzaHJhLmdhdXJhdiU0MHNpZW1lbnMuY29tJTdDMGZkZTdhNGZiMGMwNGZiYWI1 + MzYwOGRjN2JiMzINCiBhY2MlN0MzOGFlM2JjZDk1Nzk0ZmQ0YWRkYWI0MmUxNDk1ZDU1YSU3Qz + ElN0MwJTdDNjM4NTIxMjU2NjU0MDA1MjM5JTdDVW5rbg0KIG93biU3Q1RXRnBiR1pzYjNkOGV5 + SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYDQ + ogVkNJNk1uMCUzRCU3QzAlN0MlN0MlN0MmYW1wXDsNCiBzZGF0YT0lMkZJa2hVOGxkV0xTbkI0 + SDhyTWhNMThaalY5aWtOV2N5Q1k3TXolMkJtdk5GVSUzRCZhbXBcO3Jlc2VydmVkPTAiIA0KIG + 9yaWdpbmFsc3JjPSJodHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvNTQ0NGY2NzVmNWNl + NDdjNzg4ZmE0MjM4YTZhOTU4YzUzZDNlNjI4MDRlOTI0M2Q1YjgwNw0KIGZiYWE4MWYzMTIwZi + IgDQogc2hhc2g9InBleEdjTG93NFd5WkNReGs1c0huTlZjVUJUYTdmWDFqOTc1Z2t4OUh2d1o1 + dmR3ZzhXRGhwcng3SEg1eEwxeFJxd3ANCiBSSzhqak5lcU1jOUdFc2VNNkQyWnVaNXhIVDdvaW + RSdmtHek85elp0bTIrOEg3ZkN6OGdiWDBQUW5KaGxBbXErRFJSbFhpd3NtNQ0KIFgrbG5icTJz + UHNoQ1ZWSFJ1U3dPdHQxMlpjMStmcz0iPmh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC + 81NDQ0ZjY3NWY1Y2U0N2M3ODhmYTQyMzhhNmE5NThjNTNkM2U2MjgwNGU5MjQzZDViODA3DQog + ZmJhYTgxZjMxMjBmPC9hPjwvc3Bhbj48L3NwYW4+PC9iPjwvc3Bhbj48c3BhbiANCiBjbGFzcz + 0ibWUtZW1haWwtdGV4dCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxOC4wcHQiPjxvOnA+ + PC9vOg0KIHA+PC9zcGFuPjwvYj48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcG + FuIHN0eWxlPSJmb250LWZhbWlseToNCiAmcXVvdFw7U2Vnb2UgVUkmcXVvdFw7XCxzYW5zLXNl + cmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bh + bj48bzpwPjwvbzpwPjwvcD48L2Rpdj48L2Rpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48bzoNCi + BwPiZuYnNwXDs8L286cD48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4NCkNBVEVHT1JJRVM6Rm9z + c29sb2d5DQpCRUdJTjpWQUxBUk0NClgtRVZPTFVUSU9OLUFMQVJNLVVJRDo3M2VmN2I3OGIwOW + ZlMzg0ZGI5MmQ2NzI2ODI2MTMxOGYwYjg2NjgxDQpBQ1RJT046RElTUExBWQ0KREVTQ1JJUFRJ + T046VXBkYXRlcyBvbiBTY2hlZHVsZXIgRGVzaWduIFByb2plY3QNClRSSUdHRVI7UkVMQVRFRD + 1TVEFSVDotUFQxNU0NCkVORDpWQUxBUk0NCkVORDpWRVZFTlQNCgA= +BEGIN:VALARM +X-EVOLUTION-ALARM-UID:73ef7b78b09fe384db92d67268261318f0b86681 +ACTION:DISPLAY +DESCRIPTION:Updates on Scheduler Design Project +TRIGGER;RELATED=START:-PT15M +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2024_spdx-ffea82c3e0a03881be2297ed10e03d77.ics b/assets/files/gsoc_2024_spdx-ffea82c3e0a03881be2297ed10e03d77.ics new file mode 100644 index 0000000000..9cc8e3eb89 --- /dev/null +++ b/assets/files/gsoc_2024_spdx-ffea82c3e0a03881be2297ed10e03d77.ics @@ -0,0 +1,334 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello All\,\n\nLet’s meet here and discuss regarding the + updates of SPDX 3.0 and SPDX License Expressions projects.\n\n\nBest + Regards\nShaheem Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6\n___________________________________________________________ + _____________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000A0473660CAADDA01000000000000000010 + 000000455697047DEB694DB83D09BA90CC5EF6 +RECURRENCE-ID:20240528T103000Z +SUMMARY:Updates on SPDX 3.0 and SPDX License Expression projects +DTSTART;TZID=Asia/Kolkata:20240528T160000 +DTEND;TZID=Asia/Kolkata:20240528T165000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240524T080901Z +TRANSP:OPAQUE +STATUS:CONFIRMED +SEQUENCE:1 +LOCATION:Microsoft Teams Meeting +X-MICROSOFT-CDO-APPT-SEQUENCE:1 +X-MICROSOFT-CDO-OWNERAPPTID:1245206504 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-MICROSOFT-ONLINEMEETINGINFORMATION:{"OnlineMeetingChannelId": + null\,"OnlineMeetingProvider":3} +X-MICROSOFT-SKYPETEAMSMEETINGURL:https: + //teams.microsoft.com/l/meetup-join/19%3ameeting_NWRhNmJiN2MtMDc1OC00ZThmL + TlhZTctMTUyNTU3NWFiOWE5%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9 + 579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%227f1979f2-e3e3-40d0-8a77-bce + f842abf7e%22%7d +X-MICROSOFT-SCHEDULINGSERVICEUPDATEURL:https: + //api.scheduler.teams.microsoft.com/teams/38ae3bcd-9579-4fd4-adda-b42e1495 + d55a/7f1979f2-e3e3-40d0-8a77-bcef842abf7e/19_meeting_NWRhNmJiN2MtMDc1OC00Z + ThmLTlhZTctMTUyNTU3NWFiOWE5@thread.v2/0 +X-MICROSOFT-SKYPETEAMSPROPERTIES:{"cid":"19: + meeting_NWRhNmJiN2MtMDc1OC00ZThmLTlhZTctMTUyNTU3NWFiOWE5@thread.v2"\,"priv + ate":true\,"type":0\,"mid":0\,"rid":0\,"uid":null} +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +X-MICROSOFT-LOCATIONDISPLAYNAME:Microsoft Teams Meeting +X-MICROSOFT-LOCATIONSOURCE:None +X-MICROSOFT-LOCATIONS:[{"DisplayName":"Microsoft Teams + Meeting"\,"LocationAnnotation":""\,"LocationUri":""\,"LocationStreet": + ""\,"LocationCity":""\,"LocationState":""\,"LocationCountry": + ""\,"LocationPostalCode":""\,"LocationFullAddress":""}] +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN=Sahil;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=ACCEPTED:mailto:sjha200000@gmail.com +ATTENDEE;CN="Oberoi, Dearsh (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + dearsh.oberoi@siemens.com +ATTENDEE;CN=akumar17871@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:akumar17871@gmail.com +ATTENDEE;CN=akashsah2003@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:akashsah2003@gmail.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=TENTATIVE:mailto: + katharina.ettinger@siemens.com +URL:https: + //teams.microsoft.com/l/meetup-join/19%3ameeting_NWRhNmJiN2MtMDc1OC00ZThmL + TlhZTctMTUyNTU3NWFiOWE5%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9 + 579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%227f1979f2-e3e3-40d0-8a77-bce + f842abf7e%22%7d +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3H6pHiPAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGcUm9RAAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZwHp5b +X-ALT-DESC;FMTTYPE=text/html:\n

Hello All\,

 \;

Let’s meet + here and discuss regarding the updates of SPDX 3.0 and SPDX License + Expressions projects.

 \;

 \;

Best Regards

Shaheem + Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBBbGxcLFxuXG5MZXTigJlzIG1lZXQgaGVyZSBhbmQgZGlzY3VzcyByZWdhcmRpbm + cgdGhlIA0KIHVwZGF0ZXMgb2YgU1BEWCAzLjAgYW5kIFNQRFggTGljZW5zZSBFeHByZXNzaW9u + cyBwcm9qZWN0cy5cblxuXG5CZXN0IA0KIFJlZ2FyZHNcblNoYWhlZW0gQXptYWwgTSANCiBNRF + xuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19cbkppdHNpIExpbms6IGh0dHBzOg0KIC8vbW + 9kZXJhdGVkLmppdHNpLm5ldC9kNjIzYmIxMjg0YTU0YzgzOTU4ZWZmMzFkMmVjY2U5ZWQ2Yjg5 + NDMxMmVkYTRlZDliNDAwDQogZDU5NjNmNGUxOGI2PGh0dHBzOg0KIC8vZXVyMDEuc2FmZWxpbm + tzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRm1vZGVyYXRlZC5q + aXRzDQogaS5uZXQlMkZkNjIzYmIxMjg0YTU0YzgzOTU4ZWZmMzFkMmVjY2U5ZWQ2Yjg5NDMxMm + VkYTRlZDliNDAwZDU5NjNmNGUxOGI2JmQNCiBhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYl + NDBzaWVtZW5zLmNvbSU3Q2VlNzUwMThjMjU3ZDQ3MWExNjY1MDhkYzdiYzhjNw0KIDYwJTdDMz + hhZTNiY2Q5NTc5NGZkNGFkZGFiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUyMTM0OTQ2MTk0 + MjcyNiU3Q1Vua25vDQogd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSl + FJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFYNCiBDSTZNbjAlM0QlN0MwJTdDJTdD + JTdDJnNkYXRhPWI0b1piSnNxT3gxSjBvNlVBNVk3ZnJGVVM3S3k5Z2pEWFduU2xHYmpCNjglMw + 0KIEQmcmVzZXJ2ZWQ9MD5cbl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fX19fX19fDQogX19fX19fX19fX19fX19fX19fX19fXG5cbg0KVUlEOg + 0KIDA0MDAwMDAwODIwMEUwMDA3NEM1QjcxMDFBODJFMDA4MDAwMDAwMDBBMDQ3MzY2MENBQURE + QTAxMDAwMDAwMDAwMDAwMDAwMDEwDQogMDAwMDAwNDU1Njk3MDQ3REVCNjk0REI4M0QwOUJBOT + BDQzVFRjYNClJFQ1VSUkVOQ0UtSUQ6MjAyNDA1MjhUMTAzMDAwWg0KU1VNTUFSWTpVcGRhdGVz + IG9uIFNQRFggMy4wIGFuZCBTUERYIExpY2Vuc2UgRXhwcmVzc2lvbiBwcm9qZWN0cw0KRFRTVE + FSVDtUWklEPUFzaWEvS29sa2F0YToyMDI0MDUyOFQxNjAwMDANCkRURU5EO1RaSUQ9QXNpYS9L + b2xrYXRhOjIwMjQwNTI4VDE2NTAwMA0KQ0xBU1M6UFVCTElDDQpQUklPUklUWTo1DQpEVFNUQU + 1QOjIwMjQwNTI0VDA4MDkwMVoNClRSQU5TUDpPUEFRVUUNClNUQVRVUzpDT05GSVJNRUQNClNF + UVVFTkNFOjENCkxPQ0FUSU9OOk1pY3Jvc29mdCBUZWFtcyBNZWV0aW5nDQpYLU1JQ1JPU09GVC + 1DRE8tQVBQVC1TRVFVRU5DRToxDQpYLU1JQ1JPU09GVC1DRE8tT1dORVJBUFBUSUQ6MTI0NTIw + NjUwNA0KWC1NSUNST1NPRlQtQ0RPLUJVU1lTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLU + lOVEVOREVEU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0K + WC1NSUNST1NPRlQtQ0RPLUlNUE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOj + MNClgtTUlDUk9TT0ZULU9OTElORU1FRVRJTkdJTkZPUk1BVElPTjp7Ik9ubGluZU1lZXRpbmdD + aGFubmVsSWQiOg0KIG51bGxcLCJPbmxpbmVNZWV0aW5nUHJvdmlkZXIiOjN9DQpYLU1JQ1JPU0 + 9GVC1TS1lQRVRFQU1TTUVFVElOR1VSTDpodHRwczoNCiAvL3RlYW1zLm1pY3Jvc29mdC5jb20v + bC9tZWV0dXAtam9pbi8xOSUzYW1lZXRpbmdfTldSaE5tSmlOMk10TURjMU9DMDBaVGhtTA0KIF + RsaFpUY3RNVFV5TlRVM05XRmlPV0U1JTQwdGhyZWFkLnYyLzA/Y29udGV4dD0lN2IlMjJUaWQl + MjIlM2ElMjIzOGFlM2JjZC05DQogNTc5LTRmZDQtYWRkYS1iNDJlMTQ5NWQ1NWElMjIlMmMlMj + JPaWQlMjIlM2ElMjI3ZjE5NzlmMi1lM2UzLTQwZDAtOGE3Ny1iY2UNCiBmODQyYWJmN2UlMjIl + N2QNClgtTUlDUk9TT0ZULVNDSEVEVUxJTkdTRVJWSUNFVVBEQVRFVVJMOmh0dHBzOg0KIC8vYX + BpLnNjaGVkdWxlci50ZWFtcy5taWNyb3NvZnQuY29tL3RlYW1zLzM4YWUzYmNkLTk1NzktNGZk + NC1hZGRhLWI0MmUxNDk1DQogZDU1YS83ZjE5NzlmMi1lM2UzLTQwZDAtOGE3Ny1iY2VmODQyYW + JmN2UvMTlfbWVldGluZ19OV1JoTm1KaU4yTXRNRGMxT0MwMFoNCiBUaG1MVGxoWlRjdE1UVXlO + VFUzTldGaU9XRTVAdGhyZWFkLnYyLzANClgtTUlDUk9TT0ZULVNLWVBFVEVBTVNQUk9QRVJUSU + VTOnsiY2lkIjoiMTk6DQogbWVldGluZ19OV1JoTm1KaU4yTXRNRGMxT0MwMFpUaG1MVGxoWlRj + dE1UVXlOVFUzTldGaU9XRTVAdGhyZWFkLnYyIlwsInByaXYNCiBhdGUiOnRydWVcLCJ0eXBlIj + owXCwibWlkIjowXCwicmlkIjowXCwidWlkIjpudWxsfQ0KWC1NSUNST1NPRlQtRE9OT1RGT1JX + QVJETUVFVElORzpGQUxTRQ0KWC1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC + 1NSUNST1NPRlQtUkVRVUVTVEVEQVRURU5EQU5DRU1PREU6REVGQVVMVA0KWC1NSUNST1NPRlQt + SVNSRVNQT05TRVJFUVVFU1RFRDpUUlVFDQpYLU1JQ1JPU09GVC1MT0NBVElPTkRJU1BMQVlOQU + 1FOk1pY3Jvc29mdCBUZWFtcyBNZWV0aW5nDQpYLU1JQ1JPU09GVC1MT0NBVElPTlNPVVJDRTpO + b25lDQpYLU1JQ1JPU09GVC1MT0NBVElPTlM6W3siRGlzcGxheU5hbWUiOiJNaWNyb3NvZnQgVG + VhbXMgDQogTWVldGluZyJcLCJMb2NhdGlvbkFubm90YXRpb24iOiIiXCwiTG9jYXRpb25Vcmki + OiIiXCwiTG9jYXRpb25TdHJlZXQiOg0KICIiXCwiTG9jYXRpb25DaXR5IjoiIlwsIkxvY2F0aW + 9uU3RhdGUiOiIiXCwiTG9jYXRpb25Db3VudHJ5IjoNCiAiIlwsIkxvY2F0aW9uUG9zdGFsQ29k + ZSI6IiJcLCJMb2NhdGlvbkZ1bGxBZGRyZXNzIjoiIn1dDQpBVFRFTkRFRTtDTj0iQXptYWwgTS + BNRCwgU2hhaGVlbSAoVCBTU1AgQVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1S + RVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQ + ogc2hhaGVlbS5hem1hbEBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049Ik1pc2hyYSwgR2F1cmF2 + IChUIFNTUCBBU0ktSU4pIjtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUE + FOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOg0KIG1pc2hyYS5nYXVyYXZA + c2llbWVucy5jb20NCkFUVEVOREVFO0NOPVNhaGlsO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9Uk + VRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTsNCiBQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86c2po + YTIwMDAwMEBnbWFpbC5jb20NCkFUVEVOREVFO0NOPSJPYmVyb2ksIERlYXJzaCAoVCBTU1AgQV + NJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1U + UlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogZGVhcnNoLm9iZXJvaUBzaWVtZW + 5zLmNvbQ0KQVRURU5ERUU7Q049YWt1bWFyMTc4NzFAZ21haWwuY29tO0NVVFlQRT1JTkRJVklE + VUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1 + RJT046bWFpbHRvOmFrdW1hcjE3ODcxQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049YWthc2hzYWgy + MDAzQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCi + BSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzpha2FzaHNhaDIwMDNAZ21h + aWwuY29tDQpBVFRFTkRFRTtDTj0iRXR0aW5nZXIsIEthdGhhcmluYSAoVCBTU1AgRE9TLURFKS + I7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1PUFQtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BB + UlRTVEFUPVRFTlRBVElWRTptYWlsdG86DQoga2F0aGFyaW5hLmV0dGluZ2VyQHNpZW1lbnMuY2 + 9tDQpVUkw6aHR0cHM6DQogLy90ZWFtcy5taWNyb3NvZnQuY29tL2wvbWVldHVwLWpvaW4vMTkl + M2FtZWV0aW5nX05XUmhObUppTjJNdE1EYzFPQzAwWlRobUwNCiBUbGhaVGN0TVRVeU5UVTNOV0 + ZpT1dFNSU0MHRocmVhZC52Mi8wP2NvbnRleHQ9JTdiJTIyVGlkJTIyJTNhJTIyMzhhZTNiY2Qt + OQ0KIDU3OS00ZmQ0LWFkZGEtYjQyZTE0OTVkNTVhJTIyJTJjJTIyT2lkJTIyJTNhJTIyN2YxOT + c5ZjItZTNlMy00MGQwLThhNzctYmNlDQogZjg0MmFiZjdlJTIyJTdkDQpYLUVWT0xVVElPTi1J + VEVNSUQ6DQogQUFNa0FHUTRPVFl5WkRjNUxXWmhaVGt0TkRZMFpTMWhZMlV5TFRnMU9EVmpaR0 + ZtTlRVNVpBRlJBQWdJM0g2cEhpUEFBRVlBQUENCiBBQVR2M0xvMXcrSGttRHQzVTVSUU5WYndj + QWJxVVArOHpWMFVhRG5wOTV0c0pvOUFBQUFBQUJEUUFBYnFVUCs4elYwVWFEbnA5NQ0KIHRzSm + 85QUFHY1VtOVJBQUFFQT09DQpYLUVWT0xVVElPTi1DSEFOR0VLRVk6RHdBQUFCWUFBQUJ1cFEv + N3pOWFJSb09lbjNtMndtajBBQVp3SHA1Yg0KWC1BTFQtREVTQztGTVRUWVBFPXRleHQvaHRtbD + o8aHRtbCB4bWxuczp2PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOg0KIHZtbCIgeG1sbnM6 + bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4bWxuczp3PSJ1cm + 46DQogc2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJodHRwOg0K + IC8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJodH + RwOg0KIC8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj48aGVhZD5cbjxtZXRhIGh0dHAtZXF1 + aXY9IkNvbnRlbnQtVHlwZSIgDQogY29udGVudD0idGV4dC9odG1sXDsgY2hhcnNldD11dGYtOC + I+PG1ldGEgbmFtZT0iR2VuZXJhdG9yIiANCiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAo + ZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS1cbi8qIEZvbnQgDQogRGVmaW5pdGlvbnMgKi + 9cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCJcO1xuCXBhbm9zZS0x + OjIgNCANCiA1IDMgNSA0IDYgMyAyIDRcO31cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6Q2 + FsaWJyaVw7XG4JcGFub3NlLTE6MiAxNSA1IA0KIDIgMiAyIDQgMyAyIDRcO31cbkBmb250LWZh + Y2Vcbgl7Zm9udC1mYW1pbHk6IlNlZ29lIFVJIlw7XG4JcGFub3NlLTE6MiAxMSANCiA1IDIgNC + AyIDQgMiAyIDNcO31cbi8qIFN0eWxlIERlZmluaXRpb25zICovXG5wLk1zb05vcm1hbFwsIGxp + Lk1zb05vcm1hbFwsIA0KIGRpdi5Nc29Ob3JtYWxcbgl7bWFyZ2luOjBpblw7XG4JZm9udC1zaX + plOjExLjBwdFw7XG4JZm9udC1mYW1pbHk6DQogIkNhbGlicmkiXCxzYW5zLXNlcmlmXDtcbglt + c28tbGlnYXR1cmVzOnN0YW5kYXJkY29udGV4dHVhbFw7fVxuYTpsaW5rXCwgDQogc3Bhbi5Nc2 + 9IeXBlcmxpbmtcbgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5XDtcbgljb2xvcjojMDU2M0MxXDsN + CiBcbgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lXDt9XG5zcGFuLm1lLWVtYWlsLXRleHRcbg + l7bXNvLXN0eWxlLW5hbWU6DQogbWUtZW1haWwtdGV4dFw7fVxuc3Bhbi5FbWFpbFN0eWxlMjFc + bgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZVw7DQogfVxuLk1zb0NocERlZmF1bH + Rcbgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHlcO1xuCWZvbnQtc2l6ZToxMC4wcHRcOw0K + IFxuCW1zby1saWdhdHVyZXM6bm9uZVw7fVxuQHBhZ2UgV29yZFNlY3Rpb24xXG4Je3NpemU6OC + 41aW4gMTEuMGluXDsNCiBcbgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW5cO31cbmRp + di5Xb3JkU2VjdGlvbjFcbgl7cGFnZToNCiBXb3JkU2VjdGlvbjFcO31cbi0tPjwvc3R5bGU+PC + EtLVtpZiBndGUgbXNvIDldPjx4bWw+XG48bzpzaGFwZWRlZmF1bHRzIHY6DQogZXh0PSJlZGl0 + IiBzcGlkbWF4PSIxMDI2IiAvPlxuPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIA + 0KIDldPjx4bWw+XG48bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+XG48bzppZG1hcCB2OmV4 + dD0iZWRpdCIgZGF0YT0iMSIgDQogLz5cbjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl + 0tLT48L2hlYWQ+PGJvZHkgbGFuZz0iRU4tVVMiIA0KIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIj + OTU0RjcyIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPjxkaXYgDQogY2xhc3M9Ildvcm + RTZWN0aW9uMSI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8gQWxsXCw8bzpwPjwvbzpwPjwv + cD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwXDs8L286cD48L3A+PHAgY2xhc3 + M9Ik1zb05vcm1hbCI+TGV04oCZcyBtZWV0IA0KIGhlcmUgYW5kIGRpc2N1c3MgcmVnYXJkaW5n + IHRoZSB1cGRhdGVzIG9mIFNQRFggMy4wIGFuZCBTUERYIExpY2Vuc2UgDQogRXhwcmVzc2lvbn + MgcHJvamVjdHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz + cFw7PC9vOg0KIHA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3BcOzwvbzpwPj + wvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj5CZXN0IFJlZ2FyZHM8bzpwPjwvbzpwPjwvcD48 + cCBjbGFzcz0iTXNvTm9ybWFsIj5TaGFoZWVtIA0KIEF6bWFsIE0gTUQ8bzpwPjwvbzpwPjwvcD + 48ZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206LjI1aW5cO292ZXJmbG93Og0KIGhpZGRl + biI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90XD + tTZWdvZSANCiBVSSZxdW90XDtcLHNhbnMtc2VyaWZcO2NvbG9yOg0KICMyNDI0MjQiPl9fX19f + X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fDQogX19fX19fX19fX19fX19fPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom + cXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlmXDtjb2xvcjojMjQyNDI0XDttc2 + 8tbGlnYXR1cmVzOm5vbmUiPjxvOnA+PC9vOg0KIHA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2IHN0 + eWxlPSJtYXJnaW4tYm90dG9tOi4yNWluXDtvdmVyZmxvdzpoaWRkZW4iPjxwIA0KIGNsYXNzPS + JNc29Ob3JtYWwiPjxzcGFuIGNsYXNzPSJtZS1lbWFpbC10ZXh0Ij48Yj48c3BhbiBzdHlsZT0i + Zm9udC1zaXplOg0KIDE4LjBwdFw7Zm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcO1 + wsc2Fucy1zZXJpZlw7Y29sb3I6DQogIzI0MjQyNCI+Sml0c2kgTGluazogPGEgaHJlZj0iaHR0 + cHM6DQogLy9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dH + BzJTNBJTJGJTJGbW9kZXJhdGVkLmppdHMNCiBpLm5ldCUyRmQ2MjNiYjEyODRhNTRjODM5NThl + ZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDBkNTk2M2Y0ZTE4YjYmYQ0KIG1wXDsNCi + BkYXRhPTA1JTdDMDIlN0NtaXNocmEuZ2F1cmF2JTQwc2llbWVucy5jb20lN0NlZTc1MDE4YzI1 + N2Q0NzFhMTY2NTA4ZGM3YmM4Yw0KIDc2MCU3QzM4YWUzYmNkOTU3OTRmZDRhZGRhYjQyZTE0OT + VkNTVhJTdDMSU3QzAlN0M2Mzg1MjEzNDk0NjE5NDI3MjYlN0NVbmtuDQogb3duJTdDVFdGcGJH + WnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYV + d3aUxDSlgNCiBWQ0k2TW4wJTNEJTdDMCU3QyU3QyU3QyZhbXBcOw0KIHNkYXRhPWI0b1piSnNx + T3gxSjBvNlVBNVk3ZnJGVVM3S3k5Z2pEWFduU2xHYmpCNjglM0QmYW1wXDtyZXNlcnZlZD0wIi + ANCiBvcmlnaW5hbHNyYz0iaHR0cHM6DQogLy9tb2RlcmF0ZWQuaml0c2kubmV0L2Q2MjNiYjEy + ODRhNTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDANCiBkNTk2M2Y0ZT + E4YjYiIA0KIHNoYXNoPSJZNDNVQzJXR0NYUGJhcTlYUTlRbEpJbXZ3eStPemxaOFl6QVRlelZQ + Mys0MkI5MjJwYkIraFZqVmo5TXBNbzFaVk1lDQogSWVmQWhscFQzaE1WczNQQ0VwUnBHVnRyUV + hLbEJ3NzBlRHp3QUpLV1FXZHlwakdETmxhRW1xVk9WQWpUaTNoQXlsRjhMTFd1dFoNCiBtNWk2 + T20vbmlJTkQ5WHBRc0RnTlc5QWZLR3RsL0E9Ij5odHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS + 5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2NlOWVkNmI4OTQzMTJlZGE0ZWQ5YjQw + MA0KIGQ1OTYzZjRlMThiNjwvYT48L3NwYW4+PC9iPjwvc3Bhbj48c3BhbiBjbGFzcz0ibWUtZW + 1haWwtdGV4dCI+PGI+PHNwYW4gDQogc3R5bGU9ImZvbnQtc2l6ZToxOC4wcHQiPjxvOnA+PC9v + OnA+PC9zcGFuPjwvYj48L3NwYW4+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIH + N0eWxlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlm + XDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48 + bzpwPjwvbzpwPjwvcD48L2Rpdj48L2Rpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48bzoNCiBwPi + ZuYnNwXDs8L286cD48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4NCkNBVEVHT1JJRVM6Rm9zc29s + b2d5DQpFTkQ6VkVWRU5UDQoA +END:VEVENT +END:VCALENDAR diff --git a/assets/files/gsoc_2024_weekly-ac7f157eb6b219ee7518b492f375beb4.ics b/assets/files/gsoc_2024_weekly-ac7f157eb6b219ee7518b492f375beb4.ics new file mode 100644 index 0000000000..274c695879 --- /dev/null +++ b/assets/files/gsoc_2024_weekly-ac7f157eb6b219ee7518b492f375beb4.ics @@ -0,0 +1,373 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello all\,\n\nLet’s meet here every week to have general + discussion on all projects.\n\nWith best regards\,\nShaheem Azmal M + MD\n\n____________________________________________________________________ + ____________\n\n\nJITSI LINK : https: + //meet.jit.si/moderated/5a655b3b6f3b4f83cddb13b93ac5408d6de48bf4ce1049f412 + 8aa1c885478d48\n_____________________________________________________ + ___________________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000B0D0717316A2DA01000000000000000010 + 00000057266A432CBAC0409E1D8A01CF4CD2A7 +RECURRENCE-ID:20240509T133000Z +SUMMARY:GSoC 2024 - FOSSology - General Meeting +DTSTART;TZID=Asia/Kolkata:20240509T190000 +DTEND;TZID=Asia/Kolkata:20240509T200000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240509T104413Z +TRANSP:OPAQUE +STATUS:CONFIRMED +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION + property. Removing entire property: +X-MICROSOFT-CDO-OWNERAPPTID:-523675672 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=singh.aaditya889@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + singh.aaditya889@gmail.com +ATTENDEE;CN=Abdelrahman Jamal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:abdelrahmanjamal5565@gmail.com +ATTENDEE;CN=akumar17871@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:akumar17871@gmail.com +ATTENDEE;CN=akashsah2003@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=DECLINED:mailto:akashsah2003@gmail.com +ATTENDEE;CN=divijs75@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:divijs75@gmail.com +ATTENDEE;CN=rajuljha49@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:rajuljha49@gmail.com +ATTENDEE;CN=Shreya Gautam;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:gautamm.shreya@gmail.com +ATTENDEE;CN=valensniyonsenga2003@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + valensniyonsenga2003@gmail.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + anupam.ghosh@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN=classicayush@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:classicayush@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + katharina.ettinger@siemens.com +ATTENDEE;CN=sohambanerjee4abc@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + sohambanerjee4abc@gmail.com +ATTENDEE;CN=dushsam100@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:dushsam100@gmail.com +ATTENDEE;CN=Vivek Kumar;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=NEEDS-ACTION:mailto:vvksindia@gmail.com +ATTENDEE;CN=shreya.out@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:shreya.out@gmail.com +ATTENDEE;CN=vasudevmaduri2@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + vasudevmaduri2@gmail.com +ATTENDEE;CN=Nicolas Toussaint;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:nicolas1.toussaint@orange.com +ATTENDEE;CN=Sahil;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=NEEDS-ACTION:mailto:sjha200000@gmail.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3G+6+EqAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGZ+TTlgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZtbYk4 +X-ALT-DESC;FMTTYPE=text/html:\n

Hello all\,

 \;

Let’s meet here every week to have + general discussion on all projects.

 \;

With best regards\,

Shaheem Azmal M MD

 \;

_________________________________________________________________ + _______________

 \;

 \;

JITSI LINK : https: + //meet.jit.si/moderated/5a655b3b6f3b4f83cddb13b93ac5408d6de48bf4ce1049f412 + 8aa1c885478d48

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBhbGxcLFxuXG5MZXTigJlzIG1lZXQgaGVyZSBldmVyeSB3ZWVrIHRvIGhhdmUgZ2 + VuZXJhbCANCiBkaXNjdXNzaW9uIG9uIGFsbCBwcm9qZWN0cy5cblxuV2l0aCBiZXN0IHJlZ2Fy + ZHNcLFxuU2hhaGVlbSBBem1hbCBNIA0KIE1EXG5cbl9fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogX19fX19fX19f + X19fXG5cblxuSklUU0kgTElOSyA6IGh0dHBzOg0KIC8vbWVldC5qaXQuc2kvbW9kZXJhdGVkLz + VhNjU1YjNiNmYzYjRmODNjZGRiMTNiOTNhYzU0MDhkNmRlNDhiZjRjZTEwNDlmNDEyDQogOGFh + MWM4ODU0NzhkNDg8aHR0cHM6DQogLy9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb2 + 9rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbWVldC5qaXQuc2klMkYNCiBtb2RlcmF0ZWQlMkY1 + YTY1NWIzYjZmM2I0ZjgzY2RkYjEzYjkzYWM1NDA4ZDZkZTQ4YmY0Y2UxMDQ5ZjQxMjhhYTFjOD + g1NDc4ZA0KIDQ4JmRhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5zLmNvbSU3 + QzVhNDU3MGZiZTMyODQ1MWEzNGE5MDhkYzcwDQogMTRmOTE5JTdDMzhhZTNiY2Q5NTc5NGZkNG + FkZGFiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUwODQ4MjU3ODkxNTMxMyU3Q1UNCiBua25v + d24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0 + pCVGlJNklrMWhhV3dpTA0KIENKWFZDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPTdFV3hR + VFV2aEE1b2FGNHVuSWRkTmxGendzMHJVZnZzbiUyRjdrNzlQDQogY3Z1byUzRCZyZXNlcnZlZD + 0wPlxuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X18NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19cblxuDQpVSUQ6DQogMDQwMDAwMDA4Mj + AwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMEIwRDA3MTczMTZBMkRBMDEwMDAwMDAwMDAw + MDAwMDAwMTANCiAwMDAwMDA1NzI2NkE0MzJDQkFDMDQwOUUxRDhBMDFDRjRDRDJBNw0KUkVDVV + JSRU5DRS1JRDoyMDI0MDUwOVQxMzMwMDBaDQpTVU1NQVJZOkdTb0MgMjAyNCAtIEZPU1NvbG9n + eSAtIEdlbmVyYWwgTWVldGluZw0KRFRTVEFSVDtUWklEPUFzaWEvS29sa2F0YToyMDI0MDUwOV + QxOTAwMDANCkRURU5EO1RaSUQ9QXNpYS9Lb2xrYXRhOjIwMjQwNTA5VDIwMDAwMA0KQ0xBU1M6 + UFVCTElDDQpQUklPUklUWTo1DQpEVFNUQU1QOjIwMjQwNTA5VDEwNDQxM1oNClRSQU5TUDpPUE + FRVUUNClNUQVRVUzpDT05GSVJNRUQNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVFlQRT1WQUxV + RS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgTE9DQVRJT04gDQogcHJvcGVydHkuIFJlbW92aW + 5nIGVudGlyZSBwcm9wZXJ0eToNClgtTUlDUk9TT0ZULUNETy1PV05FUkFQUFRJRDotNTIzNjc1 + NjcyDQpYLU1JQ1JPU09GVC1DRE8tQlVTWVNUQVRVUzpCVVNZDQpYLU1JQ1JPU09GVC1DRE8tSU + 5URU5ERURTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLUFMTERBWUVWRU5UOkZBTFNFDQpY + LU1JQ1JPU09GVC1DRE8tSU1QT1JUQU5DRToxDQpYLU1JQ1JPU09GVC1DRE8tSU5TVFRZUEU6Mw + 0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5vIHZhbHVl + IGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmluZyBlbnRpcmUgcHJvcGVydHk6DQpYLUxJQy1FUl + JPUjtYLUxJQy1FUlJPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJv + cGVydHkuIA0KIFJlbW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLU + VSUk9SVFlQRT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQog + UmVtb3ZpbmcgZW50aXJlIHByb3BlcnR5Og0KWC1NSUNST1NPRlQtRE9OT1RGT1JXQVJETUVFVE + lORzpGQUxTRQ0KWC1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC1NSUNST1NP + RlQtUkVRVUVTVEVEQVRURU5EQU5DRU1PREU6REVGQVVMVA0KWC1NSUNST1NPRlQtSVNSRVNQT0 + 5TRVJFUVVFU1RFRDpUUlVFDQpBVFRFTkRFRTtDTj0iQXptYWwgTSBNRCwgU2hhaGVlbSAoVCBT + U1AgQVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7Ul + NWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogc2hhaGVlbS5hem1hbEBz + aWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049c2luZ2guYWFkaXR5YTg4OUBnbWFpbC5jb207Q1VUWV + BFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFU + PU5FRURTLUFDVElPTjptYWlsdG86DQogc2luZ2guYWFkaXR5YTg4OUBnbWFpbC5jb20NCkFUVE + VOREVFO0NOPUFiZGVscmFobWFuIEphbWFsO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBB + UlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86YWJkZWxyYW + htYW5qYW1hbDU1NjVAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1ha3VtYXIxNzg3MUBnbWFpbC5j + b207Q1VUWVBFPUlORElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1 + BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86YWt1bWFyMTc4NzFAZ21haWwuY29tDQpBVFRF + TkRFRTtDTj1ha2FzaHNhaDIwMDNAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9Uk + VRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1ERUNMSU5FRDptYWlsdG86YWth + c2hzYWgyMDAzQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049ZGl2aWpzNzVAZ21haWwuY29tO0NVVF + lQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RB + VD1BQ0NFUFRFRDptYWlsdG86ZGl2aWpzNzVAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1yYWp1bG + poYTQ5QGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsN + CiBSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOnJhanVsamhhNDlAZ21haWwuY2 + 9tDQpBVFRFTkRFRTtDTj1TaHJleWEgR2F1dGFtO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVR + LVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86Z2F1dG + FtbS5zaHJleWFAZ21haWwuY29tDQpBVFRFTkRFRTtDTj12YWxlbnNuaXlvbnNlbmdhMjAwM0Bn + bWFpbC5jb207Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD + 1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1haWx0bzoNCiB2YWxlbnNuaXlvbnNlbmdhMjAwM0Bn + bWFpbC5jb20NCkFUVEVOREVFO0NOPWF2aW5hbC54bHZpaUBnbWFpbC5jb207Q1VUWVBFPUlORE + lWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPU5FRURT + LUFDVElPTjptYWlsdG86YXZpbmFsLnhsdmlpQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049Ikdob3 + NoLCBBbnVwYW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVR + LVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIG + FudXBhbS5naG9zaEBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049Ik1pc2hyYSwgR2F1cmF2IChU + IFNTUCBBU0ktSU4pIjtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUEFOVD + tSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOg0KIG1pc2hyYS5nYXVyYXZAc2ll + bWVucy5jb20NCkFUVEVOREVFO0NOPWNsYXNzaWNheXVzaEBnbWFpbC5jb207Q1VUWVBFPUlORE + lWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPUFDQ0VQ + VEVEOm1haWx0bzpjbGFzc2ljYXl1c2hAZ21haWwuY29tDQpBVFRFTkRFRTtDTj0iU2luZ2gsIE + thdXNobGVuZHJhIFByYXRhcCAoVCBTU1AgQVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQog + Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYW + lsdG86DQoga2F1c2hsZW5kcmEtcHJhdGFwLnNpbmdoQHNpZW1lbnMuY29tDQpBVFRFTkRFRTtD + Tj0iRXR0aW5nZXIsIEthdGhhcmluYSAoVCBTU1AgRE9TLURFKSI7Q1VUWVBFPUlORElWSURVQU + w7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1h + aWx0bzoNCiBrYXRoYXJpbmEuZXR0aW5nZXJAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPXNvaG + FtYmFuZXJqZWU0YWJjQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1Q + QVJUSUNJUEFOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzoNCiBzb2 + hhbWJhbmVyamVlNGFiY0BnbWFpbC5jb20NCkFUVEVOREVFO0NOPWR1c2hzYW0xMDBAZ21haWwu + Y29tO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRT + tQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOmR1c2hzYW0xMDBAZ21haWwuY29tDQpBVFRF + TkRFRTtDTj1WaXZlayBLdW1hcjtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUE + FOVDtSU1ZQPVRSVUU7DQogUEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzp2dmtzaW5kaWFA + Z21haWwuY29tDQpBVFRFTkRFRTtDTj1zaHJleWEub3V0QGdtYWlsLmNvbTtDVVRZUEU9SU5ESV + ZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMt + QUNUSU9OOm1haWx0bzpzaHJleWEub3V0QGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049dmFzdWRldm + 1hZHVyaTJAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQ + QU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHZhc3VkZXZtYW + R1cmkyQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049Tmljb2xhcyBUb3Vzc2FpbnQ7Q1VUWVBFPUlO + RElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPU5FRU + RTLUFDVElPTjptYWlsdG86bmljb2xhczEudG91c3NhaW50QG9yYW5nZS5jb20NCkFUVEVOREVF + O0NOPVNhaGlsO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VF + JVRTsNCiBQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOnNqaGEyMDAwMDBAZ21haWwuY29t + DQpYLUVWT0xVVElPTi1JVEVNSUQ6DQogQUFNa0FHUTRPVFl5WkRjNUxXWmhaVGt0TkRZMFpTMW + hZMlV5TFRnMU9EVmpaR0ZtTlRVNVpBRlJBQWdJM0crNitFcUFBRVlBQUENCiBBQVR2M0xvMXcr + SGttRHQzVTVSUU5WYndjQWJxVVArOHpWMFVhRG5wOTV0c0pvOUFBQUFBQUJEUUFBYnFVUCs4el + YwVWFEbnA5NQ0KIHRzSm85QUFHWitUVGxnQUFFQT09DQpYLUVWT0xVVElPTi1DSEFOR0VLRVk6 + RHdBQUFCWUFBQUJ1cFEvN3pOWFJSb09lbjNtMndtajBBQVp0YllrNA0KWC1BTFQtREVTQztGTV + RUWVBFPXRleHQvaHRtbDo8aHRtbCB4bWxuczp2PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29t + Og0KIHZtbCIgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaW + NlIiB4bWxuczp3PSJ1cm46DQogc2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4 + bWxuczptPSJodHRwOg0KIC8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL2 + 9tbWwiIHhtbG5zPSJodHRwOg0KIC8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj48aGVhZD5c + bjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgDQogY29udGVudD0idGV4dC9odG1sXD + sgY2hhcnNldD11dGYtOCI+PG1ldGEgbmFtZT0iR2VuZXJhdG9yIiANCiBjb250ZW50PSJNaWNy + b3NvZnQgV29yZCAxNSAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS1cbi8qIEZvbnQgDQ + ogRGVmaW5pdGlvbnMgKi9cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0 + aCJcO1xuCXBhbm9zZS0xOjIgNCANCiA1IDMgNSA0IDYgMyAyIDRcO31cbkBmb250LWZhY2Vcbg + l7Zm9udC1mYW1pbHk6Q2FsaWJyaVw7XG4JcGFub3NlLTE6MiAxNSA1IA0KIDIgMiAyIDQgMyAy + IDRcO31cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6IlNlZ29lIFVJIlw7XG4JcGFub3NlLT + E6MiAxMSANCiA1IDIgNCAyIDQgMiAyIDNcO31cbi8qIFN0eWxlIERlZmluaXRpb25zICovXG5w + Lk1zb05vcm1hbFwsIGxpLk1zb05vcm1hbFwsIA0KIGRpdi5Nc29Ob3JtYWxcbgl7bWFyZ2luOj + Bpblw7XG4JZm9udC1zaXplOjExLjBwdFw7XG4JZm9udC1mYW1pbHk6DQogIkNhbGlicmkiXCxz + YW5zLXNlcmlmXDtcbgltc28tbGlnYXR1cmVzOnN0YW5kYXJkY29udGV4dHVhbFw7fVxuYTpsaW + 5rXCwgDQogc3Bhbi5Nc29IeXBlcmxpbmtcbgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5XDtcbglj + b2xvcjojMDU2M0MxXDsNCiBcbgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lXDt9XG5zcGFuLk + VtYWlsU3R5bGUxOFxuCXttc28tc3R5bGUtdHlwZToNCiBwZXJzb25hbC1jb21wb3NlXDt9XG4u + TXNvQ2hwRGVmYXVsdFxuCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seVw7DQogXG4JZm9udC + 1zaXplOjEwLjBwdFw7XG4JbXNvLWxpZ2F0dXJlczpub25lXDt9XG5AcGFnZSBXb3JkU2VjdGlv + bjFcbgl7c2l6ZToNCiA4LjVpbiAxMS4waW5cO1xuCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbi + AxLjBpblw7DQogfVxuZGl2LldvcmRTZWN0aW9uMVxuCXtwYWdlOldvcmRTZWN0aW9uMVw7fVxu + LS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gDQogOV0+PHhtbD5cbjxvOnNoYXBlZGVmYXVsdH + MgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIA0KIC8+XG48L3htbD48IVtlbmRpZl0tLT48 + IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD5cbjxvOnNoYXBlbGF5b3V0IHY6DQogZXh0PSJlZGl0Ij + 5cbjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPlxuPC9vOg0KIHNoYXBlbGF5b3V0 + PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iIzA1Nj + NDMSIgDQogdmxpbms9IiM5NTRGNzIiIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCI+PGRp + diBjbGFzcz0iV29yZFNlY3Rpb24xIj48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW + 5nPSJFTi1JTiI+SGVsbG8gYWxsXCw8L3NwYW4+PHNwYW4gbGFuZz0iRU4tSU4iIA0KIHN0eWxl + PSJtc28tbGlnYXR1cmVzOm5vbmUiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCANCiBjbGFzcz + 0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1JTiI+PG86cD4mbmJzcFw7PC9vOnA+PC9zcGFu + PjwvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1JTiI+TGV04oCZcy + BtZWV0IGhlcmUgZXZlcnkgd2VlayB0byBoYXZlIA0KIGdlbmVyYWwgZGlzY3Vzc2lvbiBvbiBh + bGwgcHJvamVjdHMuPG86cD48L286cD48L3NwYW4+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYW + wiPjxzcGFuIGxhbmc9IkVOLUlOIj48bzpwPiZuYnNwXDs8L286cD48L3NwYW4+PC9wPjxwIA0K + IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUlOIj5XaXRoIGJlc3QgcmVnYXJkc1 + wsPG86cD48L286DQogcD48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh + bmc9IkVOLUlOIj5TaGFoZWVtIEF6bWFsIE0gTUQ8bzoNCiBwPjwvbzpwPjwvc3Bhbj48L3A+PH + AgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPjxkaXY+PGRpdiANCiBz + dHlsZT0ibWFyZ2luLWJvdHRvbTouMjVpblw7b3ZlcmZsb3c6aGlkZGVuIj48cCBjbGFzcz0iTX + NvTm9ybWFsIj48c3BhbiANCiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1 + b3RcO1wsc2Fucy1zZXJpZlw7Y29sb3I6DQogIzI0MjQyNCI+X19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBfX19fX19f + X19fX19fX188bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW + 4gDQogc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90XDtTZWdvZSBVSSZxdW90XDtcLHNhbnMtc2Vy + aWZcO2NvbG9yOiMyNDI0MjRcOw0KIG1zby1saWdhdHVyZXM6bm9uZSI+PG86cD4mbmJzcFw7PC + 9vOnA+PC9zcGFuPjwvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u + dC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcOw0KIFwsc2Fucy1zZXJpZlw7Y29sb3I6Iz + I0MjQyNFw7bXNvLWxpZ2F0dXJlczpub25lIj48bzpwPiZuYnNwXDs8L286DQogcD48L3NwYW4+ + PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdF + w7U2Vnb2UgDQogVUkmcXVvdFw7XCxzYW5zLXNlcmlmXDtjb2xvcjojMjQyNDI0XDttc28tbGln + YXR1cmVzOm5vbmUiPkpJVFNJIExJTksgOiA8YSANCiBocmVmPSJodHRwczoNCiAvL2V1cjAxLn + NhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZtZWV0 + LmppdC5zaSUyRg0KIG1vZGVyYXRlZCUyRjVhNjU1YjNiNmYzYjRmODNjZGRiMTNiOTNhYzU0MD + hkNmRlNDhiZjRjZTEwNDlmNDEyOGFhMWM4ODU0NzhkDQogNDgmYW1wXDsNCiBkYXRhPTA1JTdD + MDIlN0NtaXNocmEuZ2F1cmF2JTQwc2llbWVucy5jb20lN0M1YTQ1NzBmYmUzMjg0NTFhMzRhOT + A4ZGM3MDE0Zg0KIDkxOSU3QzM4YWUzYmNkOTU3OTRmZDRhZGRhYjQyZTE0OTVkNTVhJTdDMSU3 + QzAlN0M2Mzg1MDg0ODI1Nzg5MTUzMTMlN0NVbmtuDQogb3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0 + lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlgNCiBW + Q0k2TW4wJTNEJTdDMCU3QyU3QyU3QyZhbXBcOw0KIHNkYXRhPTdFV3hRVFV2aEE1b2FGNHVuSW + RkTmxGendzMHJVZnZzbiUyRjdrNzlQY3Z1byUzRCZhbXBcO3Jlc2VydmVkPTAiIA0KIG9yaWdp + bmFsc3JjPSJodHRwczoNCiAvL21lZXQuaml0LnNpL21vZGVyYXRlZC81YTY1NWIzYjZmM2I0Zj + gzY2RkYjEzYjkzYWM1NDA4ZDZkZTQ4YmY0Y2UxMDQ5ZjQxMg0KIDhhYTFjODg1NDc4ZDQ4IiAN + CiBzaGFzaD0iSlJ6TzJIVzVINmU3bXgyaW5PVmtlTkJ4SjgyaVFjS0dLekQ1Mk1rL2VRVnU5cm + tkVjlFaE1BaFA2NDB6WWN6RXBhNA0KIDdMYm94MWdXYTZGTldOSWZ4bnRwY05LNEhpUmJ2eTlM + WlpVRkJRQndQU2ZETUVIVTE2cXk5cVU1ZUVMQUZWaGgyaUs1OTdUUXpUDQogbWtUOHgxQnhzUT + l4SXdEUXJ4eHIvdlZIcFdlQllJPSI+aHR0cHM6DQogLy9tZWV0LmppdC5zaS9tb2RlcmF0ZWQv + NWE2NTViM2I2ZjNiNGY4M2NkZGIxM2I5M2FjNTQwOGQ2ZGU0OGJmNGNlMTA0OWY0MTINCiA4YW + ExYzg4NTQ3OGQ0ODwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PGRpdiBzdHlsZT0i + bWFyZ2luLWJvdHRvbToNCiAuMjVpblw7b3ZlcmZsb3c6aGlkZGVuIj48cCBjbGFzcz0iTXNvTm + 9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6DQogJnF1b3RcO1NlZ29lIFVJJnF1b3Rc + O1wsc2Fucy1zZXJpZlw7Y29sb3I6DQogIzI0MjQyNCI+X19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBfX19fX19fX19f + X19fX188bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PC9kaXY+PHAgY2xhc3M9Ik1zb05vcm + 1hbCI+PG86DQogcD4mbmJzcFw7PC9vOnA+PC9wPjwvZGl2PjwvYm9keT48L2h0bWw+DQpDQVRF + R09SSUVTOkZvc3NvbG9neQ0KRU5EOlZFVkVOVA0KAA== +END:VEVENT +END:VCALENDAR diff --git a/assets/files/model_Core+Software-5cc67202e8183f9c98a6df3b7d60a401.png b/assets/files/model_Core+Software-5cc67202e8183f9c98a6df3b7d60a401.png new file mode 100644 index 0000000000..30163a5f13 Binary files /dev/null and b/assets/files/model_Core+Software-5cc67202e8183f9c98a6df3b7d60a401.png differ diff --git a/assets/files/model_Licensing-3291eb7bbe40c137b13f15f5de842b0f.png b/assets/files/model_Licensing-3291eb7bbe40c137b13f15f5de842b0f.png new file mode 100644 index 0000000000..4e0590f487 Binary files /dev/null and b/assets/files/model_Licensing-3291eb7bbe40c137b13f15f5de842b0f.png differ diff --git a/assets/files/set_priority-eb0c34d744c59123327d1bb5aa8ca510.png b/assets/files/set_priority-eb0c34d744c59123327d1bb5aa8ca510.png new file mode 100644 index 0000000000..26e77dd957 Binary files /dev/null and b/assets/files/set_priority-eb0c34d744c59123327d1bb5aa8ca510.png differ diff --git a/assets/images/1.1_getRequest-4b6cfc72b5dc2d9dfe31f943ddad2687.png b/assets/images/1.1_getRequest-4b6cfc72b5dc2d9dfe31f943ddad2687.png new file mode 100644 index 0000000000..3539f954ce Binary files /dev/null and b/assets/images/1.1_getRequest-4b6cfc72b5dc2d9dfe31f943ddad2687.png differ diff --git a/assets/images/1.2_postRequest-5f9c2bea3c2c3c5b14897b8690ba3119.png b/assets/images/1.2_postRequest-5f9c2bea3c2c3c5b14897b8690ba3119.png new file mode 100644 index 0000000000..7f0962e5ee Binary files /dev/null and b/assets/images/1.2_postRequest-5f9c2bea3c2c3c5b14897b8690ba3119.png differ diff --git a/assets/images/10_semantics-8c46f594d40fbd40e15c0a3cdd1862b4.png b/assets/images/10_semantics-8c46f594d40fbd40e15c0a3cdd1862b4.png new file mode 100644 index 0000000000..c1d812c37b Binary files /dev/null and b/assets/images/10_semantics-8c46f594d40fbd40e15c0a3cdd1862b4.png differ diff --git a/assets/images/11_StatusCodes-ad55eed18bae185be279b63226993689.png b/assets/images/11_StatusCodes-ad55eed18bae185be279b63226993689.png new file mode 100644 index 0000000000..8a65e0d5da Binary files /dev/null and b/assets/images/11_StatusCodes-ad55eed18bae185be279b63226993689.png differ diff --git a/assets/images/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0-c96bec95f404ab217baead93b4ff9dec.png b/assets/images/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0-c96bec95f404ab217baead93b4ff9dec.png new file mode 100644 index 0000000000..c298a04e1a Binary files /dev/null and b/assets/images/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0-c96bec95f404ab217baead93b4ff9dec.png differ diff --git a/assets/images/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a-b57b0ccc31a2fa0c34e55b27165c24fa.png b/assets/images/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a-b57b0ccc31a2fa0c34e55b27165c24fa.png new file mode 100644 index 0000000000..f1b71bcd8c Binary files /dev/null and b/assets/images/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a-b57b0ccc31a2fa0c34e55b27165c24fa.png differ diff --git a/assets/images/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9-9c6dacaae25f68e2244b4b062674161d.png b/assets/images/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9-9c6dacaae25f68e2244b4b062674161d.png new file mode 100644 index 0000000000..ae3c4f0289 Binary files /dev/null and b/assets/images/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9-9c6dacaae25f68e2244b4b062674161d.png differ diff --git a/assets/images/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277-990f220295cc7f5b9fa9a6947f75105a.png b/assets/images/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277-990f220295cc7f5b9fa9a6947f75105a.png new file mode 100644 index 0000000000..33b3b1ca85 Binary files /dev/null and b/assets/images/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277-990f220295cc7f5b9fa9a6947f75105a.png differ diff --git a/assets/images/128032535-c5941727-5ba3-492f-9662-a566ac4c350b-3e2ac3344c85416166b2e473c94f240d.png b/assets/images/128032535-c5941727-5ba3-492f-9662-a566ac4c350b-3e2ac3344c85416166b2e473c94f240d.png new file mode 100644 index 0000000000..d519ad61eb Binary files /dev/null and b/assets/images/128032535-c5941727-5ba3-492f-9662-a566ac4c350b-3e2ac3344c85416166b2e473c94f240d.png differ diff --git a/assets/images/12_NoContent-a1c6e5a03247c2b18ebc301cc3651f7a.png b/assets/images/12_NoContent-a1c6e5a03247c2b18ebc301cc3651f7a.png new file mode 100644 index 0000000000..4221d9f874 Binary files /dev/null and b/assets/images/12_NoContent-a1c6e5a03247c2b18ebc301cc3651f7a.png differ diff --git a/assets/images/13_ConsistentNaming-536d846e04184f0ff1fb6086fcd6d663.png b/assets/images/13_ConsistentNaming-536d846e04184f0ff1fb6086fcd6d663.png new file mode 100644 index 0000000000..06e14cc5f0 Binary files /dev/null and b/assets/images/13_ConsistentNaming-536d846e04184f0ff1fb6086fcd6d663.png differ diff --git a/assets/images/16_inputFields-c26340ef7d0ba75aa8d00a994bcd23f0.png b/assets/images/16_inputFields-c26340ef7d0ba75aa8d00a994bcd23f0.png new file mode 100644 index 0000000000..056860f788 Binary files /dev/null and b/assets/images/16_inputFields-c26340ef7d0ba75aa8d00a994bcd23f0.png differ diff --git a/assets/images/17_Versioning-7ffe18d01b33aa90ea5416ca1e847561.png b/assets/images/17_Versioning-7ffe18d01b33aa90ea5416ca1e847561.png new file mode 100644 index 0000000000..0c37b86b32 Binary files /dev/null and b/assets/images/17_Versioning-7ffe18d01b33aa90ea5416ca1e847561.png differ diff --git a/assets/images/18_models-ec9b4d5c091a1b413cb383d447901f33.png b/assets/images/18_models-ec9b4d5c091a1b413cb383d447901f33.png new file mode 100644 index 0000000000..9770f27251 Binary files /dev/null and b/assets/images/18_models-ec9b4d5c091a1b413cb383d447901f33.png differ diff --git a/assets/images/19_ConcreteArchitecture-546aaa7e558ee5f58cda0808760a83b5.png b/assets/images/19_ConcreteArchitecture-546aaa7e558ee5f58cda0808760a83b5.png new file mode 100644 index 0000000000..98b0ac4c32 Binary files /dev/null and b/assets/images/19_ConcreteArchitecture-546aaa7e558ee5f58cda0808760a83b5.png differ diff --git a/assets/images/20_JSONRepresentation-d043410b35c869e37f54f0ec712dbd23.png b/assets/images/20_JSONRepresentation-d043410b35c869e37f54f0ec712dbd23.png new file mode 100644 index 0000000000..d3bf7dc642 Binary files /dev/null and b/assets/images/20_JSONRepresentation-d043410b35c869e37f54f0ec712dbd23.png differ diff --git a/assets/images/22_CORS-8f2954121878b3bc6a3511a9e98af180.png b/assets/images/22_CORS-8f2954121878b3bc6a3511a9e98af180.png new file mode 100644 index 0000000000..f0bfd091da Binary files /dev/null and b/assets/images/22_CORS-8f2954121878b3bc6a3511a9e98af180.png differ diff --git a/assets/images/23_ErrorHandling-db9132e4b611c326a4c44450e6de991e.png b/assets/images/23_ErrorHandling-db9132e4b611c326a4c44450e6de991e.png new file mode 100644 index 0000000000..9659f00e9d Binary files /dev/null and b/assets/images/23_ErrorHandling-db9132e4b611c326a4c44450e6de991e.png differ diff --git a/assets/images/24_DataValidation-cfdd8ff366378b8293d566934463565f.png b/assets/images/24_DataValidation-cfdd8ff366378b8293d566934463565f.png new file mode 100644 index 0000000000..ffe855444c Binary files /dev/null and b/assets/images/24_DataValidation-cfdd8ff366378b8293d566934463565f.png differ diff --git a/assets/images/25_Security-56c15febe7babdc7e6acf6e1152426d7.png b/assets/images/25_Security-56c15febe7babdc7e6acf6e1152426d7.png new file mode 100644 index 0000000000..14f3314371 Binary files /dev/null and b/assets/images/25_Security-56c15febe7babdc7e6acf6e1152426d7.png differ diff --git a/assets/images/26_Testing-93799cb6b593c143e93ed7c2e441d1b1.png b/assets/images/26_Testing-93799cb6b593c143e93ed7c2e441d1b1.png new file mode 100644 index 0000000000..3063d90120 Binary files /dev/null and b/assets/images/26_Testing-93799cb6b593c143e93ed7c2e441d1b1.png differ diff --git a/assets/images/27_Documentation-65ba28a57b3e087991bbc314d97a1f32.png b/assets/images/27_Documentation-65ba28a57b3e087991bbc314d97a1f32.png new file mode 100644 index 0000000000..78d4d8f428 Binary files /dev/null and b/assets/images/27_Documentation-65ba28a57b3e087991bbc314d97a1f32.png differ diff --git a/assets/images/5_ResourceOrientation-70d088e1f44f54e2c3541da9770ef88d.png b/assets/images/5_ResourceOrientation-70d088e1f44f54e2c3541da9770ef88d.png new file mode 100644 index 0000000000..57942e6ece Binary files /dev/null and b/assets/images/5_ResourceOrientation-70d088e1f44f54e2c3541da9770ef88d.png differ diff --git a/assets/images/9.1_mediaTypes-e77d8f96736ce9f2786b3d408e8f6eaf.png b/assets/images/9.1_mediaTypes-e77d8f96736ce9f2786b3d408e8f6eaf.png new file mode 100644 index 0000000000..7d4b4d4f60 Binary files /dev/null and b/assets/images/9.1_mediaTypes-e77d8f96736ce9f2786b3d408e8f6eaf.png differ diff --git a/assets/images/CorsSetup-51d5913c490a7078e954b9baba674f72.png b/assets/images/CorsSetup-51d5913c490a7078e954b9baba674f72.png new file mode 100644 index 0000000000..f0deb53e40 Binary files /dev/null and b/assets/images/CorsSetup-51d5913c490a7078e954b9baba674f72.png differ diff --git a/assets/images/CreateFolder-1b1845fda85eb126f209c084c864454a.png b/assets/images/CreateFolder-1b1845fda85eb126f209c084c864454a.png new file mode 100644 index 0000000000..31be7423ce Binary files /dev/null and b/assets/images/CreateFolder-1b1845fda85eb126f209c084c864454a.png differ diff --git a/assets/images/CreateGroup-2b63cb829d0d92683a338206bf06f18f.png b/assets/images/CreateGroup-2b63cb829d0d92683a338206bf06f18f.png new file mode 100644 index 0000000000..1aa862a862 Binary files /dev/null and b/assets/images/CreateGroup-2b63cb829d0d92683a338206bf06f18f.png differ diff --git a/assets/images/DeleteFolder-a5d8dd61a8233aca37772e86ac8857c2.png b/assets/images/DeleteFolder-a5d8dd61a8233aca37772e86ac8857c2.png new file mode 100644 index 0000000000..9343772cce Binary files /dev/null and b/assets/images/DeleteFolder-a5d8dd61a8233aca37772e86ac8857c2.png differ diff --git a/assets/images/DeleteUser-8342536033f4f074e150ca1cb20a1076.png b/assets/images/DeleteUser-8342536033f4f074e150ca1cb20a1076.png new file mode 100644 index 0000000000..03bf12d80a Binary files /dev/null and b/assets/images/DeleteUser-8342536033f4f074e150ca1cb20a1076.png differ diff --git a/assets/images/EditFolder-4ada9b03300af743487af924c7fd0a05.png b/assets/images/EditFolder-4ada9b03300af743487af924c7fd0a05.png new file mode 100644 index 0000000000..6a333055b5 Binary files /dev/null and b/assets/images/EditFolder-4ada9b03300af743487af924c7fd0a05.png differ diff --git a/assets/images/Error404-1f513d07cd78ed0d387faa618486f856.png b/assets/images/Error404-1f513d07cd78ed0d387faa618486f856.png new file mode 100644 index 0000000000..85f0ec7754 Binary files /dev/null and b/assets/images/Error404-1f513d07cd78ed0d387faa618486f856.png differ diff --git a/assets/images/FolderNavigation-f73cab5340256a6e6aca7fe466dfabde.png b/assets/images/FolderNavigation-f73cab5340256a6e6aca7fe466dfabde.png new file mode 100644 index 0000000000..252eca7523 Binary files /dev/null and b/assets/images/FolderNavigation-f73cab5340256a6e6aca7fe466dfabde.png differ diff --git a/assets/images/GH_Actions_1-fcebcbf18c5abccdf78cc789294d79f0.png b/assets/images/GH_Actions_1-fcebcbf18c5abccdf78cc789294d79f0.png new file mode 100644 index 0000000000..a075fa5be4 Binary files /dev/null and b/assets/images/GH_Actions_1-fcebcbf18c5abccdf78cc789294d79f0.png differ diff --git a/assets/images/GH_Actions_2-46d1ef2434b48f9c6bce09c634f572e7.png b/assets/images/GH_Actions_2-46d1ef2434b48f9c6bce09c634f572e7.png new file mode 100644 index 0000000000..cd76f741ec Binary files /dev/null and b/assets/images/GH_Actions_2-46d1ef2434b48f9c6bce09c634f572e7.png differ diff --git a/assets/images/GithubActions-9b867c07e9a4744117f5955ecafdaafb.PNG b/assets/images/GithubActions-9b867c07e9a4744117f5955ecafdaafb.PNG new file mode 100644 index 0000000000..b52fd2e5e3 Binary files /dev/null and b/assets/images/GithubActions-9b867c07e9a4744117f5955ecafdaafb.PNG differ diff --git a/assets/images/Gitlab_1-1eac9e7caca7231123464596b00b13df.png b/assets/images/Gitlab_1-1eac9e7caca7231123464596b00b13df.png new file mode 100644 index 0000000000..f1a7f511e1 Binary files /dev/null and b/assets/images/Gitlab_1-1eac9e7caca7231123464596b00b13df.png differ diff --git a/assets/images/Header2-275d75eeb018559136a1fadd2844edb0.png b/assets/images/Header2-275d75eeb018559136a1fadd2844edb0.png new file mode 100644 index 0000000000..17a6f4ff24 Binary files /dev/null and b/assets/images/Header2-275d75eeb018559136a1fadd2844edb0.png differ diff --git a/assets/images/MoveFolder-f8374b2c640ba52d32bd754223c871ac.png b/assets/images/MoveFolder-f8374b2c640ba52d32bd754223c871ac.png new file mode 100644 index 0000000000..b12e023152 Binary files /dev/null and b/assets/images/MoveFolder-f8374b2c640ba52d32bd754223c871ac.png differ diff --git a/assets/images/Nomos_json_output-032a276eb612ed5e6292dbf01a41502d.png b/assets/images/Nomos_json_output-032a276eb612ed5e6292dbf01a41502d.png new file mode 100644 index 0000000000..0904c0d0b8 Binary files /dev/null and b/assets/images/Nomos_json_output-032a276eb612ed5e6292dbf01a41502d.png differ diff --git a/assets/images/ScheduleAnalysis-686743349e001c1e4bdc49df0fbff3d0.png b/assets/images/ScheduleAnalysis-686743349e001c1e4bdc49df0fbff3d0.png new file mode 100644 index 0000000000..f99d9af825 Binary files /dev/null and b/assets/images/ScheduleAnalysis-686743349e001c1e4bdc49df0fbff3d0.png differ diff --git a/assets/images/Spdx_tools_Version0.8.0a2-953cd60d1ca85a872988d8658c25750a.png b/assets/images/Spdx_tools_Version0.8.0a2-953cd60d1ca85a872988d8658c25750a.png new file mode 100644 index 0000000000..fac7d3dd26 Binary files /dev/null and b/assets/images/Spdx_tools_Version0.8.0a2-953cd60d1ca85a872988d8658c25750a.png differ diff --git a/assets/images/Spdx_tools_Version_0.8.2-e1510676ffe2014008c97f47d35eac1b.png b/assets/images/Spdx_tools_Version_0.8.2-e1510676ffe2014008c97f47d35eac1b.png new file mode 100644 index 0000000000..e91559494e Binary files /dev/null and b/assets/images/Spdx_tools_Version_0.8.2-e1510676ffe2014008c97f47d35eac1b.png differ diff --git a/assets/images/Whitelist_decision_tree-4b89e68ecc7c1936e31eedd97f0068aa.png b/assets/images/Whitelist_decision_tree-4b89e68ecc7c1936e31eedd97f0068aa.png new file mode 100644 index 0000000000..52b658583d Binary files /dev/null and b/assets/images/Whitelist_decision_tree-4b89e68ecc7c1936e31eedd97f0068aa.png differ diff --git a/assets/images/about-879a976f122eb04b5f48dfc6ecfcce8b.png b/assets/images/about-879a976f122eb04b5f48dfc6ecfcce8b.png new file mode 100644 index 0000000000..1db3ba4d8f Binary files /dev/null and b/assets/images/about-879a976f122eb04b5f48dfc6ecfcce8b.png differ diff --git a/assets/images/aboutTerms-dd4011164cb1ee96e8223fb5958d29bc.png b/assets/images/aboutTerms-dd4011164cb1ee96e8223fb5958d29bc.png new file mode 100644 index 0000000000..f236f1586c Binary files /dev/null and b/assets/images/aboutTerms-dd4011164cb1ee96e8223fb5958d29bc.png differ diff --git a/assets/images/addLicense-2055b5350867510f04fb167222b869a4.png b/assets/images/addLicense-2055b5350867510f04fb167222b869a4.png new file mode 100644 index 0000000000..c4f86359b3 Binary files /dev/null and b/assets/images/addLicense-2055b5350867510f04fb167222b869a4.png differ diff --git a/assets/images/addLicense-c873e5e3c4852e608845c5b955d7bac0.png b/assets/images/addLicense-c873e5e3c4852e608845c5b955d7bac0.png new file mode 100644 index 0000000000..51eaa32d07 Binary files /dev/null and b/assets/images/addLicense-c873e5e3c4852e608845c5b955d7bac0.png differ diff --git a/assets/images/addLicenseSuccess-0d5e2bd7eaa3ff5a21be36554f3d36e0.png b/assets/images/addLicenseSuccess-0d5e2bd7eaa3ff5a21be36554f3d36e0.png new file mode 100644 index 0000000000..8ccc254924 Binary files /dev/null and b/assets/images/addLicenseSuccess-0d5e2bd7eaa3ff5a21be36554f3d36e0.png differ diff --git a/assets/images/addUserReqUpdated-dd565ed97b565645d22abd057739a18f.png b/assets/images/addUserReqUpdated-dd565ed97b565645d22abd057739a18f.png new file mode 100644 index 0000000000..441419922e Binary files /dev/null and b/assets/images/addUserReqUpdated-dd565ed97b565645d22abd057739a18f.png differ diff --git a/assets/images/addUserResUpdated-301193484a5450458486b77e9d9518ce.png b/assets/images/addUserResUpdated-301193484a5450458486b77e9d9518ce.png new file mode 100644 index 0000000000..ea82704003 Binary files /dev/null and b/assets/images/addUserResUpdated-301193484a5450458486b77e9d9518ce.png differ diff --git a/assets/images/add_main_license-e8caa363145212c9273e423aa7e0749c.png b/assets/images/add_main_license-e8caa363145212c9273e423aa7e0749c.png new file mode 100644 index 0000000000..e1c516a244 Binary files /dev/null and b/assets/images/add_main_license-e8caa363145212c9273e423aa7e0749c.png differ diff --git a/assets/images/add_new_license_decision-5930bde8b96ef8cd02bb38e6bd06da3b.png b/assets/images/add_new_license_decision-5930bde8b96ef8cd02bb38e6bd06da3b.png new file mode 100644 index 0000000000..5170a8e877 Binary files /dev/null and b/assets/images/add_new_license_decision-5930bde8b96ef8cd02bb38e6bd06da3b.png differ diff --git a/assets/images/add_pagination-98c1011fdb8b5ad4eaee1a82765cef0b.png b/assets/images/add_pagination-98c1011fdb8b5ad4eaee1a82765cef0b.png new file mode 100644 index 0000000000..a6eb544884 Binary files /dev/null and b/assets/images/add_pagination-98c1011fdb8b5ad4eaee1a82765cef0b.png differ diff --git a/assets/images/add_user-9ae22d54dec4d4ede8ab0fa98c0df358.png b/assets/images/add_user-9ae22d54dec4d4ede8ab0fa98c0df358.png new file mode 100644 index 0000000000..3abe105e23 Binary files /dev/null and b/assets/images/add_user-9ae22d54dec4d4ede8ab0fa98c0df358.png differ diff --git a/assets/images/addclients-60b161399ea7076bd3dbf3df5f4d9f80.png b/assets/images/addclients-60b161399ea7076bd3dbf3df5f4d9f80.png new file mode 100644 index 0000000000..6db32081a5 Binary files /dev/null and b/assets/images/addclients-60b161399ea7076bd3dbf3df5f4d9f80.png differ diff --git a/assets/images/admin_response-7a3e8ae42ab966c4625a492a7fdfadbc.png b/assets/images/admin_response-7a3e8ae42ab966c4625a492a7fdfadbc.png new file mode 100644 index 0000000000..6527a692b4 Binary files /dev/null and b/assets/images/admin_response-7a3e8ae42ab966c4625a492a7fdfadbc.png differ diff --git a/assets/images/admin_view-8b6f8603bd24b36336c4c0b61fa4632a.jpeg b/assets/images/admin_view-8b6f8603bd24b36336c4c0b61fa4632a.jpeg new file mode 100644 index 0000000000..8f6da9dfc6 Binary files /dev/null and b/assets/images/admin_view-8b6f8603bd24b36336c4c0b61fa4632a.jpeg differ diff --git a/assets/images/alljobs_ui_sample-db5910acbfb5cb6e07268e421729c9b6.png b/assets/images/alljobs_ui_sample-db5910acbfb5cb6e07268e421729c9b6.png new file mode 100644 index 0000000000..380c3c260b Binary files /dev/null and b/assets/images/alljobs_ui_sample-db5910acbfb5cb6e07268e421729c9b6.png differ diff --git a/assets/images/api_clearing_decision-be4efb3e51aee7d6a3bb61e2714e969a.jpeg b/assets/images/api_clearing_decision-be4efb3e51aee7d6a3bb61e2714e969a.jpeg new file mode 100644 index 0000000000..9ce5868e2e Binary files /dev/null and b/assets/images/api_clearing_decision-be4efb3e51aee7d6a3bb61e2714e969a.jpeg differ diff --git a/assets/images/arch_ver.01-8c8c978ac3068d7508a4cecce69fea8b.jpg b/assets/images/arch_ver.01-8c8c978ac3068d7508a4cecce69fea8b.jpg new file mode 100644 index 0000000000..ccebc24bbe Binary files /dev/null and b/assets/images/arch_ver.01-8c8c978ac3068d7508a4cecce69fea8b.jpg differ diff --git a/assets/images/arch_ver.02-06b3ee26b706823713a4d33d6d02410d.png b/assets/images/arch_ver.02-06b3ee26b706823713a4d33d6d02410d.png new file mode 100644 index 0000000000..436af7777a Binary files /dev/null and b/assets/images/arch_ver.02-06b3ee26b706823713a4d33d6d02410d.png differ diff --git a/assets/images/author-a746aedb7f8c326a7bd277de7598f554.png b/assets/images/author-a746aedb7f8c326a7bd277de7598f554.png new file mode 100644 index 0000000000..7d2d478628 Binary files /dev/null and b/assets/images/author-a746aedb7f8c326a7bd277de7598f554.png differ diff --git a/assets/images/author_browser-88616f53e7ecbd87ebd096c8c11e186a.png b/assets/images/author_browser-88616f53e7ecbd87ebd096c8c11e186a.png new file mode 100644 index 0000000000..35c35c7ee8 Binary files /dev/null and b/assets/images/author_browser-88616f53e7ecbd87ebd096c8c11e186a.png differ diff --git a/assets/images/bannermsg-4823aa6620f5920623a09d26d9d1d75b.png b/assets/images/bannermsg-4823aa6620f5920623a09d26d9d1d75b.png new file mode 100644 index 0000000000..0acd85a5f7 Binary files /dev/null and b/assets/images/bannermsg-4823aa6620f5920623a09d26d9d1d75b.png differ diff --git a/assets/images/browseHeadings-5657c30548f2b8a9c2ddaa54a42cc484.png b/assets/images/browseHeadings-5657c30548f2b8a9c2ddaa54a42cc484.png new file mode 100644 index 0000000000..33005ebefe Binary files /dev/null and b/assets/images/browseHeadings-5657c30548f2b8a9c2ddaa54a42cc484.png differ diff --git a/assets/images/browsePagePagination-e24f8d3c38adf3f2623814248a37dac7.png b/assets/images/browsePagePagination-e24f8d3c38adf3f2623814248a37dac7.png new file mode 100644 index 0000000000..b09decd391 Binary files /dev/null and b/assets/images/browsePagePagination-e24f8d3c38adf3f2623814248a37dac7.png differ diff --git a/assets/images/browsePagePrototype-d861bb65981aa2db04b1df334e00418a.png b/assets/images/browsePagePrototype-d861bb65981aa2db04b1df334e00418a.png new file mode 100644 index 0000000000..03ab3d7b3b Binary files /dev/null and b/assets/images/browsePagePrototype-d861bb65981aa2db04b1df334e00418a.png differ diff --git a/assets/images/browse_pagination-3e2ff79b59e617faaa35bc8a5b1471ca.png b/assets/images/browse_pagination-3e2ff79b59e617faaa35bc8a5b1471ca.png new file mode 100644 index 0000000000..98b7039c33 Binary files /dev/null and b/assets/images/browse_pagination-3e2ff79b59e617faaa35bc8a5b1471ca.png differ diff --git a/assets/images/bucket_pool-18a0a724693ef1298085f84254abbc50.png b/assets/images/bucket_pool-18a0a724693ef1298085f84254abbc50.png new file mode 100644 index 0000000000..4bb2deffea Binary files /dev/null and b/assets/images/bucket_pool-18a0a724693ef1298085f84254abbc50.png differ diff --git a/assets/images/buggy_response-2236d90eaa295bf17c2d9b754026152d.png b/assets/images/buggy_response-2236d90eaa295bf17c2d9b754026152d.png new file mode 100644 index 0000000000..8a8c75f015 Binary files /dev/null and b/assets/images/buggy_response-2236d90eaa295bf17c2d9b754026152d.png differ diff --git a/assets/images/bulk_history-3a95b8187dc7152574b6bb18cd632cfd.png b/assets/images/bulk_history-3a95b8187dc7152574b6bb18cd632cfd.png new file mode 100644 index 0000000000..4caf4c902f Binary files /dev/null and b/assets/images/bulk_history-3a95b8187dc7152574b6bb18cd632cfd.png differ diff --git a/assets/images/c_arch-d1ca92e8b9c2cad3d510dabc21986f63.jpg b/assets/images/c_arch-d1ca92e8b9c2cad3d510dabc21986f63.jpg new file mode 100644 index 0000000000..4f2a7e16e8 Binary files /dev/null and b/assets/images/c_arch-d1ca92e8b9c2cad3d510dabc21986f63.jpg differ diff --git a/assets/images/callback-2237ca4dc507503de88da7cc5df3cdc1.png b/assets/images/callback-2237ca4dc507503de88da7cc5df3cdc1.png new file mode 100644 index 0000000000..d294d5a1a7 Binary files /dev/null and b/assets/images/callback-2237ca4dc507503de88da7cc5df3cdc1.png differ diff --git a/assets/images/candidateLicense-6be21cf88e252ffbc1030ff35e3c3c78.png b/assets/images/candidateLicense-6be21cf88e252ffbc1030ff35e3c3c78.png new file mode 100644 index 0000000000..775c7147df Binary files /dev/null and b/assets/images/candidateLicense-6be21cf88e252ffbc1030ff35e3c3c78.png differ diff --git a/assets/images/candidateLicenseDark-7d1f4d083ee66e0f6961341094b5092f.png b/assets/images/candidateLicenseDark-7d1f4d083ee66e0f6961341094b5092f.png new file mode 100644 index 0000000000..d06923425d Binary files /dev/null and b/assets/images/candidateLicenseDark-7d1f4d083ee66e0f6961341094b5092f.png differ diff --git a/assets/images/candidateLicensePagination-aab6bceec95d43a740a72a6ff5a26ca6.png b/assets/images/candidateLicensePagination-aab6bceec95d43a740a72a6ff5a26ca6.png new file mode 100644 index 0000000000..8a719cc90b Binary files /dev/null and b/assets/images/candidateLicensePagination-aab6bceec95d43a740a72a6ff5a26ca6.png differ diff --git a/assets/images/ceu-053339097b9a40d365624876f5a00bdb.png b/assets/images/ceu-053339097b9a40d365624876f5a00bdb.png new file mode 100644 index 0000000000..8aa4a4110b Binary files /dev/null and b/assets/images/ceu-053339097b9a40d365624876f5a00bdb.png differ diff --git a/assets/images/change_user_perm-b8d12b284d0c3cc36a129940e7219cad.png b/assets/images/change_user_perm-b8d12b284d0c3cc36a129940e7219cad.png new file mode 100644 index 0000000000..f32d4a4395 Binary files /dev/null and b/assets/images/change_user_perm-b8d12b284d0c3cc36a129940e7219cad.png differ diff --git a/assets/images/clearing_progress-f74dcad5df2a77c002cac74cede1e052.png b/assets/images/clearing_progress-f74dcad5df2a77c002cac74cede1e052.png new file mode 100644 index 0000000000..f7945b5099 Binary files /dev/null and b/assets/images/clearing_progress-f74dcad5df2a77c002cac74cede1e052.png differ diff --git a/assets/images/cliError-e9cc6fc35d9bde0c9b02c1f9051c743b.png b/assets/images/cliError-e9cc6fc35d9bde0c9b02c1f9051c743b.png new file mode 100644 index 0000000000..2d22b2b25d Binary files /dev/null and b/assets/images/cliError-e9cc6fc35d9bde0c9b02c1f9051c743b.png differ diff --git a/assets/images/confInfo_new-4854ca908333b089e4a02a0a0aac0bb6.png b/assets/images/confInfo_new-4854ca908333b089e4a02a0a0aac0bb6.png new file mode 100644 index 0000000000..61689a04fd Binary files /dev/null and b/assets/images/confInfo_new-4854ca908333b089e4a02a0a0aac0bb6.png differ diff --git a/assets/images/confinfo-c9c1bdc724e4ac099274ba800aff8337.png b/assets/images/confinfo-c9c1bdc724e4ac099274ba800aff8337.png new file mode 100644 index 0000000000..1083f71672 Binary files /dev/null and b/assets/images/confinfo-c9c1bdc724e4ac099274ba800aff8337.png differ diff --git a/assets/images/copyUpload-3903fa9ddf88b0d0e00fd19f3e9b9fc9.png b/assets/images/copyUpload-3903fa9ddf88b0d0e00fd19f3e9b9fc9.png new file mode 100644 index 0000000000..fe9d88a339 Binary files /dev/null and b/assets/images/copyUpload-3903fa9ddf88b0d0e00fd19f3e9b9fc9.png differ diff --git a/assets/images/copyrightBrowser-1cdee5a37cfa9e0666afc27cf8a0e90a.png b/assets/images/copyrightBrowser-1cdee5a37cfa9e0666afc27cf8a0e90a.png new file mode 100644 index 0000000000..146e57b6b9 Binary files /dev/null and b/assets/images/copyrightBrowser-1cdee5a37cfa9e0666afc27cf8a0e90a.png differ diff --git a/assets/images/copyrightTable-256df0b56bce95d94e411df7d4fd00f3.gif b/assets/images/copyrightTable-256df0b56bce95d94e411df7d4fd00f3.gif new file mode 100644 index 0000000000..ddbbe0d256 Binary files /dev/null and b/assets/images/copyrightTable-256df0b56bce95d94e411df7d4fd00f3.gif differ diff --git a/assets/images/copyrightTableDark-c6639f041b85fd7bfdca3017a1a1cd99.PNG b/assets/images/copyrightTableDark-c6639f041b85fd7bfdca3017a1a1cd99.PNG new file mode 100644 index 0000000000..036a97a67d Binary files /dev/null and b/assets/images/copyrightTableDark-c6639f041b85fd7bfdca3017a1a1cd99.PNG differ diff --git a/assets/images/copyright_browser-aa3473abef1d74b6b45e8176064843bd.png b/assets/images/copyright_browser-aa3473abef1d74b6b45e8176064843bd.png new file mode 100644 index 0000000000..8b8e20b32a Binary files /dev/null and b/assets/images/copyright_browser-aa3473abef1d74b6b45e8176064843bd.png differ diff --git a/assets/images/crud_adminack_req-24bcc89441faa7fb3e8a6c5acecca27b.png b/assets/images/crud_adminack_req-24bcc89441faa7fb3e8a6c5acecca27b.png new file mode 100644 index 0000000000..e07e857c4e Binary files /dev/null and b/assets/images/crud_adminack_req-24bcc89441faa7fb3e8a6c5acecca27b.png differ diff --git a/assets/images/crud_adminack_res-8abc1545353d62767f67b85a43201ac7.png b/assets/images/crud_adminack_res-8abc1545353d62767f67b85a43201ac7.png new file mode 100644 index 0000000000..0c8657bb5c Binary files /dev/null and b/assets/images/crud_adminack_res-8abc1545353d62767f67b85a43201ac7.png differ diff --git a/assets/images/crud_license_decision_req-d62850310f9b695698511a3ef2e100c1.png b/assets/images/crud_license_decision_req-d62850310f9b695698511a3ef2e100c1.png new file mode 100644 index 0000000000..bb7442041f Binary files /dev/null and b/assets/images/crud_license_decision_req-d62850310f9b695698511a3ef2e100c1.png differ diff --git a/assets/images/crud_license_decision_res-dfbc8088a9cc84f51e36b56792ea0390.png b/assets/images/crud_license_decision_res-dfbc8088a9cc84f51e36b56792ea0390.png new file mode 100644 index 0000000000..3b529f6c9c Binary files /dev/null and b/assets/images/crud_license_decision_res-dfbc8088a9cc84f51e36b56792ea0390.png differ diff --git a/assets/images/crud_stdcomments_req-c05cfc74887e3a2bd3f5a6715ce663a9.png b/assets/images/crud_stdcomments_req-c05cfc74887e3a2bd3f5a6715ce663a9.png new file mode 100644 index 0000000000..0f6904d143 Binary files /dev/null and b/assets/images/crud_stdcomments_req-c05cfc74887e3a2bd3f5a6715ce663a9.png differ diff --git a/assets/images/crud_stdcomments_res-fd4cf9718133f660a6fb6d191658bd56.png b/assets/images/crud_stdcomments_res-fd4cf9718133f660a6fb6d191658bd56.png new file mode 100644 index 0000000000..a4a4cfff22 Binary files /dev/null and b/assets/images/crud_stdcomments_res-fd4cf9718133f660a6fb6d191658bd56.png differ diff --git a/assets/images/cusomise-8a5c0a138239577da966e131ad20d26d.png b/assets/images/cusomise-8a5c0a138239577da966e131ad20d26d.png new file mode 100644 index 0000000000..782c695667 Binary files /dev/null and b/assets/images/cusomise-8a5c0a138239577da966e131ad20d26d.png differ diff --git a/assets/images/customAlert-0484d57e939c6e186775d7e238e69049.png b/assets/images/customAlert-0484d57e939c6e186775d7e238e69049.png new file mode 100644 index 0000000000..a02e9888c7 Binary files /dev/null and b/assets/images/customAlert-0484d57e939c6e186775d7e238e69049.png differ diff --git a/assets/images/customLicenseText-c6b849e7963f7599fedbb533cb497f81.png b/assets/images/customLicenseText-c6b849e7963f7599fedbb533cb497f81.png new file mode 100644 index 0000000000..d99e71b67d Binary files /dev/null and b/assets/images/customLicenseText-c6b849e7963f7599fedbb533cb497f81.png differ diff --git a/assets/images/customiseData-cf3bf9353a8f64c457ce22af03cd6969.png b/assets/images/customiseData-cf3bf9353a8f64c457ce22af03cd6969.png new file mode 100644 index 0000000000..8072842d1a Binary files /dev/null and b/assets/images/customiseData-cf3bf9353a8f64c457ce22af03cd6969.png differ diff --git a/assets/images/dangerSnackbar-b60dd15fbcdca60bbb7c6468ee468284.png b/assets/images/dangerSnackbar-b60dd15fbcdca60bbb7c6468ee468284.png new file mode 100644 index 0000000000..31e3cd0182 Binary files /dev/null and b/assets/images/dangerSnackbar-b60dd15fbcdca60bbb7c6468ee468284.png differ diff --git a/assets/images/darkTheme-963b8362ca7f9f6409cbcd0e9da0a79d.png b/assets/images/darkTheme-963b8362ca7f9f6409cbcd0e9da0a79d.png new file mode 100644 index 0000000000..1c2997a424 Binary files /dev/null and b/assets/images/darkTheme-963b8362ca7f9f6409cbcd0e9da0a79d.png differ diff --git a/assets/images/deletable_groups-3e96ef5ffbb94b1fc2f9d496e42d0d80.png b/assets/images/deletable_groups-3e96ef5ffbb94b1fc2f9d496e42d0d80.png new file mode 100644 index 0000000000..1d65355b87 Binary files /dev/null and b/assets/images/deletable_groups-3e96ef5ffbb94b1fc2f9d496e42d0d80.png differ diff --git a/assets/images/deleteUploads-60bb558a4cd905381f0875fc020960e8.png b/assets/images/deleteUploads-60bb558a4cd905381f0875fc020960e8.png new file mode 100644 index 0000000000..3beddb21a3 Binary files /dev/null and b/assets/images/deleteUploads-60bb558a4cd905381f0875fc020960e8.png differ diff --git a/assets/images/delete_api_1-8a274d0d4d0dc294a76391d8f580120d.png b/assets/images/delete_api_1-8a274d0d4d0dc294a76391d8f580120d.png new file mode 100644 index 0000000000..ae7abe1c78 Binary files /dev/null and b/assets/images/delete_api_1-8a274d0d4d0dc294a76391d8f580120d.png differ diff --git a/assets/images/delete_api_2-90c0e057689b0696117a0a467d2c9dba.png b/assets/images/delete_api_2-90c0e057689b0696117a0a467d2c9dba.png new file mode 100644 index 0000000000..0c2b4699d0 Binary files /dev/null and b/assets/images/delete_api_2-90c0e057689b0696117a0a467d2c9dba.png differ diff --git a/assets/images/delete_group-d7acbbd3ba6d7f9381b4bad753189583.png b/assets/images/delete_group-d7acbbd3ba6d7f9381b4bad753189583.png new file mode 100644 index 0000000000..dca192be78 Binary files /dev/null and b/assets/images/delete_group-d7acbbd3ba6d7f9381b4bad753189583.png differ diff --git a/assets/images/delete_group_popup-04d6b5d953c020b08977a1da0ecfd94a.png b/assets/images/delete_group_popup-04d6b5d953c020b08977a1da0ecfd94a.png new file mode 100644 index 0000000000..dc3f8b807b Binary files /dev/null and b/assets/images/delete_group_popup-04d6b5d953c020b08977a1da0ecfd94a.png differ diff --git a/assets/images/delete_license_case_1-39b3301efaa0e43e9ca2a25e49050888.png b/assets/images/delete_license_case_1-39b3301efaa0e43e9ca2a25e49050888.png new file mode 100644 index 0000000000..40a038fb7a Binary files /dev/null and b/assets/images/delete_license_case_1-39b3301efaa0e43e9ca2a25e49050888.png differ diff --git a/assets/images/delete_license_case_2-4066cd83afbe500bb264ba298ed999c7.png b/assets/images/delete_license_case_2-4066cd83afbe500bb264ba298ed999c7.png new file mode 100644 index 0000000000..cc1c4af390 Binary files /dev/null and b/assets/images/delete_license_case_2-4066cd83afbe500bb264ba298ed999c7.png differ diff --git a/assets/images/delete_license_case_3-d8dc9ee65b5cf7e12ae7af985ad91572.png b/assets/images/delete_license_case_3-d8dc9ee65b5cf7e12ae7af985ad91572.png new file mode 100644 index 0000000000..768f252bfb Binary files /dev/null and b/assets/images/delete_license_case_3-d8dc9ee65b5cf7e12ae7af985ad91572.png differ diff --git a/assets/images/delete_license_decision-641e822431bba899f2455cb80d135851.png b/assets/images/delete_license_decision-641e822431bba899f2455cb80d135851.png new file mode 100644 index 0000000000..bdf411cad6 Binary files /dev/null and b/assets/images/delete_license_decision-641e822431bba899f2455cb80d135851.png differ diff --git a/assets/images/delete_main_license-536ab202b0fe42a27fe361e3d30901ad.png b/assets/images/delete_main_license-536ab202b0fe42a27fe361e3d30901ad.png new file mode 100644 index 0000000000..5f58d35e4b Binary files /dev/null and b/assets/images/delete_main_license-536ab202b0fe42a27fe361e3d30901ad.png differ diff --git a/assets/images/deletecopyright-f8fee4567f573cc229c80f21e171a255.png b/assets/images/deletecopyright-f8fee4567f573cc229c80f21e171a255.png new file mode 100644 index 0000000000..eb1f9c3c89 Binary files /dev/null and b/assets/images/deletecopyright-f8fee4567f573cc229c80f21e171a255.png differ diff --git a/assets/images/docs_api_res-b674d5af3e54afbc846fcbb7d9299054.png b/assets/images/docs_api_res-b674d5af3e54afbc846fcbb7d9299054.png new file mode 100644 index 0000000000..c42e4cddc1 Binary files /dev/null and b/assets/images/docs_api_res-b674d5af3e54afbc846fcbb7d9299054.png differ diff --git a/assets/images/download_response-1fc1fede99cfcf413d30956b7aba99e0.png b/assets/images/download_response-1fc1fede99cfcf413d30956b7aba99e0.png new file mode 100644 index 0000000000..542421432b Binary files /dev/null and b/assets/images/download_response-1fc1fede99cfcf413d30956b7aba99e0.png differ diff --git a/assets/images/ecc-b63ca5a281b3a2587c00093b3cc45e7c.png b/assets/images/ecc-b63ca5a281b3a2587c00093b3cc45e7c.png new file mode 100644 index 0000000000..d1399d3e83 Binary files /dev/null and b/assets/images/ecc-b63ca5a281b3a2587c00093b3cc45e7c.png differ diff --git a/assets/images/editExpressionModal-fc64ff8211bd386519d14c447ed2099c.png b/assets/images/editExpressionModal-fc64ff8211bd386519d14c447ed2099c.png new file mode 100644 index 0000000000..a506535643 Binary files /dev/null and b/assets/images/editExpressionModal-fc64ff8211bd386519d14c447ed2099c.png differ diff --git a/assets/images/editReqUpdated-e32531e0dd1e9cd052620f1ce2bde91d.png b/assets/images/editReqUpdated-e32531e0dd1e9cd052620f1ce2bde91d.png new file mode 100644 index 0000000000..f98528f7a5 Binary files /dev/null and b/assets/images/editReqUpdated-e32531e0dd1e9cd052620f1ce2bde91d.png differ diff --git a/assets/images/editUpload-a6a5602484bae59bb842e78926bd1cc4.png b/assets/images/editUpload-a6a5602484bae59bb842e78926bd1cc4.png new file mode 100644 index 0000000000..602ca88e3d Binary files /dev/null and b/assets/images/editUpload-a6a5602484bae59bb842e78926bd1cc4.png differ diff --git a/assets/images/editUploadPostman-47adc2d9cd76f77810aa2d5faed9a8c8.png b/assets/images/editUploadPostman-47adc2d9cd76f77810aa2d5faed9a8c8.png new file mode 100644 index 0000000000..54e19ece10 Binary files /dev/null and b/assets/images/editUploadPostman-47adc2d9cd76f77810aa2d5faed9a8c8.png differ diff --git a/assets/images/editUploadSwagger-98725f506c4cff98f760f67a01d32ad1.png b/assets/images/editUploadSwagger-98725f506c4cff98f760f67a01d32ad1.png new file mode 100644 index 0000000000..7dccb4b341 Binary files /dev/null and b/assets/images/editUploadSwagger-98725f506c4cff98f760f67a01d32ad1.png differ diff --git a/assets/images/errorPassing-7b7b059e124d63326cab3e4e14b0f4f2.png b/assets/images/errorPassing-7b7b059e124d63326cab3e4e14b0f4f2.png new file mode 100644 index 0000000000..cbf162e259 Binary files /dev/null and b/assets/images/errorPassing-7b7b059e124d63326cab3e4e14b0f4f2.png differ diff --git a/assets/images/exportReport-65451863fc80d01aef1531513d2a3d03.png b/assets/images/exportReport-65451863fc80d01aef1531513d2a3d03.png new file mode 100644 index 0000000000..250b5196d7 Binary files /dev/null and b/assets/images/exportReport-65451863fc80d01aef1531513d2a3d03.png differ diff --git a/assets/images/export_licenses_list-bd524bfc94f2bf765cc569ea7a85362c.png b/assets/images/export_licenses_list-bd524bfc94f2bf765cc569ea7a85362c.png new file mode 100644 index 0000000000..669ac99607 Binary files /dev/null and b/assets/images/export_licenses_list-bd524bfc94f2bf765cc569ea7a85362c.png differ diff --git a/assets/images/export_obligation_list-a167c6fa51dbe9b16cadca406476e875.png b/assets/images/export_obligation_list-a167c6fa51dbe9b16cadca406476e875.png new file mode 100644 index 0000000000..224dd31856 Binary files /dev/null and b/assets/images/export_obligation_list-a167c6fa51dbe9b16cadca406476e875.png differ diff --git a/assets/images/features-f7a21050ae1e73caad93deda70cdbbee.png b/assets/images/features-f7a21050ae1e73caad93deda70cdbbee.png new file mode 100644 index 0000000000..ae030d7611 Binary files /dev/null and b/assets/images/features-f7a21050ae1e73caad93deda70cdbbee.png differ diff --git a/assets/images/fileBrowser-999c42d67e4be69110f85cb64faab8cb.png b/assets/images/fileBrowser-999c42d67e4be69110f85cb64faab8cb.png new file mode 100644 index 0000000000..35e5bec95c Binary files /dev/null and b/assets/images/fileBrowser-999c42d67e4be69110f85cb64faab8cb.png differ diff --git a/assets/images/fileinfo-5acaf89fee8b2d7b52c01941d863b881.png b/assets/images/fileinfo-5acaf89fee8b2d7b52c01941d863b881.png new file mode 100644 index 0000000000..43cdeab8a6 Binary files /dev/null and b/assets/images/fileinfo-5acaf89fee8b2d7b52c01941d863b881.png differ diff --git a/assets/images/fixDeleteUploads-b9caee8a86a0dafa764817a1916270e1.png b/assets/images/fixDeleteUploads-b9caee8a86a0dafa764817a1916270e1.png new file mode 100644 index 0000000000..aa92697276 Binary files /dev/null and b/assets/images/fixDeleteUploads-b9caee8a86a0dafa764817a1916270e1.png differ diff --git a/assets/images/fixError-1c1b3d3126955950c91c26d2ba353375.png b/assets/images/fixError-1c1b3d3126955950c91c26d2ba353375.png new file mode 100644 index 0000000000..0b90ddbfd1 Binary files /dev/null and b/assets/images/fixError-1c1b3d3126955950c91c26d2ba353375.png differ diff --git a/assets/images/fixedFooter-cb4f75754a6e4e7fe25b3c3b1ed98472.png b/assets/images/fixedFooter-cb4f75754a6e4e7fe25b3c3b1ed98472.png new file mode 100644 index 0000000000..ea2ad0d5bb Binary files /dev/null and b/assets/images/fixedFooter-cb4f75754a6e4e7fe25b3c3b1ed98472.png differ diff --git a/assets/images/fixedSnackbar-46efd6d1cbfc473d11fd98ba1a16df3b.png b/assets/images/fixedSnackbar-46efd6d1cbfc473d11fd98ba1a16df3b.png new file mode 100644 index 0000000000..1a6a442309 Binary files /dev/null and b/assets/images/fixedSnackbar-46efd6d1cbfc473d11fd98ba1a16df3b.png differ diff --git a/assets/images/fixedSnackbarSearch-7dfd1fda24b3e226b8e5efe2ffeb5568.png b/assets/images/fixedSnackbarSearch-7dfd1fda24b3e226b8e5efe2ffeb5568.png new file mode 100644 index 0000000000..2ec3fe7b05 Binary files /dev/null and b/assets/images/fixedSnackbarSearch-7dfd1fda24b3e226b8e5efe2ffeb5568.png differ diff --git a/assets/images/folder_removable_contents-809b1dc17d1f83bfe989a845488ae55c.png b/assets/images/folder_removable_contents-809b1dc17d1f83bfe989a845488ae55c.png new file mode 100644 index 0000000000..5562478aa6 Binary files /dev/null and b/assets/images/folder_removable_contents-809b1dc17d1f83bfe989a845488ae55c.png differ diff --git a/assets/images/footer-38b59fcfc085ebc039f2a2a344e06b25.png b/assets/images/footer-38b59fcfc085ebc039f2a2a344e06b25.png new file mode 100644 index 0000000000..c78c0f968c Binary files /dev/null and b/assets/images/footer-38b59fcfc085ebc039f2a2a344e06b25.png differ diff --git a/assets/images/foss-action-test-853f4c317ee136caa6f02eb615928660.png b/assets/images/foss-action-test-853f4c317ee136caa6f02eb615928660.png new file mode 100644 index 0000000000..d2a7109b8f Binary files /dev/null and b/assets/images/foss-action-test-853f4c317ee136caa6f02eb615928660.png differ diff --git a/assets/images/fossy-f73de2963edcd49e642260bd71293424.png b/assets/images/fossy-f73de2963edcd49e642260bd71293424.png new file mode 100644 index 0000000000..49135f0478 Binary files /dev/null and b/assets/images/fossy-f73de2963edcd49e642260bd71293424.png differ diff --git a/assets/images/fossy_response-5cad91f1257d7fde183ebfe90812d3a6.png b/assets/images/fossy_response-5cad91f1257d7fde183ebfe90812d3a6.png new file mode 100644 index 0000000000..d8fa22fe8b Binary files /dev/null and b/assets/images/fossy_response-5cad91f1257d7fde183ebfe90812d3a6.png differ diff --git a/assets/images/getInfoHeader-1158582578376263db72dad1ac12c662.png b/assets/images/getInfoHeader-1158582578376263db72dad1ac12c662.png new file mode 100644 index 0000000000..66867e6a66 Binary files /dev/null and b/assets/images/getInfoHeader-1158582578376263db72dad1ac12c662.png differ diff --git a/assets/images/get_active_queries-7fb888e122a8a1ba139c29808536e636.png b/assets/images/get_active_queries-7fb888e122a8a1ba139c29808536e636.png new file mode 100644 index 0000000000..abe235b1a8 Binary files /dev/null and b/assets/images/get_active_queries-7fb888e122a8a1ba139c29808536e636.png differ diff --git a/assets/images/get_all_admin_acknowledgements-66aa3a64afd2539ca119d56018ab92de.png b/assets/images/get_all_admin_acknowledgements-66aa3a64afd2539ca119d56018ab92de.png new file mode 100644 index 0000000000..46e1a1a0f6 Binary files /dev/null and b/assets/images/get_all_admin_acknowledgements-66aa3a64afd2539ca119d56018ab92de.png differ diff --git a/assets/images/get_all_agents-a11f04690ba810029d9f1cc1f35f39ce.png b/assets/images/get_all_agents-a11f04690ba810029d9f1cc1f35f39ce.png new file mode 100644 index 0000000000..0dc4c0d309 Binary files /dev/null and b/assets/images/get_all_agents-a11f04690ba810029d9f1cc1f35f39ce.png differ diff --git a/assets/images/get_all_agents_revision-d1bc7c9ae8b0d141bb6c03e68e2cbbb6.png b/assets/images/get_all_agents_revision-d1bc7c9ae8b0d141bb6c03e68e2cbbb6.png new file mode 100644 index 0000000000..f07702228b Binary files /dev/null and b/assets/images/get_all_agents_revision-d1bc7c9ae8b0d141bb6c03e68e2cbbb6.png differ diff --git a/assets/images/get_all_license_decisions-f4808072942acbd465ce1a500e9121f2.png b/assets/images/get_all_license_decisions-f4808072942acbd465ce1a500e9121f2.png new file mode 100644 index 0000000000..d24a768204 Binary files /dev/null and b/assets/images/get_all_license_decisions-f4808072942acbd465ce1a500e9121f2.png differ diff --git a/assets/images/get_all_server_jobs-066859e86e6afc50974756f6b7598a46.png b/assets/images/get_all_server_jobs-066859e86e6afc50974756f6b7598a46.png new file mode 100644 index 0000000000..db32e24d10 Binary files /dev/null and b/assets/images/get_all_server_jobs-066859e86e6afc50974756f6b7598a46.png differ diff --git a/assets/images/get_candidates-21d5016c4c46e78b551b8cd2f1ac24ed.png b/assets/images/get_candidates-21d5016c4c46e78b551b8cd2f1ac24ed.png new file mode 100644 index 0000000000..57c46ff32d Binary files /dev/null and b/assets/images/get_candidates-21d5016c4c46e78b551b8cd2f1ac24ed.png differ diff --git a/assets/images/get_clearing_history-7cc330fbefe29e25a978e7bffabcd0d0.png b/assets/images/get_clearing_history-7cc330fbefe29e25a978e7bffabcd0d0.png new file mode 100644 index 0000000000..ac06c4d794 Binary files /dev/null and b/assets/images/get_clearing_history-7cc330fbefe29e25a978e7bffabcd0d0.png differ diff --git a/assets/images/get_clearing_progress-f74dcad5df2a77c002cac74cede1e052.png b/assets/images/get_clearing_progress-f74dcad5df2a77c002cac74cede1e052.png new file mode 100644 index 0000000000..f7945b5099 Binary files /dev/null and b/assets/images/get_clearing_progress-f74dcad5df2a77c002cac74cede1e052.png differ diff --git a/assets/images/get_database_contents-5d72acf66a6653da3e48fca364a01a18.png b/assets/images/get_database_contents-5d72acf66a6653da3e48fca364a01a18.png new file mode 100644 index 0000000000..6628dbae6e Binary files /dev/null and b/assets/images/get_database_contents-5d72acf66a6653da3e48fca364a01a18.png differ diff --git a/assets/images/get_database_metrics-193353e0a5424e32bfb9f381fad86ea1.png b/assets/images/get_database_metrics-193353e0a5424e32bfb9f381fad86ea1.png new file mode 100644 index 0000000000..5120171727 Binary files /dev/null and b/assets/images/get_database_metrics-193353e0a5424e32bfb9f381fad86ea1.png differ diff --git a/assets/images/get_disk_usage-0eb13fef53bee2ff70b4c18d95ef66f7.png b/assets/images/get_disk_usage-0eb13fef53bee2ff70b4c18d95ef66f7.png new file mode 100644 index 0000000000..7b4779bcf4 Binary files /dev/null and b/assets/images/get_disk_usage-0eb13fef53bee2ff70b4c18d95ef66f7.png differ diff --git a/assets/images/get_edited_licenses-e8aefc3e60cfda4c070549126906a981.png b/assets/images/get_edited_licenses-e8aefc3e60cfda4c070549126906a981.png new file mode 100644 index 0000000000..daeefd2eb3 Binary files /dev/null and b/assets/images/get_edited_licenses-e8aefc3e60cfda4c070549126906a981.png differ diff --git a/assets/images/get_file_contents-bd9efecd42f25d4941ffcf68a2907283.png b/assets/images/get_file_contents-bd9efecd42f25d4941ffcf68a2907283.png new file mode 100644 index 0000000000..11839f0c7c Binary files /dev/null and b/assets/images/get_file_contents-bd9efecd42f25d4941ffcf68a2907283.png differ diff --git a/assets/images/get_folder_contents-170b3375cea8e6629e64180a04e04738.png b/assets/images/get_folder_contents-170b3375cea8e6629e64180a04e04738.png new file mode 100644 index 0000000000..537d5c606a Binary files /dev/null and b/assets/images/get_folder_contents-170b3375cea8e6629e64180a04e04738.png differ diff --git a/assets/images/get_group_members1-42d8ffb6086d126bc813172f9732c4a1.png b/assets/images/get_group_members1-42d8ffb6086d126bc813172f9732c4a1.png new file mode 100644 index 0000000000..929a1982ad Binary files /dev/null and b/assets/images/get_group_members1-42d8ffb6086d126bc813172f9732c4a1.png differ diff --git a/assets/images/get_group_members2-c9b3fcac25bf1d0a38b1e8db7285cb9d.png b/assets/images/get_group_members2-c9b3fcac25bf1d0a38b1e8db7285cb9d.png new file mode 100644 index 0000000000..f9d0792d12 Binary files /dev/null and b/assets/images/get_group_members2-c9b3fcac25bf1d0a38b1e8db7285cb9d.png differ diff --git a/assets/images/get_jobs_summary_stat-a23f131146a7589448f34a893f966cba.png b/assets/images/get_jobs_summary_stat-a23f131146a7589448f34a893f966cba.png new file mode 100644 index 0000000000..46294b4238 Binary files /dev/null and b/assets/images/get_jobs_summary_stat-a23f131146a7589448f34a893f966cba.png differ diff --git a/assets/images/get_licenses_count_summary-9e2b0cec62490375a1d10a6360f7a799.png b/assets/images/get_licenses_count_summary-9e2b0cec62490375a1d10a6360f7a799.png new file mode 100644 index 0000000000..829e74bc2e Binary files /dev/null and b/assets/images/get_licenses_count_summary-9e2b0cec62490375a1d10a6360f7a799.png differ diff --git a/assets/images/get_licenses_histogram-c2f9802e9e44718de1f383e6f184c17e.png b/assets/images/get_licenses_histogram-c2f9802e9e44718de1f383e6f184c17e.png new file mode 100644 index 0000000000..2dde54d321 Binary files /dev/null and b/assets/images/get_licenses_histogram-c2f9802e9e44718de1f383e6f184c17e.png differ diff --git a/assets/images/get_licenses_reuse_summary-7e10e68d6251f329829cf4691122693e.png b/assets/images/get_licenses_reuse_summary-7e10e68d6251f329829cf4691122693e.png new file mode 100644 index 0000000000..c91be07abb Binary files /dev/null and b/assets/images/get_licenses_reuse_summary-7e10e68d6251f329829cf4691122693e.png differ diff --git a/assets/images/get_main_licenses-1437c07a62affeb3f918e6dd81c438ee.png b/assets/images/get_main_licenses-1437c07a62affeb3f918e6dd81c438ee.png new file mode 100644 index 0000000000..38d74c84ea Binary files /dev/null and b/assets/images/get_main_licenses-1437c07a62affeb3f918e6dd81c438ee.png differ diff --git a/assets/images/get_php_info-bbe9e9fe8ed55c027824d6495ce92cb2.png b/assets/images/get_php_info-bbe9e9fe8ed55c027824d6495ce92cb2.png new file mode 100644 index 0000000000..4b9dc2fc68 Binary files /dev/null and b/assets/images/get_php_info-bbe9e9fe8ed55c027824d6495ce92cb2.png differ diff --git a/assets/images/get_scanned_licenses-c468b61ecf8fe8efc96e745d1c3459dc.png b/assets/images/get_scanned_licenses-c468b61ecf8fe8efc96e745d1c3459dc.png new file mode 100644 index 0000000000..6e99bb8283 Binary files /dev/null and b/assets/images/get_scanned_licenses-c468b61ecf8fe8efc96e745d1c3459dc.png differ diff --git a/assets/images/get_scheduler_options-c146c9f3fd3d4a1fa128e5a254524487.png b/assets/images/get_scheduler_options-c146c9f3fd3d4a1fa128e5a254524487.png new file mode 100644 index 0000000000..9efc233947 Binary files /dev/null and b/assets/images/get_scheduler_options-c146c9f3fd3d4a1fa128e5a254524487.png differ diff --git a/assets/images/getcopyrights-06aeccd55b70f6be24ba4174aafec7a2.png b/assets/images/getcopyrights-06aeccd55b70f6be24ba4174aafec7a2.png new file mode 100644 index 0000000000..c039e47167 Binary files /dev/null and b/assets/images/getcopyrights-06aeccd55b70f6be24ba4174aafec7a2.png differ diff --git a/assets/images/getinactivecopyrights-dc2dda95ae662a92db3212f89d04a197.png b/assets/images/getinactivecopyrights-dc2dda95ae662a92db3212f89d04a197.png new file mode 100644 index 0000000000..d933b990d2 Binary files /dev/null and b/assets/images/getinactivecopyrights-dc2dda95ae662a92db3212f89d04a197.png differ diff --git a/assets/images/github_diff_payload-a519cbe00d6bd57194c29c5c7e5fc8b1.png b/assets/images/github_diff_payload-a519cbe00d6bd57194c29c5c7e5fc8b1.png new file mode 100644 index 0000000000..9026edd7cf Binary files /dev/null and b/assets/images/github_diff_payload-a519cbe00d6bd57194c29c5c7e5fc8b1.png differ diff --git a/assets/images/gitlab_diff_payload-cf6ef4739f3f27b3663495fd600a3a1a.png b/assets/images/gitlab_diff_payload-cf6ef4739f3f27b3663495fd600a3a1a.png new file mode 100644 index 0000000000..566f47c93b Binary files /dev/null and b/assets/images/gitlab_diff_payload-cf6ef4739f3f27b3663495fd600a3a1a.png differ diff --git a/assets/images/golang_arch-845b2fcaba867fd8c16c3061cf774283.png b/assets/images/golang_arch-845b2fcaba867fd8c16c3061cf774283.png new file mode 100644 index 0000000000..32902562f0 Binary files /dev/null and b/assets/images/golang_arch-845b2fcaba867fd8c16c3061cf774283.png differ diff --git a/assets/images/groupNameDark-b5eeb637ee1934fbfa957a867ef79d22.png b/assets/images/groupNameDark-b5eeb637ee1934fbfa957a867ef79d22.png new file mode 100644 index 0000000000..62dddeedc6 Binary files /dev/null and b/assets/images/groupNameDark-b5eeb637ee1934fbfa957a867ef79d22.png differ diff --git a/assets/images/groupNameLight-2d3d99b34aa92b4ecd59254372db6357.png b/assets/images/groupNameLight-2d3d99b34aa92b4ecd59254372db6357.png new file mode 100644 index 0000000000..27ca530cac Binary files /dev/null and b/assets/images/groupNameLight-2d3d99b34aa92b4ecd59254372db6357.png differ diff --git a/assets/images/gsoc21participants-67436715411a381980daa1f0b4468da4.png b/assets/images/gsoc21participants-67436715411a381980daa1f0b4468da4.png new file mode 100644 index 0000000000..a68fb58d44 Binary files /dev/null and b/assets/images/gsoc21participants-67436715411a381980daa1f0b4468da4.png differ diff --git a/assets/images/gsoc22participants1-12b58de157e8777d3d7d3e57b6fd3fd7.png b/assets/images/gsoc22participants1-12b58de157e8777d3d7d3e57b6fd3fd7.png new file mode 100644 index 0000000000..ef96b2e130 Binary files /dev/null and b/assets/images/gsoc22participants1-12b58de157e8777d3d7d3e57b6fd3fd7.png differ diff --git a/assets/images/gsoc22participants2-818c6b8379164912f571b9a3ec8cc147.png b/assets/images/gsoc22participants2-818c6b8379164912f571b9a3ec8cc147.png new file mode 100644 index 0000000000..65919ea21d Binary files /dev/null and b/assets/images/gsoc22participants2-818c6b8379164912f571b9a3ec8cc147.png differ diff --git a/assets/images/gsoc22participants3-bfc820eba1b1592949e396d757dff2d2.png b/assets/images/gsoc22participants3-bfc820eba1b1592949e396d757dff2d2.png new file mode 100644 index 0000000000..7276344b6a Binary files /dev/null and b/assets/images/gsoc22participants3-bfc820eba1b1592949e396d757dff2d2.png differ diff --git a/assets/images/gsoc23participants1-8b266099ad2289e665e2e16f87f86129.png b/assets/images/gsoc23participants1-8b266099ad2289e665e2e16f87f86129.png new file mode 100644 index 0000000000..ee90e06b75 Binary files /dev/null and b/assets/images/gsoc23participants1-8b266099ad2289e665e2e16f87f86129.png differ diff --git a/assets/images/gsoc23participants2-3a7dfe93623ef8f61176f8d64876d0f0.png b/assets/images/gsoc23participants2-3a7dfe93623ef8f61176f8d64876d0f0.png new file mode 100644 index 0000000000..0ae1b744a0 Binary files /dev/null and b/assets/images/gsoc23participants2-3a7dfe93623ef8f61176f8d64876d0f0.png differ diff --git a/assets/images/gsoc23participants3-ac6a5bf213e6d783d50547cd298e65cc.png b/assets/images/gsoc23participants3-ac6a5bf213e6d783d50547cd298e65cc.png new file mode 100644 index 0000000000..bbef644478 Binary files /dev/null and b/assets/images/gsoc23participants3-ac6a5bf213e6d783d50547cd298e65cc.png differ diff --git a/assets/images/gsocHeader-9c68b2e9a3bb20c084f9b50beaa83c12.png b/assets/images/gsocHeader-9c68b2e9a3bb20c084f9b50beaa83c12.png new file mode 100644 index 0000000000..93e26acde3 Binary files /dev/null and b/assets/images/gsocHeader-9c68b2e9a3bb20c084f9b50beaa83c12.png differ diff --git a/assets/images/header-e456cce1acfc8bd706ec82e61909e4c6.png b/assets/images/header-e456cce1acfc8bd706ec82e61909e4c6.png new file mode 100644 index 0000000000..fa40f62387 Binary files /dev/null and b/assets/images/header-e456cce1acfc8bd706ec82e61909e4c6.png differ diff --git a/assets/images/headerActive-9e8c070b26a266a40e45cb2e1d024e88.png b/assets/images/headerActive-9e8c070b26a266a40e45cb2e1d024e88.png new file mode 100644 index 0000000000..e53b3bb0fb Binary files /dev/null and b/assets/images/headerActive-9e8c070b26a266a40e45cb2e1d024e88.png differ diff --git a/assets/images/headerDropdown-404d20bd018c65c42934304f856aa1c6.png b/assets/images/headerDropdown-404d20bd018c65c42934304f856aa1c6.png new file mode 100644 index 0000000000..0a5bdf5304 Binary files /dev/null and b/assets/images/headerDropdown-404d20bd018c65c42934304f856aa1c6.png differ diff --git a/assets/images/headerHover-ef71a7d8a776e1882f4d8fa47473be30.png b/assets/images/headerHover-ef71a7d8a776e1882f4d8fa47473be30.png new file mode 100644 index 0000000000..4fcf41177f Binary files /dev/null and b/assets/images/headerHover-ef71a7d8a776e1882f4d8fa47473be30.png differ diff --git a/assets/images/headerSubDropdown-bff5003569a35ccf7b9524debb7a2ab2.png b/assets/images/headerSubDropdown-bff5003569a35ccf7b9524debb7a2ab2.png new file mode 100644 index 0000000000..8fccb92d07 Binary files /dev/null and b/assets/images/headerSubDropdown-bff5003569a35ccf7b9524debb7a2ab2.png differ diff --git a/assets/images/helpOverview-a5d657c6e468936e6dd91b8e1678f1dd.png b/assets/images/helpOverview-a5d657c6e468936e6dd91b8e1678f1dd.png new file mode 100644 index 0000000000..82f727c368 Binary files /dev/null and b/assets/images/helpOverview-a5d657c6e468936e6dd91b8e1678f1dd.png differ diff --git a/assets/images/hiddenLoginForm-3f2c92d7a03de437320cd44215b33a3a.png b/assets/images/hiddenLoginForm-3f2c92d7a03de437320cd44215b33a3a.png new file mode 100644 index 0000000000..63690af544 Binary files /dev/null and b/assets/images/hiddenLoginForm-3f2c92d7a03de437320cd44215b33a3a.png differ diff --git a/assets/images/highlight_positions-28bfaf48c5b9ce1017c5a9723d0e8fe3.png b/assets/images/highlight_positions-28bfaf48c5b9ce1017c5a9723d0e8fe3.png new file mode 100644 index 0000000000..9d0ac738e9 Binary files /dev/null and b/assets/images/highlight_positions-28bfaf48c5b9ce1017c5a9723d0e8fe3.png differ diff --git a/assets/images/highlightedCurrentGroup-9dc2a34210c7ee8e8ef3f334f49ba7e1.png b/assets/images/highlightedCurrentGroup-9dc2a34210c7ee8e8ef3f334f49ba7e1.png new file mode 100644 index 0000000000..b4c1636f91 Binary files /dev/null and b/assets/images/highlightedCurrentGroup-9dc2a34210c7ee8e8ef3f334f49ba7e1.png differ diff --git a/assets/images/home-63e0bdbb0e546c592511e061cae13b46.png b/assets/images/home-63e0bdbb0e546c592511e061cae13b46.png new file mode 100644 index 0000000000..889255870e Binary files /dev/null and b/assets/images/home-63e0bdbb0e546c592511e061cae13b46.png differ diff --git a/assets/images/how_to_test_1-ae0a1ea41f454243e02204a15e57e602.png b/assets/images/how_to_test_1-ae0a1ea41f454243e02204a15e57e602.png new file mode 100644 index 0000000000..8e11a95d9a Binary files /dev/null and b/assets/images/how_to_test_1-ae0a1ea41f454243e02204a15e57e602.png differ diff --git a/assets/images/how_to_test_2-f567b95182715cfe7d09eae072448448.png b/assets/images/how_to_test_2-f567b95182715cfe7d09eae072448448.png new file mode 100644 index 0000000000..2ef3217978 Binary files /dev/null and b/assets/images/how_to_test_2-f567b95182715cfe7d09eae072448448.png differ diff --git a/assets/images/how_to_test_3-01cd60fed982c3068708c21964641ec1.png b/assets/images/how_to_test_3-01cd60fed982c3068708c21964641ec1.png new file mode 100644 index 0000000000..aa1ba616a1 Binary files /dev/null and b/assets/images/how_to_test_3-01cd60fed982c3068708c21964641ec1.png differ diff --git a/assets/images/importCsvLicenseFile-e893b6794604d89bd3d263dd5bc75e26.png b/assets/images/importCsvLicenseFile-e893b6794604d89bd3d263dd5bc75e26.png new file mode 100644 index 0000000000..5f637267bd Binary files /dev/null and b/assets/images/importCsvLicenseFile-e893b6794604d89bd3d263dd5bc75e26.png differ diff --git a/assets/images/import_csv_license_file_1-9305356652a996de48bafcec5b4276e2.png b/assets/images/import_csv_license_file_1-9305356652a996de48bafcec5b4276e2.png new file mode 100644 index 0000000000..95fff130ed Binary files /dev/null and b/assets/images/import_csv_license_file_1-9305356652a996de48bafcec5b4276e2.png differ diff --git a/assets/images/import_csv_license_file_2-69397c3be72ca8a78b199ea33eeea542.png b/assets/images/import_csv_license_file_2-69397c3be72ca8a78b199ea33eeea542.png new file mode 100644 index 0000000000..369f7e5161 Binary files /dev/null and b/assets/images/import_csv_license_file_2-69397c3be72ca8a78b199ea33eeea542.png differ diff --git a/assets/images/import_obligation_list-3256323ac0919a90446572cbae45bb5f.png b/assets/images/import_obligation_list-3256323ac0919a90446572cbae45bb5f.png new file mode 100644 index 0000000000..f088759c95 Binary files /dev/null and b/assets/images/import_obligation_list-3256323ac0919a90446572cbae45bb5f.png differ diff --git a/assets/images/indexing-9b01b96d73c19322ba3cd6a96534b530.png b/assets/images/indexing-9b01b96d73c19322ba3cd6a96534b530.png new file mode 100644 index 0000000000..944674f3c2 Binary files /dev/null and b/assets/images/indexing-9b01b96d73c19322ba3cd6a96534b530.png differ diff --git a/assets/images/jobs_res-43e3553e6bb09e9d139a270bc555f796.png b/assets/images/jobs_res-43e3553e6bb09e9d139a270bc555f796.png new file mode 100644 index 0000000000..c594bd2f91 Binary files /dev/null and b/assets/images/jobs_res-43e3553e6bb09e9d139a270bc555f796.png differ diff --git a/assets/images/license-4cb0a51c5dcd578c843c254dd800f0b6.png b/assets/images/license-4cb0a51c5dcd578c843c254dd800f0b6.png new file mode 100644 index 0000000000..ec627a8902 Binary files /dev/null and b/assets/images/license-4cb0a51c5dcd578c843c254dd800f0b6.png differ diff --git a/assets/images/licenseBrowser-46eef0e1b48954e030ff36c33342209d.png b/assets/images/licenseBrowser-46eef0e1b48954e030ff36c33342209d.png new file mode 100644 index 0000000000..9f06919d25 Binary files /dev/null and b/assets/images/licenseBrowser-46eef0e1b48954e030ff36c33342209d.png differ diff --git a/assets/images/licenseBrowser-5b3cc6e10c74596a071e63d15f8c3844.png b/assets/images/licenseBrowser-5b3cc6e10c74596a071e63d15f8c3844.png new file mode 100644 index 0000000000..682ae374e0 Binary files /dev/null and b/assets/images/licenseBrowser-5b3cc6e10c74596a071e63d15f8c3844.png differ diff --git a/assets/images/licenseDecisionsTable-41fd6cadc5ebc5f5f48ca46b090813d9.png b/assets/images/licenseDecisionsTable-41fd6cadc5ebc5f5f48ca46b090813d9.png new file mode 100644 index 0000000000..53ee9ec2af Binary files /dev/null and b/assets/images/licenseDecisionsTable-41fd6cadc5ebc5f5f48ca46b090813d9.png differ diff --git a/assets/images/licenseExpressionSchema-84688775724d0e3451fba3eeacb0df61.png b/assets/images/licenseExpressionSchema-84688775724d0e3451fba3eeacb0df61.png new file mode 100644 index 0000000000..0f5095c406 Binary files /dev/null and b/assets/images/licenseExpressionSchema-84688775724d0e3451fba3eeacb0df61.png differ diff --git a/assets/images/licenseExpressionTable-1e76fdd7916d29d95e6ebc458216f99b.png b/assets/images/licenseExpressionTable-1e76fdd7916d29d95e6ebc458216f99b.png new file mode 100644 index 0000000000..cab0a66ed0 Binary files /dev/null and b/assets/images/licenseExpressionTable-1e76fdd7916d29d95e6ebc458216f99b.png differ diff --git a/assets/images/licensePrototype-bff8b1cefedb52072076ba7272fe1584.png b/assets/images/licensePrototype-bff8b1cefedb52072076ba7272fe1584.png new file mode 100644 index 0000000000..14161b052a Binary files /dev/null and b/assets/images/licensePrototype-bff8b1cefedb52072076ba7272fe1584.png differ diff --git a/assets/images/license_scanning-0ca53e1266f50011b5dc5cb1296a6733.png b/assets/images/license_scanning-0ca53e1266f50011b5dc5cb1296a6733.png new file mode 100644 index 0000000000..14bbe36382 Binary files /dev/null and b/assets/images/license_scanning-0ca53e1266f50011b5dc5cb1296a6733.png differ diff --git a/assets/images/license_tree_view-9df583156bea34c9552960f27047cf7e.png b/assets/images/license_tree_view-9df583156bea34c9552960f27047cf7e.png new file mode 100644 index 0000000000..54e4f614c9 Binary files /dev/null and b/assets/images/license_tree_view-9df583156bea34c9552960f27047cf7e.png differ diff --git a/assets/images/licenses_edited-1518c54093386efe05a7190c7642b882.jpeg b/assets/images/licenses_edited-1518c54093386efe05a7190c7642b882.jpeg new file mode 100644 index 0000000000..4025a446be Binary files /dev/null and b/assets/images/licenses_edited-1518c54093386efe05a7190c7642b882.jpeg differ diff --git a/assets/images/lightTheme-813b398ac204530c1c2a5debfaac6df8.png b/assets/images/lightTheme-813b398ac204530c1c2a5debfaac6df8.png new file mode 100644 index 0000000000..2f267768da Binary files /dev/null and b/assets/images/lightTheme-813b398ac204530c1c2a5debfaac6df8.png differ diff --git a/assets/images/loadingSpinner-00823753be7a727181057304db8958dd.png b/assets/images/loadingSpinner-00823753be7a727181057304db8958dd.png new file mode 100644 index 0000000000..d1f1e23a68 Binary files /dev/null and b/assets/images/loadingSpinner-00823753be7a727181057304db8958dd.png differ diff --git a/assets/images/login-b36bdae1269561fc682f4743e277cd0e.png b/assets/images/login-b36bdae1269561fc682f4743e277cd0e.png new file mode 100644 index 0000000000..e67c998453 Binary files /dev/null and b/assets/images/login-b36bdae1269561fc682f4743e277cd0e.png differ diff --git a/assets/images/login-d599c4e53187c8f6439b8de616fbece4.png b/assets/images/login-d599c4e53187c8f6439b8de616fbece4.png new file mode 100644 index 0000000000..ea0a8cffa0 Binary files /dev/null and b/assets/images/login-d599c4e53187c8f6439b8de616fbece4.png differ diff --git a/assets/images/loginError-f2a2b7939ac365fa6b657c8c415cca6b.png b/assets/images/loginError-f2a2b7939ac365fa6b657c8c415cca6b.png new file mode 100644 index 0000000000..17cc175a61 Binary files /dev/null and b/assets/images/loginError-f2a2b7939ac365fa6b657c8c415cca6b.png differ diff --git a/assets/images/loginFormBorder-e403d31885f4987c1d730cdc8e763b13.png b/assets/images/loginFormBorder-e403d31885f4987c1d730cdc8e763b13.png new file mode 100644 index 0000000000..c07986f97a Binary files /dev/null and b/assets/images/loginFormBorder-e403d31885f4987c1d730cdc8e763b13.png differ diff --git a/assets/images/logo-1d959c8082fd12c2f575ffcc82912e4f.png b/assets/images/logo-1d959c8082fd12c2f575ffcc82912e4f.png new file mode 100644 index 0000000000..e209c50545 Binary files /dev/null and b/assets/images/logo-1d959c8082fd12c2f575ffcc82912e4f.png differ diff --git a/assets/images/logout-4b20404a7a752f8b423384cdfba08a50.png b/assets/images/logout-4b20404a7a752f8b423384cdfba08a50.png new file mode 100644 index 0000000000..8c6f94cec1 Binary files /dev/null and b/assets/images/logout-4b20404a7a752f8b423384cdfba08a50.png differ diff --git a/assets/images/maintenance_1-8aa5ba903cbb22936bb49bd5b6f54961.png b/assets/images/maintenance_1-8aa5ba903cbb22936bb49bd5b6f54961.png new file mode 100644 index 0000000000..74b0a6c42a Binary files /dev/null and b/assets/images/maintenance_1-8aa5ba903cbb22936bb49bd5b6f54961.png differ diff --git a/assets/images/maintenance_2-3166f718385e90d3c81f3026d5e5d49b.png b/assets/images/maintenance_2-3166f718385e90d3c81f3026d5e5d49b.png new file mode 100644 index 0000000000..cb485d4243 Binary files /dev/null and b/assets/images/maintenance_2-3166f718385e90d3c81f3026d5e5d49b.png differ diff --git a/assets/images/make_clearing_decision-6025090803076744ffd3c7c4a7aa15b7.png b/assets/images/make_clearing_decision-6025090803076744ffd3c7c4a7aa15b7.png new file mode 100644 index 0000000000..e9715e1981 Binary files /dev/null and b/assets/images/make_clearing_decision-6025090803076744ffd3c7c4a7aa15b7.png differ diff --git a/assets/images/manage_group_users_improved-8828647bd23c53448f2019aa2c78ef3c.png b/assets/images/manage_group_users_improved-8828647bd23c53448f2019aa2c78ef3c.png new file mode 100644 index 0000000000..bf6ba16eec Binary files /dev/null and b/assets/images/manage_group_users_improved-8828647bd23c53448f2019aa2c78ef3c.png differ diff --git a/assets/images/manage_group_users_updated-0d0b2d8aa1c2767e8cd479a738ce26f7.png b/assets/images/manage_group_users_updated-0d0b2d8aa1c2767e8cd479a738ce26f7.png new file mode 100644 index 0000000000..082123331f Binary files /dev/null and b/assets/images/manage_group_users_updated-0d0b2d8aa1c2767e8cd479a738ce26f7.png differ diff --git a/assets/images/merge_license-02ee1b801b1ea551026dbd1d1374902b.png b/assets/images/merge_license-02ee1b801b1ea551026dbd1d1374902b.png new file mode 100644 index 0000000000..81ab62e374 Binary files /dev/null and b/assets/images/merge_license-02ee1b801b1ea551026dbd1d1374902b.png differ diff --git a/assets/images/monk-0194a27bc909a169339494b214dc6d92.png b/assets/images/monk-0194a27bc909a169339494b214dc6d92.png new file mode 100644 index 0000000000..69b88223d0 Binary files /dev/null and b/assets/images/monk-0194a27bc909a169339494b214dc6d92.png differ diff --git a/assets/images/moveUpload-3139bc685e6912df15750d70e01d8318.png b/assets/images/moveUpload-3139bc685e6912df15750d70e01d8318.png new file mode 100644 index 0000000000..3441ddc14e Binary files /dev/null and b/assets/images/moveUpload-3139bc685e6912df15750d70e01d8318.png differ diff --git a/assets/images/newJobs-55bbc53b067b586f13bfacc5c08d682f.png b/assets/images/newJobs-55bbc53b067b586f13bfacc5c08d682f.png new file mode 100644 index 0000000000..2162e300d1 Binary files /dev/null and b/assets/images/newJobs-55bbc53b067b586f13bfacc5c08d682f.png differ diff --git a/assets/images/nomos-4c03dd5dd145ec129f4bd37e709c6294.png b/assets/images/nomos-4c03dd5dd145ec129f4bd37e709c6294.png new file mode 100644 index 0000000000..015de50f9a Binary files /dev/null and b/assets/images/nomos-4c03dd5dd145ec129f4bd37e709c6294.png differ diff --git a/assets/images/nonAdmin_response-95fe12647e2706ca3d523968246f2d3d.png b/assets/images/nonAdmin_response-95fe12647e2706ca3d523968246f2d3d.png new file mode 100644 index 0000000000..782c106db4 Binary files /dev/null and b/assets/images/nonAdmin_response-95fe12647e2706ca3d523968246f2d3d.png differ diff --git a/assets/images/non_admin_view-f06a2af3aeb13c91b1db9a4be1dc9721.jpeg b/assets/images/non_admin_view-f06a2af3aeb13c91b1db9a4be1dc9721.jpeg new file mode 100644 index 0000000000..10e93b416b Binary files /dev/null and b/assets/images/non_admin_view-f06a2af3aeb13c91b1db9a4be1dc9721.jpeg differ diff --git a/assets/images/obligations_details-df3131ef2506b6ac44c73795a4a5391d.png b/assets/images/obligations_details-df3131ef2506b6ac44c73795a4a5391d.png new file mode 100644 index 0000000000..c849a30023 Binary files /dev/null and b/assets/images/obligations_details-df3131ef2506b6ac44c73795a4a5391d.png differ diff --git a/assets/images/obligations_list-9ae43e6f583769adbe8607bb2d77d665.png b/assets/images/obligations_list-9ae43e6f583769adbe8607bb2d77d665.png new file mode 100644 index 0000000000..fae321b1fc Binary files /dev/null and b/assets/images/obligations_list-9ae43e6f583769adbe8607bb2d77d665.png differ diff --git a/assets/images/oneShotCopyrightAnalysis-fdc30a9e5b997cb1a12092bb3bf0aeed.png b/assets/images/oneShotCopyrightAnalysis-fdc30a9e5b997cb1a12092bb3bf0aeed.png new file mode 100644 index 0000000000..f8db0a232a Binary files /dev/null and b/assets/images/oneShotCopyrightAnalysis-fdc30a9e5b997cb1a12092bb3bf0aeed.png differ diff --git a/assets/images/oneShotLicenseAnalysis-cfd9d2862842b6c2f328df21d11e48d7.png b/assets/images/oneShotLicenseAnalysis-cfd9d2862842b6c2f328df21d11e48d7.png new file mode 100644 index 0000000000..94e1dca71f Binary files /dev/null and b/assets/images/oneShotLicenseAnalysis-cfd9d2862842b6c2f328df21d11e48d7.png differ diff --git a/assets/images/oneShotMonk-722d6a763e5ecbc9687a54c1430ebb7a.png b/assets/images/oneShotMonk-722d6a763e5ecbc9687a54c1430ebb7a.png new file mode 100644 index 0000000000..01d57ed2bc Binary files /dev/null and b/assets/images/oneShotMonk-722d6a763e5ecbc9687a54c1430ebb7a.png differ diff --git a/assets/images/openapi-ed782adbcaf216d66b915daf36d32671.png b/assets/images/openapi-ed782adbcaf216d66b915daf36d32671.png new file mode 100644 index 0000000000..ed954ce515 Binary files /dev/null and b/assets/images/openapi-ed782adbcaf216d66b915daf36d32671.png differ diff --git a/assets/images/pagination-72c768c39e344b949828b7ac91180f40.png b/assets/images/pagination-72c768c39e344b949828b7ac91180f40.png new file mode 100644 index 0000000000..25236b7682 Binary files /dev/null and b/assets/images/pagination-72c768c39e344b949828b7ac91180f40.png differ diff --git a/assets/images/permGroupsRes-b2f569f05347064a1aaed97ce1a0bb0a.png b/assets/images/permGroupsRes-b2f569f05347064a1aaed97ce1a0bb0a.png new file mode 100644 index 0000000000..9a99af6d1a Binary files /dev/null and b/assets/images/permGroupsRes-b2f569f05347064a1aaed97ce1a0bb0a.png differ diff --git a/assets/images/project_overview-296783513365c5a6dd3997b5c7204a67.png b/assets/images/project_overview-296783513365c5a6dd3997b5c7204a67.png new file mode 100644 index 0000000000..47ddfe773b Binary files /dev/null and b/assets/images/project_overview-296783513365c5a6dd3997b5c7204a67.png differ diff --git a/assets/images/re_add_user-ec23d25ce31984283b7b1fe59307d266.png b/assets/images/re_add_user-ec23d25ce31984283b7b1fe59307d266.png new file mode 100644 index 0000000000..11ff6263aa Binary files /dev/null and b/assets/images/re_add_user-ec23d25ce31984283b7b1fe59307d266.png differ diff --git a/assets/images/removeLicense-569bdca2c0b28b1c2f1cc9430d94106d.png b/assets/images/removeLicense-569bdca2c0b28b1c2f1cc9430d94106d.png new file mode 100644 index 0000000000..cd8623c9e3 Binary files /dev/null and b/assets/images/removeLicense-569bdca2c0b28b1c2f1cc9430d94106d.png differ diff --git a/assets/images/remove_user-4f44e5f63e087a1d84f00d04d5d18386.png b/assets/images/remove_user-4f44e5f63e087a1d84f00d04d5d18386.png new file mode 100644 index 0000000000..f8cf55aecd Binary files /dev/null and b/assets/images/remove_user-4f44e5f63e087a1d84f00d04d5d18386.png differ diff --git a/assets/images/remove_user_2-a07163b8e9b55f8207c7ab6112537ba0.png b/assets/images/remove_user_2-a07163b8e9b55f8207c7ab6112537ba0.png new file mode 100644 index 0000000000..75c5af7cde Binary files /dev/null and b/assets/images/remove_user_2-a07163b8e9b55f8207c7ab6112537ba0.png differ diff --git a/assets/images/reportImport-4ac355a7cd8ece752b5b0cd908196980.png b/assets/images/reportImport-4ac355a7cd8ece752b5b0cd908196980.png new file mode 100644 index 0000000000..6e258d43c2 Binary files /dev/null and b/assets/images/reportImport-4ac355a7cd8ece752b5b0cd908196980.png differ diff --git a/assets/images/reqBodyCreateToken-abce069ff9887c5bdf28527131029c25.png b/assets/images/reqBodyCreateToken-abce069ff9887c5bdf28527131029c25.png new file mode 100644 index 0000000000..1279e4e380 Binary files /dev/null and b/assets/images/reqBodyCreateToken-abce069ff9887c5bdf28527131029c25.png differ diff --git a/assets/images/reqBodyEditUser-5be82b54e69879a6a2850c51d8655ef8.png b/assets/images/reqBodyEditUser-5be82b54e69879a6a2850c51d8655ef8.png new file mode 100644 index 0000000000..12efcd7c91 Binary files /dev/null and b/assets/images/reqBodyEditUser-5be82b54e69879a6a2850c51d8655ef8.png differ diff --git a/assets/images/reqbodyAddUser-6e8feba5b1759a53c9ab66a7ceefbe16.png b/assets/images/reqbodyAddUser-6e8feba5b1759a53c9ab66a7ceefbe16.png new file mode 100644 index 0000000000..9815596046 Binary files /dev/null and b/assets/images/reqbodyAddUser-6e8feba5b1759a53c9ab66a7ceefbe16.png differ diff --git a/assets/images/request-c81f9d56a4b76c990db631580fcdead8.png b/assets/images/request-c81f9d56a4b76c990db631580fcdead8.png new file mode 100644 index 0000000000..af13e08ead Binary files /dev/null and b/assets/images/request-c81f9d56a4b76c990db631580fcdead8.png differ diff --git a/assets/images/request2-5aabedbcd90523436adc3eb1b7972c79.png b/assets/images/request2-5aabedbcd90523436adc3eb1b7972c79.png new file mode 100644 index 0000000000..fe90976f56 Binary files /dev/null and b/assets/images/request2-5aabedbcd90523436adc3eb1b7972c79.png differ diff --git a/assets/images/resActiveTokens-09dff90fee37b1b2b1a65b06fc6f36c1.png b/assets/images/resActiveTokens-09dff90fee37b1b2b1a65b06fc6f36c1.png new file mode 100644 index 0000000000..4de1e4e262 Binary files /dev/null and b/assets/images/resActiveTokens-09dff90fee37b1b2b1a65b06fc6f36c1.png differ diff --git a/assets/images/resAddUser-5c1a5744f373265bb21bea66332241c7.png b/assets/images/resAddUser-5c1a5744f373265bb21bea66332241c7.png new file mode 100644 index 0000000000..31a274056b Binary files /dev/null and b/assets/images/resAddUser-5c1a5744f373265bb21bea66332241c7.png differ diff --git a/assets/images/resCreateToken-ee5c8d6490188dc54b79331cd6999774.png b/assets/images/resCreateToken-ee5c8d6490188dc54b79331cd6999774.png new file mode 100644 index 0000000000..0a07e34409 Binary files /dev/null and b/assets/images/resCreateToken-ee5c8d6490188dc54b79331cd6999774.png differ diff --git a/assets/images/resEditUser-9aedf90cd3e0cbdc3718127faf20a9d1.png b/assets/images/resEditUser-9aedf90cd3e0cbdc3718127faf20a9d1.png new file mode 100644 index 0000000000..55b57c2124 Binary files /dev/null and b/assets/images/resEditUser-9aedf90cd3e0cbdc3718127faf20a9d1.png differ diff --git a/assets/images/resExpiredTokens-356d696027ab96a8020714f4ba8a6df8.png b/assets/images/resExpiredTokens-356d696027ab96a8020714f4ba8a6df8.png new file mode 100644 index 0000000000..d55942fb03 Binary files /dev/null and b/assets/images/resExpiredTokens-356d696027ab96a8020714f4ba8a6df8.png differ diff --git a/assets/images/response-2526028a38e61ff1ad391d610def7311.png b/assets/images/response-2526028a38e61ff1ad391d610def7311.png new file mode 100644 index 0000000000..0b8e25c9ef Binary files /dev/null and b/assets/images/response-2526028a38e61ff1ad391d610def7311.png differ diff --git a/assets/images/restorecopyright-83d1b34fc6103730b31d13a56cd21e20.png b/assets/images/restorecopyright-83d1b34fc6103730b31d13a56cd21e20.png new file mode 100644 index 0000000000..f5ed2c1f16 Binary files /dev/null and b/assets/images/restorecopyright-83d1b34fc6103730b31d13a56cd21e20.png differ diff --git a/assets/images/reuse-e813245ee5853a0ee87d36c4e74c94cd.png b/assets/images/reuse-e813245ee5853a0ee87d36c4e74c94cd.png new file mode 100644 index 0000000000..a94dbc7c06 Binary files /dev/null and b/assets/images/reuse-e813245ee5853a0ee87d36c4e74c94cd.png differ diff --git a/assets/images/run_scheduler_operation_1-71c59762fb75b22036512491b57eec83.png b/assets/images/run_scheduler_operation_1-71c59762fb75b22036512491b57eec83.png new file mode 100644 index 0000000000..3b15a76117 Binary files /dev/null and b/assets/images/run_scheduler_operation_1-71c59762fb75b22036512491b57eec83.png differ diff --git a/assets/images/run_scheduler_operation_2-b3eb667c948dabacc0e9213e764820ea.png b/assets/images/run_scheduler_operation_2-b3eb667c948dabacc0e9213e764820ea.png new file mode 100644 index 0000000000..987211c8ce Binary files /dev/null and b/assets/images/run_scheduler_operation_2-b3eb667c948dabacc0e9213e764820ea.png differ diff --git a/assets/images/scan_copy_browser-d48548e97a3d3cbcf763a218c5e50652.png b/assets/images/scan_copy_browser-d48548e97a3d3cbcf763a218c5e50652.png new file mode 100644 index 0000000000..c35e431937 Binary files /dev/null and b/assets/images/scan_copy_browser-d48548e97a3d3cbcf763a218c5e50652.png differ diff --git a/assets/images/scancodecopyrightdelete-8411de94f798fcf287f1244095b8793d.png b/assets/images/scancodecopyrightdelete-8411de94f798fcf287f1244095b8793d.png new file mode 100644 index 0000000000..3ced5564aa Binary files /dev/null and b/assets/images/scancodecopyrightdelete-8411de94f798fcf287f1244095b8793d.png differ diff --git a/assets/images/scancodecopyrightget-f938cc8a1df1ca3830eb1e30a8d7c605.png b/assets/images/scancodecopyrightget-f938cc8a1df1ca3830eb1e30a8d7c605.png new file mode 100644 index 0000000000..51d20e3714 Binary files /dev/null and b/assets/images/scancodecopyrightget-f938cc8a1df1ca3830eb1e30a8d7c605.png differ diff --git a/assets/images/scancodecopyrightpatch-8480e4bc266ea5609d32b202909dd74e.png b/assets/images/scancodecopyrightpatch-8480e4bc266ea5609d32b202909dd74e.png new file mode 100644 index 0000000000..27a8c10120 Binary files /dev/null and b/assets/images/scancodecopyrightpatch-8480e4bc266ea5609d32b202909dd74e.png differ diff --git a/assets/images/scancodecopyrightput-66096664001b8d527bb4199864700b13.png b/assets/images/scancodecopyrightput-66096664001b8d527bb4199864700b13.png new file mode 100644 index 0000000000..1b414c9039 Binary files /dev/null and b/assets/images/scancodecopyrightput-66096664001b8d527bb4199864700b13.png differ diff --git a/assets/images/schedule-adb6ca8137064efa46be59a435a7af4d.png b/assets/images/schedule-adb6ca8137064efa46be59a435a7af4d.png new file mode 100644 index 0000000000..e35163b5ce Binary files /dev/null and b/assets/images/schedule-adb6ca8137064efa46be59a435a7af4d.png differ diff --git a/assets/images/scheduleAnalysisApi-23d6baa981b373cfcb250aa4fdae85d3.png b/assets/images/scheduleAnalysisApi-23d6baa981b373cfcb250aa4fdae85d3.png new file mode 100644 index 0000000000..4baef1529e Binary files /dev/null and b/assets/images/scheduleAnalysisApi-23d6baa981b373cfcb250aa4fdae85d3.png differ diff --git a/assets/images/schedule_bulk_scan-2b48462b84459bf7dc102adeda0af84e.png b/assets/images/schedule_bulk_scan-2b48462b84459bf7dc102adeda0af84e.png new file mode 100644 index 0000000000..577fd38b27 Binary files /dev/null and b/assets/images/schedule_bulk_scan-2b48462b84459bf7dc102adeda0af84e.png differ diff --git a/assets/images/search-c0b58d059d6cee9745e5c598ff986c21.png b/assets/images/search-c0b58d059d6cee9745e5c598ff986c21.png new file mode 100644 index 0000000000..be16ef0f30 Binary files /dev/null and b/assets/images/search-c0b58d059d6cee9745e5c598ff986c21.png differ diff --git a/assets/images/searchApiChecks-7865be3a7d5754720cc80a9617fd1bcb.png b/assets/images/searchApiChecks-7865be3a7d5754720cc80a9617fd1bcb.png new file mode 100644 index 0000000000..c0a09f631a Binary files /dev/null and b/assets/images/searchApiChecks-7865be3a7d5754720cc80a9617fd1bcb.png differ diff --git a/assets/images/searchFiles-9f0f3ec472f743139c442d5931d34356.png b/assets/images/searchFiles-9f0f3ec472f743139c442d5931d34356.png new file mode 100644 index 0000000000..ea5d0f222b Binary files /dev/null and b/assets/images/searchFiles-9f0f3ec472f743139c442d5931d34356.png differ diff --git a/assets/images/searchPagination-cec65f26d18968307cc4b26a642210e4.png b/assets/images/searchPagination-cec65f26d18968307cc4b26a642210e4.png new file mode 100644 index 0000000000..0a58d0209a Binary files /dev/null and b/assets/images/searchPagination-cec65f26d18968307cc4b26a642210e4.png differ diff --git a/assets/images/searchPostman-ec037b1388b9ed18cd6b6d223b948678.png b/assets/images/searchPostman-ec037b1388b9ed18cd6b6d223b948678.png new file mode 100644 index 0000000000..adc6165e4e Binary files /dev/null and b/assets/images/searchPostman-ec037b1388b9ed18cd6b6d223b948678.png differ diff --git a/assets/images/searchSwagger-ec95c9faa3d35d6513f6336c98eaefce.png b/assets/images/searchSwagger-ec95c9faa3d35d6513f6336c98eaefce.png new file mode 100644 index 0000000000..ba504a1818 Binary files /dev/null and b/assets/images/searchSwagger-ec95c9faa3d35d6513f6336c98eaefce.png differ diff --git a/assets/images/sequenceDiagram-4f529791280ddf5e7ffc5d5792870b0e.png b/assets/images/sequenceDiagram-4f529791280ddf5e7ffc5d5792870b0e.png new file mode 100644 index 0000000000..447ac4a9d7 Binary files /dev/null and b/assets/images/sequenceDiagram-4f529791280ddf5e7ffc5d5792870b0e.png differ diff --git a/assets/images/set_clearing_info-63fa0fd9e6b56057a9293161c305f163.png b/assets/images/set_clearing_info-63fa0fd9e6b56057a9293161c305f163.png new file mode 100644 index 0000000000..5cb78ad408 Binary files /dev/null and b/assets/images/set_clearing_info-63fa0fd9e6b56057a9293161c305f163.png differ diff --git a/assets/images/snackbar-a50f40ddc680cd3616c20e22344400e4.gif b/assets/images/snackbar-a50f40ddc680cd3616c20e22344400e4.gif new file mode 100644 index 0000000000..831a086736 Binary files /dev/null and b/assets/images/snackbar-a50f40ddc680cd3616c20e22344400e4.gif differ diff --git a/assets/images/softwareHeritage-e9cef5fb1515b7acfa6ca863271f2ec3.png b/assets/images/softwareHeritage-e9cef5fb1515b7acfa6ca863271f2ec3.png new file mode 100644 index 0000000000..6e52bd719d Binary files /dev/null and b/assets/images/softwareHeritage-e9cef5fb1515b7acfa6ca863271f2ec3.png differ diff --git a/assets/images/stdcomments-156bc2a7ccff7c22e656ada2ac9588b6.png b/assets/images/stdcomments-156bc2a7ccff7c22e656ada2ac9588b6.png new file mode 100644 index 0000000000..7209ec97ff Binary files /dev/null and b/assets/images/stdcomments-156bc2a7ccff7c22e656ada2ac9588b6.png differ diff --git a/assets/images/stickyHeader-f6884ffe284dc5acbe01d0d47022a9d7.gif b/assets/images/stickyHeader-f6884ffe284dc5acbe01d0d47022a9d7.gif new file mode 100644 index 0000000000..1e4d69ce97 Binary files /dev/null and b/assets/images/stickyHeader-f6884ffe284dc5acbe01d0d47022a9d7.gif differ diff --git a/assets/images/successSnackbar-152d2a01f0187c8b2215bed5f4eb56b7.png b/assets/images/successSnackbar-152d2a01f0187c8b2215bed5f4eb56b7.png new file mode 100644 index 0000000000..66ec5bfc5b Binary files /dev/null and b/assets/images/successSnackbar-152d2a01f0187c8b2215bed5f4eb56b7.png differ diff --git a/assets/images/suggest_license-8d51ea2788480e04b16e133f6168ac56.png b/assets/images/suggest_license-8d51ea2788480e04b16e133f6168ac56.png new file mode 100644 index 0000000000..e3b4984211 Binary files /dev/null and b/assets/images/suggest_license-8d51ea2788480e04b16e133f6168ac56.png differ diff --git a/assets/images/three_pointers_default-79491e6919bd649b5b00aa2212f55ea8.png b/assets/images/three_pointers_default-79491e6919bd649b5b00aa2212f55ea8.png new file mode 100644 index 0000000000..2e42e2e0da Binary files /dev/null and b/assets/images/three_pointers_default-79491e6919bd649b5b00aa2212f55ea8.png differ diff --git a/assets/images/three_pointers_no_clearing-8838be0c60e0d51871e8b545f2408dc6.png b/assets/images/three_pointers_no_clearing-8838be0c60e0d51871e8b545f2408dc6.png new file mode 100644 index 0000000000..0de5ffd196 Binary files /dev/null and b/assets/images/three_pointers_no_clearing-8838be0c60e0d51871e8b545f2408dc6.png differ diff --git a/assets/images/three_pointers_with_licenses-b384bc1e5475a5b9819eb8e2130ed0b6.png b/assets/images/three_pointers_with_licenses-b384bc1e5475a5b9819eb8e2130ed0b6.png new file mode 100644 index 0000000000..fee53d48b7 Binary files /dev/null and b/assets/images/three_pointers_with_licenses-b384bc1e5475a5b9819eb8e2130ed0b6.png differ diff --git a/assets/images/tooltip-8b531422e8dfe01f61cf9a7cffa3f87c.png b/assets/images/tooltip-8b531422e8dfe01f61cf9a7cffa3f87c.png new file mode 100644 index 0000000000..7a02a06a3a Binary files /dev/null and b/assets/images/tooltip-8b531422e8dfe01f61cf9a7cffa3f87c.png differ diff --git a/assets/images/totalResponse_new-0f9a2b811f4ae03b39da6a11091aa66e.png b/assets/images/totalResponse_new-0f9a2b811f4ae03b39da6a11091aa66e.png new file mode 100644 index 0000000000..08288b7e33 Binary files /dev/null and b/assets/images/totalResponse_new-0f9a2b811f4ae03b39da6a11091aa66e.png differ diff --git a/assets/images/totalnumberofcopyrights-f52115e63341c2a5837c9172818abad1.png b/assets/images/totalnumberofcopyrights-f52115e63341c2a5837c9172818abad1.png new file mode 100644 index 0000000000..ded75999ad Binary files /dev/null and b/assets/images/totalnumberofcopyrights-f52115e63341c2a5837c9172818abad1.png differ diff --git a/assets/images/unlink_folder_contents-1381c0cc64180172340037845f652b44.png b/assets/images/unlink_folder_contents-1381c0cc64180172340037845f652b44.png new file mode 100644 index 0000000000..8fe1c7a51b Binary files /dev/null and b/assets/images/unlink_folder_contents-1381c0cc64180172340037845f652b44.png differ diff --git a/assets/images/updateconf-90308a3fe52ceeef5d81a4f621098bbb.png b/assets/images/updateconf-90308a3fe52ceeef5d81a4f621098bbb.png new file mode 100644 index 0000000000..c84af8248c Binary files /dev/null and b/assets/images/updateconf-90308a3fe52ceeef5d81a4f621098bbb.png differ diff --git a/assets/images/updatecopyright-d1f678e0ef39b159041367853a019142.png b/assets/images/updatecopyright-d1f678e0ef39b159041367853a019142.png new file mode 100644 index 0000000000..8a672cae40 Binary files /dev/null and b/assets/images/updatecopyright-d1f678e0ef39b159041367853a019142.png differ diff --git a/assets/images/updatecustomise-2144df07fa6ac95cf0f8d911f89f1291.png b/assets/images/updatecustomise-2144df07fa6ac95cf0f8d911f89f1291.png new file mode 100644 index 0000000000..3fb1af3dcf Binary files /dev/null and b/assets/images/updatecustomise-2144df07fa6ac95cf0f8d911f89f1291.png differ diff --git a/assets/images/uploadFileError-bba80390497f6c8dc08ff0141ee64640.png b/assets/images/uploadFileError-bba80390497f6c8dc08ff0141ee64640.png new file mode 100644 index 0000000000..247496de94 Binary files /dev/null and b/assets/images/uploadFileError-bba80390497f6c8dc08ff0141ee64640.png differ diff --git a/assets/images/uploadFileReusableOptions-f596329a8f04f0f455ab8690d82ce8f3.png b/assets/images/uploadFileReusableOptions-f596329a8f04f0f455ab8690d82ce8f3.png new file mode 100644 index 0000000000..7b3523c608 Binary files /dev/null and b/assets/images/uploadFileReusableOptions-f596329a8f04f0f455ab8690d82ce8f3.png differ diff --git a/assets/images/uploadInstruction-18713330361c6b5a5d707ec567163d72.png b/assets/images/uploadInstruction-18713330361c6b5a5d707ec567163d72.png new file mode 100644 index 0000000000..6fcc51bf0a Binary files /dev/null and b/assets/images/uploadInstruction-18713330361c6b5a5d707ec567163d72.png differ diff --git a/assets/images/uploadLicense-f7591e8e398d329ed22587f193340d99.png b/assets/images/uploadLicense-f7591e8e398d329ed22587f193340d99.png new file mode 100644 index 0000000000..59139f4fb0 Binary files /dev/null and b/assets/images/uploadLicense-f7591e8e398d329ed22587f193340d99.png differ diff --git a/assets/images/uploadLicenseTable-e91ca0b20c85a561f1786bd3ceb2a71f.png b/assets/images/uploadLicenseTable-e91ca0b20c85a561f1786bd3ceb2a71f.png new file mode 100644 index 0000000000..16eb68a7af Binary files /dev/null and b/assets/images/uploadLicenseTable-e91ca0b20c85a561f1786bd3ceb2a71f.png differ diff --git a/assets/images/uploadPermReq-2c3ae44d992bda6ba2f6b8ca280e6b83.png b/assets/images/uploadPermReq-2c3ae44d992bda6ba2f6b8ca280e6b83.png new file mode 100644 index 0000000000..d23a5bab1d Binary files /dev/null and b/assets/images/uploadPermReq-2c3ae44d992bda6ba2f6b8ca280e6b83.png differ diff --git a/assets/images/uploadPermRes-f0c696445372eedcea737c93226d6e96.png b/assets/images/uploadPermRes-f0c696445372eedcea737c93226d6e96.png new file mode 100644 index 0000000000..7ab69bdf06 Binary files /dev/null and b/assets/images/uploadPermRes-f0c696445372eedcea737c93226d6e96.png differ diff --git a/assets/images/uploadServer-e1676c250c837c7fa8f3b151ad454c73.png b/assets/images/uploadServer-e1676c250c837c7fa8f3b151ad454c73.png new file mode 100644 index 0000000000..e5127a84bd Binary files /dev/null and b/assets/images/uploadServer-e1676c250c837c7fa8f3b151ad454c73.png differ diff --git a/assets/images/uploadSummary-39f493df4789c63bc70e162de2745677.png b/assets/images/uploadSummary-39f493df4789c63bc70e162de2745677.png new file mode 100644 index 0000000000..4b25f4f814 Binary files /dev/null and b/assets/images/uploadSummary-39f493df4789c63bc70e162de2745677.png differ diff --git a/assets/images/uploadVcs-2085d770c18d976e830e378ff96d2bfc.png b/assets/images/uploadVcs-2085d770c18d976e830e378ff96d2bfc.png new file mode 100644 index 0000000000..4e02993370 Binary files /dev/null and b/assets/images/uploadVcs-2085d770c18d976e830e378ff96d2bfc.png differ diff --git a/assets/images/uploadVcsRequest-414bc9eb24bfbffe65aabbfae30bc00d.png b/assets/images/uploadVcsRequest-414bc9eb24bfbffe65aabbfae30bc00d.png new file mode 100644 index 0000000000..844d08f709 Binary files /dev/null and b/assets/images/uploadVcsRequest-414bc9eb24bfbffe65aabbfae30bc00d.png differ diff --git a/assets/images/upload_file-7745bab7013315c6cb4baa78ae72d3c9.png b/assets/images/upload_file-7745bab7013315c6cb4baa78ae72d3c9.png new file mode 100644 index 0000000000..8b2516c339 Binary files /dev/null and b/assets/images/upload_file-7745bab7013315c6cb4baa78ae72d3c9.png differ diff --git a/assets/images/uploadedFile-8d148ab22f1f71992e48ae5a75f32980.png b/assets/images/uploadedFile-8d148ab22f1f71992e48ae5a75f32980.png new file mode 100644 index 0000000000..a1c6605db0 Binary files /dev/null and b/assets/images/uploadedFile-8d148ab22f1f71992e48ae5a75f32980.png differ diff --git a/assets/images/uploadedRequestFormatChanged-c81f9d56a4b76c990db631580fcdead8.png b/assets/images/uploadedRequestFormatChanged-c81f9d56a4b76c990db631580fcdead8.png new file mode 100644 index 0000000000..af13e08ead Binary files /dev/null and b/assets/images/uploadedRequestFormatChanged-c81f9d56a4b76c990db631580fcdead8.png differ diff --git a/assets/images/userExpressionDecision-09eaad2ce49c005de9db70e3a5401b4b.png b/assets/images/userExpressionDecision-09eaad2ce49c005de9db70e3a5401b4b.png new file mode 100644 index 0000000000..81b4c17e1a Binary files /dev/null and b/assets/images/userExpressionDecision-09eaad2ce49c005de9db70e3a5401b4b.png differ diff --git a/assets/images/usercopyrightcount-99c1ad4083ce2b66e7b5ef4ecbf1a016.png b/assets/images/usercopyrightcount-99c1ad4083ce2b66e7b5ef4ecbf1a016.png new file mode 100644 index 0000000000..7106ffd807 Binary files /dev/null and b/assets/images/usercopyrightcount-99c1ad4083ce2b66e7b5ef4ecbf1a016.png differ diff --git a/assets/images/usercopyrightdelete-53c2b1e806661b5f9d8ef1941e52a061.png b/assets/images/usercopyrightdelete-53c2b1e806661b5f9d8ef1941e52a061.png new file mode 100644 index 0000000000..1b8ffa4234 Binary files /dev/null and b/assets/images/usercopyrightdelete-53c2b1e806661b5f9d8ef1941e52a061.png differ diff --git a/assets/images/usercopyrightget-951c96d7dbec857faffb2f0d9a043567.png b/assets/images/usercopyrightget-951c96d7dbec857faffb2f0d9a043567.png new file mode 100644 index 0000000000..1c54578e9c Binary files /dev/null and b/assets/images/usercopyrightget-951c96d7dbec857faffb2f0d9a043567.png differ diff --git a/assets/images/usercopyrightpatch-03e4fcc592ed2e5250d9ea88c2123c7e.png b/assets/images/usercopyrightpatch-03e4fcc592ed2e5250d9ea88c2123c7e.png new file mode 100644 index 0000000000..e8c24f2f5d Binary files /dev/null and b/assets/images/usercopyrightpatch-03e4fcc592ed2e5250d9ea88c2123c7e.png differ diff --git a/assets/images/usercopyrightput-8948adb4b590a525e560a3069e307913.png b/assets/images/usercopyrightput-8948adb4b590a525e560a3069e307913.png new file mode 100644 index 0000000000..65c3c4b2c6 Binary files /dev/null and b/assets/images/usercopyrightput-8948adb4b590a525e560a3069e307913.png differ diff --git a/assets/images/vcs_job-a23876c475d419d662483bdd242e19d2.png b/assets/images/vcs_job-a23876c475d419d662483bdd242e19d2.png new file mode 100644 index 0000000000..bd2ea52d67 Binary files /dev/null and b/assets/images/vcs_job-a23876c475d419d662483bdd242e19d2.png differ diff --git a/assets/images/verify_as_new-c962b1952de973007595036d46a457aa.png b/assets/images/verify_as_new-c962b1952de973007595036d46a457aa.png new file mode 100644 index 0000000000..ec888e9404 Binary files /dev/null and b/assets/images/verify_as_new-c962b1952de973007595036d46a457aa.png differ diff --git a/assets/images/verify_as_variant-b273bf8bac094b7b0b2f9c9fbacb9347.png b/assets/images/verify_as_variant-b273bf8bac094b7b0b2f9c9fbacb9347.png new file mode 100644 index 0000000000..7f4cc404c7 Binary files /dev/null and b/assets/images/verify_as_variant-b273bf8bac094b7b0b2f9c9fbacb9347.png differ diff --git a/assets/images/viewclients-b36c4d3338d93f5c39c94cbecbdb074f.png b/assets/images/viewclients-b36c4d3338d93f5c39c94cbecbdb074f.png new file mode 100644 index 0000000000..0c779207b6 Binary files /dev/null and b/assets/images/viewclients-b36c4d3338d93f5c39c94cbecbdb074f.png differ diff --git a/assets/js/008e2980.23d5f78b.js b/assets/js/008e2980.23d5f78b.js new file mode 100644 index 0000000000..ef1a69ae32 --- /dev/null +++ b/assets/js/008e2980.23d5f78b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[474],{60721:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 7","permalink":"/gsoc/docs/tags/week-7","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-07-31","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-31"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.12d24c8e.js b/assets/js/01a85c17.12d24c8e.js new file mode 100644 index 0000000000..7c4c90d924 --- /dev/null +++ b/assets/js/01a85c17.12d24c8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4013],{61460:(e,s,t)=>{t.d(s,{Z:()=>v});var a=t(67294),i=t(36905),r=t(46040),l=t(87524),n=t(33692),c=t(95999),o=t(16550),d=t(48596);function m(e){const{pathname:s}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,s){return!(e.unlisted&&!(0,d.Mg)(e.permalink,s))}(e,s)))),[e,s])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var g=t(85893);function b(e){let{sidebar:s}=e;const t=m(s.items);return(0,g.jsx)("aside",{className:"col col--3",children:(0,g.jsxs)("nav",{className:(0,i.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,g.jsx)("div",{className:(0,i.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:s.title}),(0,g.jsx)("ul",{className:(0,i.Z)(u.sidebarItemList,"clean-list"),children:t.map((e=>(0,g.jsx)("li",{className:u.sidebarItem,children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var h=t(13102);function j(e){let{sidebar:s}=e;const t=m(s.items);return(0,g.jsx)("ul",{className:"menu__list",children:t.map((e=>(0,g.jsx)("li",{className:"menu__list-item",children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,g.jsx)(h.Zo,{component:j,props:e})}function x(e){let{sidebar:s}=e;const t=(0,l.i)();return s?.items.length?"mobile"===t?(0,g.jsx)(p,{sidebar:s}):(0,g.jsx)(b,{sidebar:s}):null}function v(e){const{sidebar:s,toc:t,children:a,...l}=e,n=s&&s.items.length>0;return(0,g.jsx)(r.Z,{...l,children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsxs)("div",{className:"row",children:[(0,g.jsx)(x,{sidebar:s}),(0,g.jsx)("main",{className:(0,i.Z)("col",{"col--7":n,"col--9 col--offset-1":!n}),children:a}),t&&(0,g.jsx)("div",{className:"col col--2",children:t})]})})})}},24524:(e,s,t)=>{t.r(s),t.d(s,{default:()=>u});t(67294);var a=t(36905),i=t(35155),r=t(8264),l=t(35281),n=t(61460),c=t(26090),o=t(90197),d=t(92503),m=t(85893);function u(e){let{tags:s,sidebar:t}=e;const u=(0,i.M)();return(0,m.jsxs)(r.FG,{className:(0,a.Z)(l.k.wrapper.blogPages,l.k.page.blogTagsListPage),children:[(0,m.jsx)(r.d,{title:u}),(0,m.jsx)(o.Z,{tag:"blog_tags_list"}),(0,m.jsxs)(n.Z,{sidebar:t,children:[(0,m.jsx)(d.Z,{as:"h1",children:u}),(0,m.jsx)(c.Z,{tags:s})]})]})}},13008:(e,s,t)=>{t.d(s,{Z:()=>n});t(67294);var a=t(36905),i=t(33692);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=t(85893);function n(e){let{permalink:s,label:t,count:n}=e;return(0,l.jsxs)(i.Z,{href:s,className:(0,a.Z)(r.tag,n?r.tagWithCount:r.tagRegular),children:[t,n&&(0,l.jsx)("span",{children:n})]})}},26090:(e,s,t)=>{t.d(s,{Z:()=>o});t(67294);var a=t(35155),i=t(13008),r=t(92503);const l={tag:"tag_Nnez"};var n=t(85893);function c(e){let{letterEntry:s}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.Z,{as:"h2",id:s.letter,children:s.letter}),(0,n.jsx)("ul",{className:"padding--none",children:s.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.Z,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function o(e){let{tags:s}=e;const t=(0,a.P)(s);return(0,n.jsx)("section",{className:"margin-vert--lg",children:t.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},35155:(e,s,t)=>{t.d(s,{M:()=>i,P:()=>r});var a=t(95999);const i=()=>(0,a.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const s={};return Object.values(e).forEach((e=>{const t=function(e){return e[0].toUpperCase()}(e.label);s[t]??=[],s[t].push(e)})),Object.entries(s).sort(((e,s)=>{let[t]=e,[a]=s;return t.localeCompare(a)})).map((e=>{let[s,t]=e;return{letter:s,tags:t.sort(((e,s)=>e.label.localeCompare(s.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/01dc97a1.01bc5d1a.js b/assets/js/01dc97a1.01bc5d1a.js new file mode 100644 index 0000000000..8e36e525f8 --- /dev/null +++ b/assets/js/01dc97a1.01bc5d1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4390],{57682:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var s=t(85893),i=t(11151);const r={title:"Week 1",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"4th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 1"]},o=void 0,a={id:"2022/ui/updates/krishna/2022-06-20",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-06-20.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-06-20",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-06-20.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 1",permalink:"/gsoc/docs/tags/week-1"}],version:"current",frontMatter:{title:"Week 1",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"4th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 1"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-02"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-27"}},l={},d=[{value:"KT Session - REST API",id:"kt-session---rest-api",level:2},{value:"Contributions",id:"contributions",level:2},{value:"Add user page",id:"add-user-page",level:3},{value:"Demo video",id:"demo-video",level:3},{value:"This implementaion can be tested by pulling the changes from PR#229.",id:"this-implementaion-can-be-tested-by-pulling-the-changes-from-pr229",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"kt-session---rest-api",children:"KT Session - REST API"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(14th June, 2022)"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:(0,s.jsx)(n.strong,{children:"Gaurav"})})," sir took a knowledge transfer session on creating a REST API for fossology."]}),"\n",(0,s.jsx)(n.li,{children:"He explained fossology's folder structure and showed which files are affected whenever there is a REST call."}),"\n",(0,s.jsxs)(n.li,{children:["He also explained how to use the ",(0,s.jsx)(n.a,{href:"http://editor.swagger.io",children:"swagger editor"})," to ",(0,s.jsx)(n.strong,{children:"design"})," and ",(0,s.jsx)(n.strong,{children:"test"})," REST APIs."]}),"\n",(0,s.jsx)(n.li,{children:"In addition, he explained about different modules and the MVC architechture of the project."}),"\n",(0,s.jsxs)(n.li,{children:["Lastly, we learnt how to debug for errors in developement using ",(0,s.jsx)(n.code,{children:"php xdebug"})," extension in vscode."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"contributions",children:"Contributions"}),"\n",(0,s.jsx)(n.h3,{id:"add-user-page",children:"Add user page"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(19th June, 2022)"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["I completed the ",(0,s.jsx)(n.strong,{children:"UI Implementation"})," of Add User page."]}),"\n",(0,s.jsxs)(n.li,{children:["This task involved","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Reusing already created components to maintain uniformity in design."}),"\n",(0,s.jsx)(n.li,{children:"Using the existing API modules wherever needed."}),"\n",(0,s.jsx)(n.li,{children:"Writing clean and documented code with uniformity in folder structure."}),"\n",(0,s.jsxs)(n.li,{children:["Since the REST API for adding a user is not available, creating a mock api request using ",(0,s.jsx)(n.code,{children:"setTimeout"})," function."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"demo-video",children:"Demo video"}),"\n",(0,s.jsx)(n.p,{children:"The video clearly demonstrates the UI implementation of Add user page."}),"\n",(0,s.jsx)("iframe",{width:"560",height:"315",src:"https://user-images.githubusercontent.com/71918441/174468938-a0553bff-3e0d-4428-b62c-831ed4328767.mp4",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,s.jsxs)(n.h3,{id:"this-implementaion-can-be-tested-by-pulling-the-changes-from-pr229",children:["This implementaion can be tested by pulling the changes from PR",(0,s.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/229",children:(0,s.jsx)(n.strong,{children:"#229"})}),"."]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/02279bec.abe93071.js b/assets/js/02279bec.abe93071.js new file mode 100644 index 0000000000..2b6b05804b --- /dev/null +++ b/assets/js/02279bec.abe93071.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2075],{61832:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>a});var s=i(85893),t=i(11151);const r={title:"Week 9",author:"Abdelrahman Jamal"},o=void 0,d={id:"2023/copyrights/updates/2023-07-26",title:"Week 9",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-07-26.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-07-26",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-26",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-07-26.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 8",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-19"},next:{title:"Week 10",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-02"}},l={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"SVM Testing on Vectorization Algorithms and Pre-trained Word Embeddings",id:"svm-testing-on-vectorization-algorithms-and-pre-trained-word-embeddings",level:3},{value:"Results from Vectorization and Embeddings",id:"results-from-vectorization-and-embeddings",level:3},{value:"TF-IDF Model Performance",id:"tf-idf-model-performance",level:3},{value:"Datasets Explained",id:"datasets-explained",level:3},{value:"Why TF-IDF and BoW Outperformed",id:"why-tf-idf-and-bow-outperformed",level:3},{value:"SVM's predict_proba method",id:"svms-predict_proba-method",level:3},{value:"Problems and Solutions",id:"problems-and-solutions",level:2},{value:"Problem 1",id:"problem-1",level:3},{value:"Solution 1",id:"solution-1",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Text Preprocessing",id:"text-preprocessing",level:3},{value:"predict_proba SVM method",id:"predict_proba-svm-method",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July,26,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsx)(n.h3,{id:"svm-testing-on-vectorization-algorithms-and-pre-trained-word-embeddings",children:"SVM Testing on Vectorization Algorithms and Pre-trained Word Embeddings"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Vectorizers and Embeddings Tested"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Bag of Words (BoW)"}),"\n",(0,s.jsx)(n.li,{children:"Term Frequency - Inverse Document Frequency (TF-IDF)"}),"\n",(0,s.jsx)(n.li,{children:"GloVe (averaging word vectors for each sentence)"}),"\n",(0,s.jsx)(n.li,{children:"FastText"}),"\n",(0,s.jsx)(n.li,{children:"Sentence Transformers"}),"\n",(0,s.jsx)(n.li,{children:"Word2Vec"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"results-from-vectorization-and-embeddings",children:"Results from Vectorization and Embeddings"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"BoW and TF-IDF yielded the most promising results both in terms of accuracy."}),"\n",(0,s.jsx)(n.li,{children:"GloVe embeddings were tested across four dimensions: 50, 100, 200, and 300. The best-performing 300-dimensional embeddings still underperformed TF-IDF by around 4% for both classes 0 and 1."}),"\n",(0,s.jsx)(n.li,{children:"FastText's pre-trained embeddings (sourced from Wikipedia) were larger than 7GB, making it impractical to load them. Hence, I decided to train the embedder from scratch using our dataset, resulting in slightly inferior performance than FastText."}),"\n",(0,s.jsx)(n.li,{children:"Other embedders lagged even further in performance."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"tf-idf-model-performance",children:"TF-IDF Model Performance"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Precision\n| | 0 | 1 |\n|:-----|---------:|---------:|\n| 0 | 0.991262 | 0.967086 |\n| 1 | 0.97284 | 0.703488 |\n| 2 | 0.945312 | 0.892562 |\n| 3 | 0.991701 | 0.911765 |\n| 4 | 0.995004 | 0.974809 |\n| Mean | 0.979224 | 0.889942 |\n\nRecall\n| | 0 | 1 |\n|:-----|---------:|---------:|\n| 0 | 0.988153 | 0.975586 |\n| 1 | 0.885393 | 0.916667 |\n| 2 | 0.902985 | 0.93913 |\n| 3 | 0.980312 | 0.96124 |\n| 4 | 0.990982 | 0.985943 |\n| Mean | 0.949565 | 0.955713 |\n\nF1-score\n| | 0 | 1 |\n|:-----|---------:|---------:|\n| 0 | 0.989705 | 0.971317 |\n| 1 | 0.927059 | 0.796053 |\n| 2 | 0.923664 | 0.915254 |\n| 3 | 0.985974 | 0.935849 |\n| 4 | 0.992989 | 0.980344 |\n| Mean | 0.963878 | 0.919764 |\n"})}),"\n",(0,s.jsx)(n.h3,{id:"datasets-explained",children:"Datasets Explained"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"0 corresponds to the test dataset (20% of the Fossology dataset), with training performed on the remaining 80%."}),"\n",(0,s.jsx)(n.li,{children:"1 represents the Kubernetes dataset."}),"\n",(0,s.jsx)(n.li,{children:"2 stands for the Tensorflow dataset."}),"\n",(0,s.jsx)(n.li,{children:"3 is identified as the Fossology-provided-dataset-1."}),"\n",(0,s.jsx)(n.li,{children:"4 comprises a merged set of all aforementioned datasets, including the training data."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"why-tf-idf-and-bow-outperformed",children:"Why TF-IDF and BoW Outperformed"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"The dataset size may not be large enough to realize the benefits of more advanced embeddings."}),"\n",(0,s.jsx)(n.li,{children:"Copyright classification differs from conventional text classification due to the presence of code snippets and other unique features."}),"\n",(0,s.jsx)(n.li,{children:"The absence of text preprocessing in the current iteration might be a limiting factor."}),"\n"]}),"\n",(0,s.jsxs)(n.h3,{id:"svms-predict_proba-method",children:["SVM's ",(0,s.jsx)(n.code,{children:"predict_proba"})," method"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Discussions with Anupam led to a consensus on continuing the tests using SVM, leveraging its ",(0,s.jsx)(n.code,{children:"predict_proba"})," method. This technique provides the probability associated with each SVM prediction, offering insight into the model's confidence. A threshold can be set on this confidence factor to potentially enhance recall, even if it results in reduced precision."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"problems-and-solutions",children:"Problems and Solutions"}),"\n",(0,s.jsx)(n.h3,{id:"problem-1",children:"Problem 1"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Classification reports were overly verbose, consuming excess space, and included redundant information."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"solution-1",children:"Solution 1"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Developed a function to streamline reports for each dataset, displaying precision up to more than two decimal places."}),"\n",(0,s.jsx)(n.li,{children:"This function computes the average precision, recall, and F1-scores, providing a comprehensive yet concise view of model performance across datasets, irrespective of their sizes."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,s.jsx)(n.h3,{id:"text-preprocessing",children:"Text Preprocessing"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Aim to evaluate the efficacy of each vectorization method post-text preprocessing."}),"\n"]}),"\n",(0,s.jsxs)(n.h3,{id:"predict_proba-svm-method",children:[(0,s.jsx)(n.code,{children:"predict_proba"})," SVM method"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Assess the performance of the ",(0,s.jsx)(n.code,{children:"predict_proba"})," method within the SVM framework."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>d,a:()=>o});var s=i(67294);const t={},r=s.createContext(t);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/025be6d6.6fa9b23d.js b/assets/js/025be6d6.6fa9b23d.js new file mode 100644 index 0000000000..f3392777ed --- /dev/null +++ b/assets/js/025be6d6.6fa9b23d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7973],{88594:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>r,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>l});var t=n(85893),o=n(11151);const a={title:"Week 4",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},i=void 0,d={id:"2022/ui/updates/soham/2022-07-8",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-07-8.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-07-8",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-8",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-07-8.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 4",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-7"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-9"}},r={},l=[{value:"Jobs/all endpoint added",id:"jobsall-endpoint-added",level:2},{value:"PR link - feat(api): jobs/all endpoint added",id:"pr-link---featapi-jobsall-endpoint-added",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"jobsall-endpoint-added",children:"Jobs/all endpoint added"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 14th, 2022)"})}),"\n",(0,t.jsxs)(s.p,{children:["Implementation of the ",(0,t.jsx)(s.code,{children:"jobs/all"})," API endpoint. this API endpoint sends all the jobs craeted by all the users. This API only sends a response only if the requesting user is an admin."]}),"\n",(0,t.jsxs)(s.p,{children:["The API response when the requesting user is an Admin: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(s.img,{alt:"adimin_res",src:n(37739).Z+"",width:"550",height:"675"})]}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsxs)(s.p,{children:["The API response when the requesting user is Not an Admin: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(s.img,{alt:"nonAdmin_response",src:n(6896).Z+"",width:"470",height:"345"})]}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link---featapi-jobsall-endpoint-added",children:["PR link - ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2260",children:"feat(api): jobs/all endpoint added"})]}),"\n",(0,t.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Completing the Jobs Module UI once the backend PRs are approved."}),"\n",(0,t.jsx)(s.li,{children:"Picking up License browser module after dicussions with mentors"}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},37739:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/admin_response-7a3e8ae42ab966c4625a492a7fdfadbc.png"},6896:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/nonAdmin_response-95fe12647e2706ca3d523968246f2d3d.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>d,a:()=>i});var t=n(67294);const o={},a=t.createContext(o);function i(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/028ec75c.75416d02.js b/assets/js/028ec75c.75416d02.js new file mode 100644 index 0000000000..e377094db6 --- /dev/null +++ b/assets/js/028ec75c.75416d02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4683],{88774:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=i(85893),s=i(11151);const r={title:"Week 8",author:"Omar AbdelSamea"},o="Coding Week 8",c={id:"2021/microservice/updates/2021-07-27",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-07-27.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-07-27",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-07-27.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-20"},next:{title:"Week 9",permalink:"/gsoc/docs/2021/microservice/updates/2021-08-03"}},a={},l=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Migrating agent configuration to etcd",id:"migrating-agent-configuration-to-etcd",level:2},{value:"End of the week result",id:"end-of-the-week-result",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"coding-week-8",children:"Coding Week 8"}),"\n",(0,t.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,t.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,t.jsx)(n.li,{children:"Vasudev"}),"\n",(0,t.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,t.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,t.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,t.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Presented a possible implementation of migrating agent configuration to etcd."}),"\n",(0,t.jsx)(n.li,{children:"Discussed the issues that happened while trying to apply agent UI issue solution."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"migrating-agent-configuration-to-etcd",children:"Migrating agent configuration to etcd"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["in the agent's entrypoint, ",(0,t.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/Docker/conf.sh",children:"conf.sh"})," will open agent conf file in ",(0,t.jsx)(n.code,{children:"/usr/share/fossology//.conf"})," and start iterating over it and extracts agent conf then create a PUT request to etcd pod for each configuration."]}),"\n",(0,t.jsxs)(n.li,{children:["To reload the scheduler configuration ",(0,t.jsx)(n.code,{children:"fo_cli"})," will be used using ",(0,t.jsx)(n.code,{children:"--reload"})," option."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"end-of-the-week-result",children:"End of the week result"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Migrated Agent configuraiton from ",(0,t.jsx)(n.code,{children:".conf"})," to etcd","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/src/scheduler/agent/scheduler.c#L795",children:"scheduler_agent_config"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"created conf.sh to iterate over agent configuration and make the appropriate API calls to etcd container."}),"\n",(0,t.jsx)(n.li,{children:"Added fo_cli and modified entrypoint to reload scheduler configuration."}),"\n",(0,t.jsx)(n.li,{children:"Applied discussed solution of bundling UI folders inside web package."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>o});var t=i(67294);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/02c6e69e.d04aa58b.js b/assets/js/02c6e69e.d04aa58b.js new file mode 100644 index 0000000000..dde6c4e63e --- /dev/null +++ b/assets/js/02c6e69e.d04aa58b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1019],{89526:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>h,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var i=s(85893),t=s(11151);const r={sidebar_position:4,title:"Week 4"},h=void 0,l={id:"2022/minutes/23-06-2022",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/minutes/23-06-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/23-06-2022",permalink:"/gsoc/docs/2022/minutes/23-06-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/23-06-2022.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Week 4"},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/minutes/16-06-2022"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/minutes/30-06-2022"}},a={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 23-06-2022."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussion on updating of reports regularly by students."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on SGD Classifier it is giving 55% accuracy. Also improved the accuracy of logistic regression to 65%, Mentors suggested to use pipeline for modal training."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Last week I have created few videos for basic workflow of FOSSology in English and Chinese (",(0,i.jsx)(n.a,{href:"https://b23.tv/7MEyr04",children:"https://b23.tv/7MEyr04"}),'). I have also checked the code related to groups. and understood the requirements of "concept of projects". I will start working on this and will be ready with a PR by next week.']}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:'Created a second PR with changes suggested by mentors. Added copyright text of empty copyright files to "(c) FOSSology Contributors". Will continue with more changes.'}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on pages like create user, edit user completed with UI. Rest does not exist so will work on rest API."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on all recent jobs page and my recent jobs page last week and implemented changes/ comments proposed by mentors. Also worked on search functionality in browse page."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I have worked on two pages one is maintenance page and other one is duplicate bucketpool page. Now working on integrating RESTAPI for maintenance page. Also looking forward to work on different pages."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>h});var i=s(67294);const t={},r=i.createContext(t);function h(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:h(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/04e89960.20c0ffc4.js b/assets/js/04e89960.20c0ffc4.js new file mode 100644 index 0000000000..76b8678065 --- /dev/null +++ b/assets/js/04e89960.20c0ffc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[543],{8033:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 9","permalink":"/gsoc/docs/tags/week-9","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-08-14","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-14"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/050e991b.5b3338a4.js b/assets/js/050e991b.5b3338a4.js new file mode 100644 index 0000000000..fda28550bd --- /dev/null +++ b/assets/js/050e991b.5b3338a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7493],{49442:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>c,frontMatter:()=>n,metadata:()=>a,toc:()=>r});var i=t(85893),o=t(11151);const n={title:"Week 5",author:"Shruti Agarwal"},l=void 0,a={id:"2021/ui/updates/shruti/2021-07-13",title:"Week 5",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-07-13.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-07-13",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 4",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-06"},next:{title:"Week 6",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-20"}},d={},r=[{value:"Screenshots",id:"screenshots",level:2},{value:"Edit Uploads",id:"edit-uploads",level:3},{value:"Snackbar",id:"snackbar",level:3},{value:"One-Shot License Analysis",id:"one-shot-license-analysis",level:3},{value:"One-Shot Copright/Email/URL Analysis",id:"one-shot-coprightemailurl-analysis",level:3},{value:"One-Shot Monk",id:"one-shot-monk",level:3},{value:"Upload From Version Control System",id:"upload-from-version-control-system",level:3},{value:"Browse Page Pagination",id:"browse-page-pagination",level:3},{value:"Contributions",id:"contributions",level:2}];function h(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Added the edit Uploads page. Created the getFolders page from where it is fetching all the folders. Created the organizeUploads which contains deleteUploadFile and getUploadsById."}),"\n",(0,i.jsx)(s.li,{children:"Replaced the getFolders Api function with the common function in editUploads."}),"\n",(0,i.jsxs)(s.li,{children:["Updated the alerts styling to snackbars. Closes issue ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/issues/67",children:"#67"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Added the vcs upload page."}),"\n",(0,i.jsxs)(s.li,{children:["Added the recursive request for the request of ",(0,i.jsx)(s.code,{children:"/uploads/{id}"}),", retries is set to be for 10 now."]}),"\n",(0,i.jsx)(s.li,{children:"Created the issue for single request for the upload and analysis as discussed in the meeting with which user don't have to wait for the analysis process."}),"\n",(0,i.jsx)(s.li,{children:"Currently, we are not having REST API for edit the uploads, we need to expose the edit upload from api, so created the issue for it."}),"\n",(0,i.jsx)(s.li,{children:"Remove the redundancy of credentials in the api by setting initial value of credentials to include."}),"\n",(0,i.jsx)(s.li,{children:"Added the one-shot license analysis page and all the related states to it."}),"\n",(0,i.jsx)(s.li,{children:"Added the one-shot copyright/email/url page and all the related states to it."}),"\n",(0,i.jsx)(s.li,{children:"Added the one-shot monk page and all the related states to it."}),"\n",(0,i.jsx)(s.li,{children:"Created the issue for Access-Control-Expose-Headers response header indicates which headers can be exposed as part of the response by listing their names."}),"\n",(0,i.jsx)(s.li,{children:"Added the list of all Access control headers and Expose headers used in the fossology."}),"\n",(0,i.jsx)(s.li,{children:"Added the pagination feature in browse page."}),"\n",(0,i.jsx)(s.li,{children:"Added the entries field and pagination just like the current implementation."}),"\n",(0,i.jsx)(s.li,{children:"Stored the response header of x-total-pages in localStorage."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsx)(s.h3,{id:"edit-uploads",children:"Edit Uploads"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"edit-uploads",src:t(57301).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h3,{id:"snackbar",children:"Snackbar"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"danger-snackbar",src:t(32780).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"sucess-snackbar",src:t(86725).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h3,{id:"one-shot-license-analysis",children:"One-Shot License Analysis"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"one-shot-license-analysis",src:t(34113).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h3,{id:"one-shot-coprightemailurl-analysis",children:"One-Shot Copright/Email/URL Analysis"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"one-shot-copyright-email-url-analysis",src:t(86459).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h3,{id:"one-shot-monk",children:"One-Shot Monk"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"one-shot-monk",src:t(3672).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h3,{id:"upload-from-version-control-system",children:"Upload From Version Control System"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"upload-from-version-control-system",src:t(65958).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"upload-from-version-control-system-request",src:t(33403).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h3,{id:"browse-page-pagination",children:"Browse Page Pagination"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"browse-page-pagination",src:t(29801).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(s.h2,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/issues/70",children:"feat(copyright): Added the one-shot copyright/email/url page"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/70",children:"feat(oneShotMonk): Added the one-shot monk page "})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/70",children:"feat(oneShotAnalysis): Added the one-shot license analysis page "})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/71",children:"feat(vcs): added the upload vcs page"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2046",children:"REST API: Created the single request for the upload and analysis"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/74",children:"fix(api): remove the redundancy of credentials"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/77",children:"feat(edit-upload): added the edit upload page"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/77",children:"fix(folder): fixed the getAllFolders api"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2047",children:"REST API: Edit request for the Uploads"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/78",children:"feat(snackbar): updated the alerts to snackbar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/81",children:"feat(browse-pagination): Added the browse pagination feature"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2041",children:"Getting all the headers in response from the Rest APIs"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2042",children:"feat(expose-headers): added the expose headers option"})}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},29801:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/browsePagePagination-e24f8d3c38adf3f2623814248a37dac7.png"},57301:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/editUpload-a6a5602484bae59bb842e78926bd1cc4.png"},86459:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/oneShotCopyrightAnalysis-fdc30a9e5b997cb1a12092bb3bf0aeed.png"},34113:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/oneShotLicenseAnalysis-cfd9d2862842b6c2f328df21d11e48d7.png"},3672:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/oneShotMonk-722d6a763e5ecbc9687a54c1430ebb7a.png"},65958:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/uploadVcs-2085d770c18d976e830e378ff96d2bfc.png"},33403:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/uploadVcsRequest-414bc9eb24bfbffe65aabbfae30bc00d.png"},32780:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/dangerSnackbar-b60dd15fbcdca60bbb7c6468ee468284.png"},86725:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/successSnackbar-152d2a01f0187c8b2215bed5f4eb56b7.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>l});var i=t(67294);const o={},n=i.createContext(o);function l(e){const s=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),i.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0546864f.bb596fe2.js b/assets/js/0546864f.bb596fe2.js new file mode 100644 index 0000000000..8b05bc4ec1 --- /dev/null +++ b/assets/js/0546864f.bb596fe2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2],{2655:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>r});var o=t(85893),i=t(11151);const s={title:"Week 10",author:"Sushant Kumar"},c=void 0,a={id:"2023/cyclonedx/updates/2023-08-03",title:"Week 10",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-08-03.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-08-03",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-08-03.md",tags:[],version:"current",frontMatter:{title:"Week 10",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 9",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-27"},next:{title:"Week 11",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-08-10"}},l={},r=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:(0,o.jsx)(n.em,{children:"(August,03,2023)"})}),"\n",(0,o.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Throughout this week, my primary focus remained on enhancing the ScanCode agent."}),"\n",(0,o.jsx)(n.li,{children:"A significant concern with the agent is its current practice of invoking\nScanCode through the command line interface (CLI) for each individual file,\nleading to a file-by-file scanning process. Unfortunately, this resulted in a\nconsiderable amount of time being spent on bootstrapping ScanCode for each\nfile."}),"\n",(0,o.jsxs)(n.li,{children:["As a solution to this inefficiency, I explored a different approach. I\nattempted to leverage the ",(0,o.jsx)(n.a,{href:"https://github.com/nexB/scancode-toolkit/blob/develop/src/scancode/api.py",children:"ScanCode\nAPI"}),"\nto scan all files in a single call, consolidating the results into a unified\nlocation, potentially a JSON file."]}),"\n",(0,o.jsx)(n.li,{children:"The intended workflow involves storing the outcomes from the API call in a\ncentralized JSON file. Subsequently, the data extracted from the JSON results\nwill be efficiently populated into the database for each file during the upload\nprocess."}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"In the coming weeks, I will try to implement the aforementioned workflow in\nFOSSology."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>c});var o=t(67294);const i={},s=o.createContext(i);function c(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/05f52370.d660aaed.js b/assets/js/05f52370.d660aaed.js new file mode 100644 index 0000000000..c74e45b84c --- /dev/null +++ b/assets/js/05f52370.d660aaed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[415],{36393:e=>{e.exports=JSON.parse('{"tags":[{"label":"coding-week","permalink":"/gsoc/blog/tags/coding-week","count":1},{"label":"cmake","permalink":"/gsoc/blog/tags/cmake","count":1}]}')}}]); \ No newline at end of file diff --git a/assets/js/061e6717.928716a0.js b/assets/js/061e6717.928716a0.js new file mode 100644 index 0000000000..50c10c83de --- /dev/null +++ b/assets/js/061e6717.928716a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7393],{21603:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var s=t(85893),i=t(11151);const l={title:"Week 11",author:"Sushant Kumar"},o=void 0,r={id:"2023/cyclonedx/updates/2023-08-10",title:"Week 11",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-08-10.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-08-10",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-08-10.md",tags:[],version:"current",frontMatter:{title:"Week 11",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 10",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-08-03"},next:{title:"Community Bonding 1",permalink:"/gsoc/docs/2023/minutes/2023-05-11"}},a={},c=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",em:"em",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(August,10,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"This past week, my focus was on implementing a method to simultaneously scan\nall files, streamlining the scanning process."}),"\n",(0,s.jsxs)(n.li,{children:["The following procedure was followed to achieve this objective:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"File Location Retrieval:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Utilized the Fossology ScanCode agent to gather the file locations for\neach individual file."}),"\n",(0,s.jsx)(n.li,{children:"Stored these file locations in a temporary text file."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Python Script Integration:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Passed the path of the temporary text file containing file locations to a\ndedicated Python script which will scan result using scancode api."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Parallel Scanning Script:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Developed a Python script responsible for the concurrent scanning of\nfiles."}),"\n",(0,s.jsx)(n.li,{children:"Employed a loop to iterate through each file location stored in the text\nfile."}),"\n",(0,s.jsx)(n.li,{children:"For each file location, invoked the ScanCode API to initiate scanning."}),"\n",(0,s.jsx)(n.li,{children:"Captured the resulting output and appended it to a JSON file."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Updating results to database:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Following the script's completion, extracted the data from the generated\nJSON file."}),"\n",(0,s.jsx)(n.li,{children:"Leveraged the ScanCode agent to retrieve the data and subsequently saved\nit to the Fossology database."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Clean-up Process:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Concluded the process by erasing both the temporary text file and the\ngenerated JSON file."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["This strategic shift offers notable advantages:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Drastically reducing the time spent on ScanCode's bootstrapping process."}),"\n",(0,s.jsx)(n.li,{children:"Optimizing the utilization of the ScanCode toolkit within the Fossology\nframework."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Raised a ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2569",children:"pull request"}),"\nafter making all these changes."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"In the coming weeks, I will start making my final report for final\nevaluation."}),"\n",(0,s.jsxs)(n.li,{children:["Will also work on this ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2569",children:"PR"}),",\nif any changes are required."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var s=t(67294);const i={},l=s.createContext(i);function o(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/06748857.374ab957.js b/assets/js/06748857.374ab957.js new file mode 100644 index 0000000000..6f4a63569d --- /dev/null +++ b/assets/js/06748857.374ab957.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6242],{42546:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=n(85893),t=n(11151);const o={title:"Week 4",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},r="Week 4 Meeting and Activities",a={id:"2024/spdx-expression/updates/2024-06-18",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/updates/2024-06-18.md",sourceDirName:"2024/spdx-expression/updates",slug:"/2024/spdx-expression/updates/2024-06-18",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/updates/2024-06-18.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx-expression",permalink:"/gsoc/docs/tags/spdx-expression"}],version:"current",frontMatter:{title:"Week 4",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-11"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-25"}},c={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Presentation of UI Changes",id:"presentation-of-ui-changes",level:3},{value:"Activities",id:"activities",level:2},{value:"Adding More Than Two Licenses in a Group",id:"adding-more-than-two-licenses-in-a-group",level:3},{value:"Removing a License in License Expression",id:"removing-a-license-in-license-expression",level:3}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-4-meeting-and-activities",children:"Week 4 Meeting and Activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 18, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsx)(s.h3,{id:"presentation-of-ui-changes",children:"Presentation of UI Changes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Presented the changes made in the UI."}),"\n",(0,i.jsx)(s.li,{children:"Received feedback: Currently, it is not possible to add more than two licenses in a group within the license expression."}),"\n",(0,i.jsx)(s.li,{children:"Recieved suggestion: The button for creating a license expression (if it does not exist) should be beside the user decision."}),"\n",(0,i.jsx)(s.li,{children:"Informed the mentors that I will start working on the report generation part of the project."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Created functionality to allow licenses and groups to be added anywhere and option to remove license. Now, more than two licenses can be added to a group."}),"\n",(0,i.jsx)(s.h3,{id:"adding-more-than-two-licenses-in-a-group",children:"Adding More Than Two Licenses in a Group"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Adding More Than Two Licenses in a Group",src:n(29059).Z+"",width:"1849",height:"935"})}),"\n",(0,i.jsx)(s.h3,{id:"removing-a-license-in-license-expression",children:"Removing a License in License Expression"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Removing a License in License Expression",src:n(18392).Z+"",width:"1849",height:"935"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Started working on report generation for SPDX Tag Value and SPDX CSV."}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},29059:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/addLicense-2055b5350867510f04fb167222b869a4.png"},18392:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/removeLicense-569bdca2c0b28b1c2f1cc9430d94106d.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>r});var i=n(67294);const t={},o=i.createContext(t);function r(e){const s=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/06949c14.1a3fd5ed.js b/assets/js/06949c14.1a3fd5ed.js new file mode 100644 index 0000000000..509b773e5b --- /dev/null +++ b/assets/js/06949c14.1a3fd5ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[542],{54534:e=>{e.exports=JSON.parse('{"tag":{"label":"coding-week","permalink":"/gsoc/blog/tags/coding-week","allTagsPath":"/gsoc/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/gsoc/blog/tags/coding-week","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/07f088a0.49379215.js b/assets/js/07f088a0.49379215.js new file mode 100644 index 0000000000..2668bc16f9 --- /dev/null +++ b/assets/js/07f088a0.49379215.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2744],{22509:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var i=s(85893),t=s(11151);const l={title:"Community Bonding",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},r=void 0,a={id:"2021/buildsystem/updates/2021-05-28",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-05-28.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-05-28",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-05-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-05-28.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Community Bonding",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Introduction",permalink:"/gsoc/docs/2021/buildsystem/"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-11"}},o={},d=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 28th, 2021)"})}),"\n",(0,i.jsx)(n.p,{children:"This meeting is the first of the recurring weekly GSoC project meetings. In this meeting the current status of progress according to the proposal was discussed and some topics related to current build system based on Make and the new build system based on CMake."}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"The current progress according to schedule"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The blog on CMake is on the way."}),"\n",(0,i.jsx)(n.li,{children:"I have gone through the Makefiles to get a rough estimate of the work."}),"\n",(0,i.jsx)(n.li,{children:"Published the GSoC project blog"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"How are agents related to each other in terms of compilation?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Each agent is independently compiled and generally use the source code in ",(0,i.jsx)(n.code,{children:"lib"})," folder. If any agent needs other agent then it uses the library files instead."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Does every agent have a executable and library?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Not necessarily, there are agents written in C, C++ and PHP, depending on what is the use the configuration can be different."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"It would be better if I get started by creating CMake configuration for any of the agent."}),"\n",(0,i.jsx)(n.li,{children:"Fork and create a branch for development and mention the same in blog or wiki."}),"\n",(0,i.jsx)(n.li,{children:"Add a timeline section in blog or wiki as provided in the project proposal."}),"\n",(0,i.jsx)(n.li,{children:"Publish the CMake introductory blog."}),"\n",(0,i.jsx)(n.li,{children:"Prepare a prototype/plan for next week."}),"\n",(0,i.jsx)(n.li,{children:"Find out the best alternative for handling the global variables."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 4th, 2021)"})}),"\n",(0,i.jsx)(n.p,{children:"In this second meeting points over default Makefiles were discussed. Ninja can be used as an alternative for Makefiles."}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"What is the use of"})," ",(0,i.jsx)(n.code,{children:"Makefile.deps"})," ",(0,i.jsx)(n.strong,{children:"and"})," ",(0,i.jsx)(n.code,{children:"Makefile.process"})," ",(0,i.jsx)(n.strong,{children:"files?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Makefile.deps"})," consists of many used and unused snippets. These snippets help setup the build and test environment for fossology. Since there are many directories that are hardcoded, special care is required while replacing this file."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Makefile.process"})," generates a master variable from list of variables. It assists the script in ",(0,i.jsx)(n.code,{children:"Makefile.conf"})," file. These files together generate a list of variables that can be used throughout the build process."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["The build can be made faster using ",(0,i.jsx)(n.strong,{children:"Ninja"})," instead of ",(0,i.jsx)(n.strong,{children:"Make"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Ninja supports parallel builds by default."}),"\n",(0,i.jsx)(n.li,{children:"Print the flags used once the CMake configuration is working. That will help us debug the process."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Write a ",(0,i.jsx)(n.em,{children:"CMakeLists.txt"})," for ",(0,i.jsx)(n.strong,{children:"lib"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Push the working branch and update the link either on wiki or blog."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var i=s(67294);const t={},l=i.createContext(t);function r(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/08063d3c.a542bf6d.js b/assets/js/08063d3c.a542bf6d.js new file mode 100644 index 0000000000..a6451e7524 --- /dev/null +++ b/assets/js/08063d3c.a542bf6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[374],{70590:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>c,metadata:()=>r,toc:()=>o});var s=t(85893),i=t(11151);const c={title:"Week 4",author:"Abdelrahman Jamal"},a="Meeting 4",r={id:"2024/license-detection/updates/2024-06-20",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-06-20.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-06-20",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-06-20.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-13"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-27"}},l={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Linux License Dataset",id:"linux-license-dataset",level:3},{value:"Refined Semantic Search",id:"refined-semantic-search",level:3},{value:"Performance Metrics",id:"performance-metrics",level:3},{value:"Conclusions and Next Steps",id:"conclusions-and-next-steps",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 20,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsx)(n.h3,{id:"linux-license-dataset",children:"Linux License Dataset"}),"\n",(0,s.jsx)(n.p,{children:"Created a larger, more comprehensive dataset of licenses from Linux sources. This dataset includes line-level annotations to indicate which lines contain license-relevant information."}),"\n",(0,s.jsx)(n.h3,{id:"refined-semantic-search",children:"Refined Semantic Search"}),"\n",(0,s.jsx)(n.p,{children:"Continued refining the semantic search implementation:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Explored Alternative Models: Tested other sentence transformer models and potential alternatives, but determined that the current model (all-mpnet-base-v2) was not a bottleneck."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"performance-metrics",children:"Performance Metrics"}),"\n",(0,s.jsx)(n.p,{children:"Introduced two key metrics to evaluate semantic search effectiveness:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Accuracy: Measures if at least one relevant line is found per file (binary: 0 or 100%). ",(0,s.jsx)(n.strong,{children:"The current model achieved 96% accuracy on the Linux dataset."})]}),"\n",(0,s.jsxs)(n.li,{children:["Coverage: Calculates the percentage of relevant lines found within each file. ",(0,s.jsx)(n.strong,{children:"The average coverage across files was 80%."})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusions-and-next-steps",children:"Conclusions and Next Steps"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Give semantic search one more week and focus on improving license matching accuracy."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var s=t(67294);const i={},c=s.createContext(i);function a(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/090ff72c.f00dd75d.js b/assets/js/090ff72c.f00dd75d.js new file mode 100644 index 0000000000..bea0b60dde --- /dev/null +++ b/assets/js/090ff72c.f00dd75d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5602],{73421:s=>{s.exports=JSON.parse('{"tag":{"label":"gsoc21","permalink":"/gsoc/docs/tags/gsoc-21","allTagsPath":"/gsoc/docs/tags","count":10,"items":[{"id":"2021/buildsystem/updates/2021-05-28","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-05-28"},{"id":"2021/buildsystem/updates/2021-06-11","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-11"},{"id":"2021/buildsystem/updates/2021-08-13","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-13"},{"id":"2021/buildsystem/updates/2021-06-18","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-18"},{"id":"2021/buildsystem/updates/2021-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-22"},{"id":"2021/buildsystem/updates/2021-06-29","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-29"},{"id":"2021/buildsystem/updates/2021-07-09","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-09"},{"id":"2021/buildsystem/updates/2021-07-23","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-23"},{"id":"2021/buildsystem/updates/2021-07-30","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-30"},{"id":"2021/buildsystem/updates/2021-08-06","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-06"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/09aa2e1a.31813f51.js b/assets/js/09aa2e1a.31813f51.js new file mode 100644 index 0000000000..bb31b15706 --- /dev/null +++ b/assets/js/09aa2e1a.31813f51.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8927],{87088:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var t=i(85893),s=i(11151);const r={title:"Community bonding",author:"Shreya Gautam"},o="Meeting Summary for GSoC Community Bonding Period",a={id:"2024/pipeline/updates/2024-05-07",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-05-07.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-05-07",permalink:"/gsoc/docs/2024/pipeline/updates/2024-05-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-05-07.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Shreya Gautam"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/pipeline/"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/pipeline/updates/2024-05-30"}},d={},l=[{value:"Engagements",id:"engagements",level:3},{value:"Engagements",id:"engagements-1",level:3},{value:"Engagements",id:"engagements-2",level:3}];function c(e){const n={em:"em",h1:"h1",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"meeting-summary-for-gsoc-community-bonding-period",children:(0,t.jsx)(n.strong,{children:"Meeting Summary for GSoC Community Bonding Period"})}),"\n",(0,t.jsx)(n.h1,{id:"introduction-meeting",children:"Introduction Meeting"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 7,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"This was the inaugural meeting of the community bonding period for GSoC 2024."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"A general introduction of mentors and contributors took place."}),"\n",(0,t.jsx)(n.li,{children:"Time and platform for the weekly general meeting were agreed upon."}),"\n"]}),"\n",(0,t.jsx)(n.h1,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 9,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"The first general meeting took place on this day."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Mentors emphasized the importance of communication in open source projects."}),"\n",(0,t.jsx)(n.li,{children:"They encouraged the practice of regular updates"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"engagements",children:"Engagements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Explored Safaa's codebase to grasp its functionality, provided updates, and deliberated on the pipeline procedures."}),"\n",(0,t.jsx)(n.li,{children:"Addressed crucial pipeline requirements essential for Safaa's automation efforts."}),"\n"]}),"\n",(0,t.jsx)(n.h1,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 16, 2024)"})}),"\n",(0,t.jsx)(n.p,{children:"Contributors provided updates and offered a brief overview of their ongoing tasks. Mentors inquired about challenges encountered during the setup of Fossology and their respective environments."}),"\n",(0,t.jsx)(n.h3,{id:"engagements-1",children:"Engagements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Evaluated the suitability of Safaa's dataset with a focus on regex preprocessing, proposing Nirjas as an alternative."}),"\n",(0,t.jsx)(n.li,{children:"Due to challenges faced while setting up Linux on my system, I transitioned to configuring Ubuntu within VirtualBox for Fossology."}),"\n"]}),"\n",(0,t.jsx)(n.h1,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 23, 2024)"})}),"\n",(0,t.jsx)(n.p,{children:"In the report:"}),"\n",(0,t.jsx)(n.p,{children:"Contributors discussed their progress, with mentors emphasizing the importance of making incremental contributions to deepen project understanding. Final arrangements for project-specific weekly meetings were also settled."}),"\n",(0,t.jsx)(n.h3,{id:"engagements-2",children:"Engagements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Discussed the future of Safaa as an ML project for offline deployment."}),"\n",(0,t.jsx)(n.li,{children:"Explored potential changes, including fine-tuning the model and identifying edge cases where improvements are needed."}),"\n",(0,t.jsx)(n.li,{children:"Assigned to explore the MLOps field for relevance to the project."}),"\n",(0,t.jsx)(n.li,{children:"Discussed the iterative generation of training scripts for binaries and the push of model binaries."}),"\n",(0,t.jsx)(n.li,{children:"There was a discussion on establishing a shadow environment, conducting mirrored testing on output data, and implementing CI/CD pipelining."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"This report summarizes my activities and interactions during the GSoC community bonding period."})})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>o});var t=i(67294);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0a23bdf5.884064cf.js b/assets/js/0a23bdf5.884064cf.js new file mode 100644 index 0000000000..3e5240ae62 --- /dev/null +++ b/assets/js/0a23bdf5.884064cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2405],{34211:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var t=i(85893),s=i(11151);const o={title:"Week 13",author:"Abdelrahman Jamal"},l=void 0,a={id:"2023/copyrights/updates/2023-08-23",title:"Week 13",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-08-23.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-08-23",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-08-23.md",tags:[],version:"current",frontMatter:{title:"Week 13",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 12",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-16"},next:{title:"Week 14",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-30"}},r={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. Exploring Potential NER Models:",id:"1-exploring-potential-ner-models",level:3},{value:"2. License Compatibility & Model Selection:",id:"2-license-compatibility--model-selection",level:3},{value:"3. Testing the Tiny BERT Model:",id:"3-testing-the-tiny-bert-model",level:3},{value:"4. Integration and Preprocessing Considerations:",id:"4-integration-and-preprocessing-considerations",level:3},{value:"5. Language Detection Model:",id:"5-language-detection-model",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:2},{value:"1. Training a Custom Tiny BERT Model",id:"1-training-a-custom-tiny-bert-model",level:3},{value:"2. Domain-Specific Dataset Training",id:"2-domain-specific-dataset-training",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(August,23,2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,t.jsx)(n.h3,{id:"1-exploring-potential-ner-models",children:"1. Exploring Potential NER Models:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Explored various NER models suitable for integration into Fossology, focusing on those with a size limit of around 40 megabytes."}),"\n",(0,t.jsx)(n.li,{children:"Narrowed down the selection based on the size constraint."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-license-compatibility--model-selection",children:"2. License Compatibility & Model Selection:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Many potential models were excluded due to incompatible licenses with Fossology's ",(0,t.jsx)(n.code,{children:"GNU General Public License v2.0"}),"."]}),"\n",(0,t.jsx)(n.li,{children:'Identified BERT variants, specifically "tiny BERT" (around 18 megabytes) and "Mobile BERT," as feasible options.'}),"\n",(0,t.jsxs)(n.li,{children:["Discovered a ",(0,t.jsx)(n.a,{href:"https://huggingface.co/gagan3012/bert-tiny-finetuned-ner",children:"pretrained tiny BERT model"})," on the ",(0,t.jsx)(n.code,{children:"conll2003"})," dataset. However, the model had no associated license."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"3-testing-the-tiny-bert-model",children:"3. Testing the Tiny BERT Model:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Tested the model provisionally, assuming that if it performed well, I could train a similar one from scratch."}),"\n",(0,t.jsx)(n.li,{children:"Model's primary classification targets were organizations and persons."}),"\n",(0,t.jsxs)(n.li,{children:["Sample performance indicators:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["copyright (c) date, ",(0,t.jsx)(n.code,{children:"date hewlett - packard development company, l. p"})]}),"\n",(0,t.jsxs)(n.li,{children:["copyright (c) date - date, ",(0,t.jsx)(n.code,{children:"date siemens ag"})]}),"\n",(0,t.jsxs)(n.li,{children:["copyright (c) date siemens ag author: ",(0,t.jsx)(n.code,{children:"daniele fognini"})]}),"\n",(0,t.jsxs)(n.li,{children:["copyright (c) date siemens ag author: ",(0,t.jsx)(n.code,{children:"j. najjar"})]}),"\n",(0,t.jsxs)(n.li,{children:["copyright (c) date, date siemens ag author: ",(0,t.jsx)(n.code,{children:"daniele fognini"}),", ",(0,t.jsx)(n.code,{children:"anupam"}),". ",(0,t.jsx)(n.code,{children:"ghosh"}),"@",(0,t.jsx)(n.code,{children:"siemens"}),".com"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Perceived performance of the tiny BERT model seemed superior to the SpaCy model, though enhanced entity visualization might have influenced this perception."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"4-integration-and-preprocessing-considerations",children:"4. Integration and Preprocessing Considerations:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Pondered on how to best integrate the model into my preprocessing function."}),"\n",(0,t.jsxs)(n.li,{children:["Experimented with various entity replacement strategies:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Replacing person entities with ",(0,t.jsx)(n.code,{children:"PERSON"})," offered a minor performance boost."]}),"\n",(0,t.jsxs)(n.li,{children:["Substituting organization entities with ",(0,t.jsx)(n.code,{children:"ORG"})," slightly degraded performance."]}),"\n",(0,t.jsx)(n.li,{children:"Employing both replacements was still suboptimal compared to the initial approach."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"These results suggest that as NER performance improves, the model will rely more on contextual cues than mere memorization of copyright holder names and organizations."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"5-language-detection-model",children:"5. Language Detection Model:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Identified a promising language detection model developed by Facebook."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,t.jsx)(n.h3,{id:"1-training-a-custom-tiny-bert-model",children:"1. Training a Custom Tiny BERT Model"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Initiate training of a custom 'tiny BERT' model from scratch. This is to address potential licensing concerns with existing pre-trained models."}),"\n",(0,t.jsx)(n.li,{children:"Exploration of Modern NER Datasets"}),"\n",(0,t.jsx)(n.li,{children:"Train the model on these newly discovered datasets for better performance."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-domain-specific-dataset-training",children:"2. Domain-Specific Dataset Training"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Investigate the feasibility of creating a domain-specific dataset for our project."}),"\n",(0,t.jsx)(n.li,{children:"This would involve labeling a subset of the current copyrights dataset."}),"\n",(0,t.jsx)(n.li,{children:"Fine-tune or train the model on this specialized dataset to enhance its relevance and accuracy for our application."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>l});var t=i(67294);const s={},o=t.createContext(s);function l(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0a823637.bf17aa57.js b/assets/js/0a823637.bf17aa57.js new file mode 100644 index 0000000000..04f58e92e9 --- /dev/null +++ b/assets/js/0a823637.bf17aa57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9304],{2020:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var s=i(85893),o=i(11151);const r={sidebar_position:4,title:"Style Guide"},l=void 0,t={id:"2021/ui/styleGuide",title:"Style Guide",description:"\x3c!--",source:"@site/docs/2021/ui/styleGuide.md",sourceDirName:"2021/ui",slug:"/2021/ui/styleGuide",permalink:"/gsoc/docs/2021/ui/styleGuide",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/styleGuide.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Style Guide"},sidebar:"2021",previous:{title:"Installation",permalink:"/gsoc/docs/2021/ui/installation"}},c={},d=[{value:"Coding Conventions",id:"coding-conventions",level:2},{value:"General Naming Convention",id:"general-naming-convention",level:2},{value:"Before making any pull request one should:",id:"before-making-any-pull-request-one-should",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["We are following the ",(0,s.jsx)(n.a,{href:"https://airbnb.io/javascript/react/",children:"Airbnb JavaScript Style Guide"})," for the FOSSology UI project."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://eslint.org/docs/rules/",children:"ESlint"})," (a pluggable and configurable linter tool) and ",(0,s.jsx)(n.a,{href:"https://prettier.io/docs/en/",children:"Prettier"})," (an opinionated code formatter) are used to enforce the style guide."]}),"\n",(0,s.jsx)(n.h2,{id:"coding-conventions",children:"Coding Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["All files using JSX syntax should have ",(0,s.jsx)(n.code,{children:".jsx"})," extension."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Use Pascal case for naming React components."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Use Camel case for the function name and variable name."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Prefer using default export."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Prefer using arrow functions."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Prefer using functional components."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Avoid using ",(0,s.jsx)(n.code,{children:"PropTypes.array"})," or ",(0,s.jsx)(n.code,{children:"PropTypes.object"}),". Instead use ",(0,s.jsx)(n.code,{children:"PropTypes.arrayOf(PropTypes.string)"})," or ",(0,s.jsx)(n.code,{children:"PropTypes.shape({id: PropTypes.number})"})," respectively."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"general-naming-convention",children:"General Naming Convention"}),"\n",(0,s.jsx)(n.p,{children:"In the code and documentation prefer using non-offensive terminology, for example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"allowlist"})," / ",(0,s.jsx)(n.code,{children:"denylist"})," (instead of ",(0,s.jsx)(n.code,{children:"whitelist"})," / ",(0,s.jsx)(n.code,{children:"blacklist"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"primary"})," / ",(0,s.jsx)(n.code,{children:"replica"})," (instead of ",(0,s.jsx)(n.code,{children:"master"})," / ",(0,s.jsx)(n.code,{children:"slave"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"openbox"})," / ",(0,s.jsx)(n.code,{children:"closedbox"})," (instead of ",(0,s.jsx)(n.code,{children:"whitebox"})," / ",(0,s.jsx)(n.code,{children:"blackbox"}),")."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"before-making-any-pull-request-one-should",children:"Before making any pull request one should:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run ",(0,s.jsx)(n.code,{children:"yarn fix:all"})," to fix all auto fixable errors and warnings."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run ",(0,s.jsx)(n.code,{children:"yarn test"})," to run all react tests."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Ensure that your commit contains a Signed-off-by line, also known as the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://www.kernel.org/doc/Documentation/process/submitting-patches.rst",children:"Developer Certificate of Origin (DCO)"})}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Ensure that you have added your name and email in the license headers of all the files that you have modified."}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>t,a:()=>l});var s=i(67294);const o={},r=s.createContext(o);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0c97ea0a.51985e6e.js b/assets/js/0c97ea0a.51985e6e.js new file mode 100644 index 0000000000..0e1dd5b3ee --- /dev/null +++ b/assets/js/0c97ea0a.51985e6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[358],{2240:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var i=s(85893),t=s(11151);const l={title:"Week 4",author:"Sarita"},c=void 0,d={id:"2021/scancode/updates/2021-06-29",title:"Week 4",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-06-29.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-06-29",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-06-29.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Sarita"},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-22"},next:{title:"Week 5",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-06"}},r={},a=[{value:"Coding Week 4 Meeting 1",id:"coding-week-4-meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 3 Progress",id:"week-3-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Coding Week 4 Meeting 2",id:"coding-week-4-meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function o(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-4-meeting-1",children:"Coding Week 4 Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-06-29"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-3-progress",children:"Week 3 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Populated ScanCode wrapper to include copyright and author information."}),"\n",(0,i.jsx)(n.li,{children:"Currently using FOSSology copyright and author database tables to insert these information."}),"\n",(0,i.jsx)(n.li,{children:"FOSSology Scheduler is calling ScanCode for copyright and author along with licenses."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Asked how to copyright agent is generating hash for copyright and author tables?","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Hash is md5(content)."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["What is clearing table in copyright agent database ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/copyright/agent/database.cc#L248-L308",children:"here"})," ?","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["This code block creates ",(0,i.jsx)(n.code,{children:"copyright_decision"})," table."]}),"\n",(0,i.jsx)(n.li,{children:"This table is used to store user's decision."}),"\n",(0,i.jsxs)(n.li,{children:["Similarly there are ",(0,i.jsx)(n.code,{children:"license_decision"})," table which stores ",(0,i.jsx)(n.code,{children:"user's clearing decision"})," for licenses."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Gaurav explained how copyright agent/user finding works.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Agent findings contain what scanners has found, if a user makes changes in the agents finding that changes will be recorded into ",(0,i.jsx)(n.code,{children:"copyright_event"})," table."]}),"\n",(0,i.jsxs)(n.li,{children:["For the same ",(0,i.jsx)(n.code,{children:"pfile"})," that agent will give edited result."]}),"\n",(0,i.jsxs)(n.li,{children:["User finding table records ",(0,i.jsx)(n.code,{children:"user_decision"})," during clearing in the ",(0,i.jsx)(n.code,{children:"UI"})," and that content is inserted into ",(0,i.jsx)(n.code,{children:"copyright_decision"})," table in the database."]}),"\n",(0,i.jsx)(n.li,{children:"These clearing results are helpful during creating report."}),"\n",(0,i.jsxs)(n.li,{children:["Scancode will also include ",(0,i.jsx)(n.code,{children:"reporting"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Avinal asked question about how to ",(0,i.jsx)(n.code,{children:"reuse"})," an upload for different agent without reloading?","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav explained following:"}),"\n",(0,i.jsx)(n.li,{children:"Under Jobs go to Schedule agents, there select an upload to analyse and the agent who will do analysis."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Gaurav suggested a ",(0,i.jsx)(n.a,{href:"https://www.youtube.com/watch?v=TZqU5ZALI7U",children:"FOSSology Using: End-to-end workflow"})," video on YouTube."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Creating tables for scancode copyright and author."}),"\n",(0,i.jsx)(n.li,{children:"Watch end-to-end fossology workflow video and understand fossology UI and working."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"coding-week-4-meeting-2",children:"Coding Week 4 Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-02"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Using ",(0,i.jsx)(n.code,{children:"S"})," instead of ",(0,i.jsx)(n.code,{children:"L"})," for ScanCode type field in the highlight table where ",(0,i.jsx)(n.code,{children:"S"})," will be match property of the highlight class in HighlightDao.php."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Added a new type ",(0,i.jsx)(n.code,{children:"S"})," in the ",(0,i.jsx)(n.code,{children:"HighlightDao.php"})," also changed type from ",(0,i.jsx)(n.code,{children:"signature"})," to ",(0,i.jsx)(n.code,{children:"match"})," as like monk agent ScanCode matches text."]}),"\n",(0,i.jsx)(n.li,{children:"Gaurav explained about identical displayed on the UI by monk scanner as, It highlight those text which are identical with the license text in the license_ref table. Whereas license relevant text means the highlighted text has been matched with license text or rules written for the license."}),"\n",(0,i.jsx)(n.li,{children:"So license relevant text is suitable for the ScanCode highlight."}),"\n",(0,i.jsx)(n.li,{children:"Also Gaurav suggested to reuse the resources already present and no need to add a new type for scancode highlight, nomos type could be reused."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Sarita(Me) shows newly created tables for scancode_copyright and scancode_author. Gaurav approved changes."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added a function in the scancode database to insert no license in the license_file table for a code zip have no license."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:" bool ScancodeDatabaseHandler::insertNoResultInDatabase(int agentId, long pFileId ){\n return saveLicenseMatch(agentId, pFileId, 320, NULL);\n }\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Gaurav clarified that ",(0,i.jsx)(n.code,{children:"320"})," is not constant licenseId for no-license. So instead leave licenseId null."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"There is still a discussion needed (with other mentors) to decide is no license case is needed to take care for ScanCode or not."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Start implementing UI to make scancode a parameterized agent."}),"\n",(0,i.jsxs)(n.li,{children:["Discuss about ",(0,i.jsx)(n.code,{children:"no license/copyright/author"})," case for scancode."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>c});var i=s(67294);const t={},l=i.createContext(t);function c(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0d4d3e3e.2b087b51.js b/assets/js/0d4d3e3e.2b087b51.js new file mode 100644 index 0000000000..0d2ed9716b --- /dev/null +++ b/assets/js/0d4d3e3e.2b087b51.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[919],{73434:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var t=i(85893),n=i(11151);const o={sidebar_position:4,title:"First Evaluation"},l=void 0,a={id:"2021/buildsystem/first-evaluation",title:"First Evaluation",description:"\x3c!--",source:"@site/docs/2021/buildsystem/first-evaluation.md",sourceDirName:"2021/buildsystem",slug:"/2021/buildsystem/first-evaluation",permalink:"/gsoc/docs/2021/buildsystem/first-evaluation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/first-evaluation.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"First Evaluation"},sidebar:"2021",previous:{title:"Building FOSSology",permalink:"/gsoc/docs/2021/buildsystem/build"},next:{title:"Final Evaluation",permalink:"/gsoc/docs/2021/buildsystem/final-evaluation"}},r={},d=[{value:"Updates",id:"updates",level:2},{value:"List of tasks completed",id:"list-of-tasks-completed",level:3},{value:"Improvements",id:"improvements",level:2},{value:"How to test",id:"how-to-test",level:2},{value:"Known Issues",id:"known-issues",level:2},{value:"Postponed Tasks",id:"postponed-tasks",level:2},{value:"Work in Progress",id:"work-in-progress",level:2}];function c(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"updates",children:"Updates"}),"\n",(0,t.jsx)(s.p,{children:"In the first phase of GSoC 2021 @ The FOSSology Project, I have completed the desired milestone. As of now, FOSSology can be installed completely via CMake and most of the components are working fine in initial testing."}),"\n",(0,t.jsx)(s.h3,{id:"list-of-tasks-completed",children:"List of tasks completed"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Added CMake build configurations for all the C/C++ agents for executables, libraries, and coverages"}),"\n",(0,t.jsx)(s.li,{children:"Added CMake install configuration for all C/C++ and PHP agents as well as extra components"}),"\n",(0,t.jsx)(s.li,{children:"Reworked the shell scripts and generated source files to make them more compatible with CMake as well as better in terms of overall compatibility with the latest tools."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"improvements",children:"Improvements"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"The new CMake build architecture is much more flexible to changes as compared to hard-coded Makefiles."}),"\n",(0,t.jsxs)(s.li,{children:["CMake generated configurations support parallel build by default, this has led to significant improvement in build time. CMake generated configuration can now build the whole project ",(0,t.jsx)(s.strong,{children:"within 2 mins"})," or even faster on more powerful CPUs (Both Ninja and Makefiles with the same number of parallel processes) compared to 4-5 minutes previously. ",(0,t.jsx)(s.em,{children:"(These results are averaged from initial testing of new build architecture)"})]}),"\n",(0,t.jsx)(s.li,{children:"CMake supports out-source builds by default, which means the source folders are not touched/modified while building, all build files and residuals get their separate folder and the source tree can be cleaned easily."}),"\n",(0,t.jsx)(s.li,{children:"Developers can now opt for a long list of generators to build FOSSology e.g Makefiles, Ninja as per their needs."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"how-to-test",children:"How to test"}),"\n",(0,t.jsxs)(s.p,{children:["Instructions to test the new Build system is in ",(0,t.jsx)(s.a,{href:"https://github.com/avinal/fossology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"this"})," wiki. as well as in ",(0,t.jsx)(s.a,{href:"build",children:"Building FOSSology"})," page."]}),"\n",(0,t.jsx)(s.h2,{id:"known-issues",children:"Known Issues"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["There may be a permission issue with some generated sources while building. This can be bypassed for now by running the ",(0,t.jsx)(s.code,{children:"sudo chmod +x "})," command."]}),"\n",(0,t.jsx)(s.li,{children:"Coverage builds may fail."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"postponed-tasks",children:"Postponed Tasks"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"configuration for tests are skipped for now"}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"work-in-progress",children:"Work in Progress"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Currently, I am working on packaging the FOSSology with CMake."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,s,i)=>{i.d(s,{Z:()=>a,a:()=>l});var t=i(67294);const n={},o=t.createContext(n);function l(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0d837118.4a7c2dc3.js b/assets/js/0d837118.4a7c2dc3.js new file mode 100644 index 0000000000..2d403e7423 --- /dev/null +++ b/assets/js/0d837118.4a7c2dc3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3010],{73876:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"2021":[{"type":"link","label":"GSoC\'21 @ FOSSology","href":"/gsoc/docs/2021","docId":"2021/index","unlisted":false},{"type":"category","label":"New build system","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2021/buildsystem/updates/2021-05-28","docId":"2021/buildsystem/updates/2021-05-28","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/buildsystem/updates/2021-06-11","docId":"2021/buildsystem/updates/2021-06-11","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/buildsystem/updates/2021-06-18","docId":"2021/buildsystem/updates/2021-06-18","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/buildsystem/updates/2021-06-22","docId":"2021/buildsystem/updates/2021-06-22","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2021/buildsystem/updates/2021-06-29","docId":"2021/buildsystem/updates/2021-06-29","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2021/buildsystem/updates/2021-07-09","docId":"2021/buildsystem/updates/2021-07-09","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/buildsystem/updates/2021-07-23","docId":"2021/buildsystem/updates/2021-07-23","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/buildsystem/updates/2021-07-30","docId":"2021/buildsystem/updates/2021-07-30","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2021/buildsystem/updates/2021-08-06","docId":"2021/buildsystem/updates/2021-08-06","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2021/buildsystem/updates/2021-08-13","docId":"2021/buildsystem/updates/2021-08-13","unlisted":false}]},{"type":"link","label":"Building FOSSology","href":"/gsoc/docs/2021/buildsystem/build","docId":"2021/buildsystem/build","unlisted":false},{"type":"link","label":"First Evaluation","href":"/gsoc/docs/2021/buildsystem/first-evaluation","docId":"2021/buildsystem/first-evaluation","unlisted":false},{"type":"link","label":"Final Evaluation","href":"/gsoc/docs/2021/buildsystem/final-evaluation","docId":"2021/buildsystem/final-evaluation","unlisted":false}],"href":"/gsoc/docs/2021/buildsystem/"},{"type":"category","label":"Copyrights false positive detection","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/copyrights/updates/2021-06-07","docId":"2021/copyrights/updates/2021-06-07","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/copyrights/updates/2021-06-15","docId":"2021/copyrights/updates/2021-06-15","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/copyrights/updates/2021-06-22","docId":"2021/copyrights/updates/2021-06-22","unlisted":false},{"type":"link","label":"Week 4 & 5","href":"/gsoc/docs/2021/copyrights/updates/2021-07-06","docId":"2021/copyrights/updates/2021-07-06","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2021/copyrights/updates/2021-07-13","docId":"2021/copyrights/updates/2021-07-13","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/copyrights/updates/2021-07-20","docId":"2021/copyrights/updates/2021-07-20","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/copyrights/updates/2021-08-03","docId":"2021/copyrights/updates/2021-08-03","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2021/copyrights/updates/2021-08-10","docId":"2021/copyrights/updates/2021-08-10","unlisted":false}]},{"type":"link","label":"Setup","href":"/gsoc/docs/2021/copyrights/setup","docId":"2021/copyrights/setup","unlisted":false}],"href":"/gsoc/docs/2021/copyrights/"},{"type":"category","label":"Microservice Architecture","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/microservice/updates/2021-06-07","docId":"2021/microservice/updates/2021-06-07","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/microservice/updates/2021-06-15","docId":"2021/microservice/updates/2021-06-15","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/microservice/updates/2021-06-22","docId":"2021/microservice/updates/2021-06-22","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2021/microservice/updates/2021-06-29","docId":"2021/microservice/updates/2021-06-29","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2021/microservice/updates/2021-07-06","docId":"2021/microservice/updates/2021-07-06","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2021/microservice/updates/2021-07-13","docId":"2021/microservice/updates/2021-07-13","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/microservice/updates/2021-07-20","docId":"2021/microservice/updates/2021-07-20","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/microservice/updates/2021-07-27","docId":"2021/microservice/updates/2021-07-27","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2021/microservice/updates/2021-08-03","docId":"2021/microservice/updates/2021-08-03","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2021/microservice/updates/2021-08-17","docId":"2021/microservice/updates/2021-08-17","unlisted":false}]},{"type":"link","label":"Setup","href":"/gsoc/docs/2021/microservice/setup","docId":"2021/microservice/setup","unlisted":false},{"type":"link","label":"Docker Images","href":"/gsoc/docs/2021/microservice/dockerImages","docId":"2021/microservice/dockerImages","unlisted":false}],"href":"/gsoc/docs/2021/microservice/"},{"type":"category","label":"Minerva","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 0","href":"/gsoc/docs/2021/minerva/updates/2021-06-07","docId":"2021/minerva/updates/2021-06-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/minerva/updates/2021-06-15","docId":"2021/minerva/updates/2021-06-15","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/minerva/updates/2021-06-22","docId":"2021/minerva/updates/2021-06-22","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/minerva/updates/2021-06-29","docId":"2021/minerva/updates/2021-06-29","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2021/minerva/updates/2021-07-05","docId":"2021/minerva/updates/2021-07-05","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2021/minerva/updates/2021-07-13","docId":"2021/minerva/updates/2021-07-13","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2021/minerva/updates/2021-07-20","docId":"2021/minerva/updates/2021-07-20","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/minerva/updates/2021-07-27","docId":"2021/minerva/updates/2021-07-27","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/minerva/updates/2021-08-03","docId":"2021/minerva/updates/2021-08-03","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2021/minerva/updates/2021-08-10","docId":"2021/minerva/updates/2021-08-10","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2021/minerva/updates/2021-08-17","docId":"2021/minerva/updates/2021-08-17","unlisted":false}]},{"type":"link","label":"Installation","href":"/gsoc/docs/2021/minerva/installation","docId":"2021/minerva/installation","unlisted":false}],"href":"/gsoc/docs/2021/minerva/"},{"type":"category","label":"ScanCode Integration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/gsoc/docs/2021/scancode/","docId":"2021/scancode/introduction","unlisted":false},{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2021/scancode/updates/2021-05-28","docId":"2021/scancode/updates/2021-05-28","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/scancode/updates/2021-06-11","docId":"2021/scancode/updates/2021-06-11","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/scancode/updates/2021-06-18","docId":"2021/scancode/updates/2021-06-18","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/scancode/updates/2021-06-22","docId":"2021/scancode/updates/2021-06-22","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2021/scancode/updates/2021-06-29","docId":"2021/scancode/updates/2021-06-29","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2021/scancode/updates/2021-07-06","docId":"2021/scancode/updates/2021-07-06","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2021/scancode/updates/2021-07-13","docId":"2021/scancode/updates/2021-07-13","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/scancode/updates/2021-07-20","docId":"2021/scancode/updates/2021-07-20","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/scancode/updates/2021-07-27","docId":"2021/scancode/updates/2021-07-27","unlisted":false}]},{"type":"link","label":"Installing scancode","href":"/gsoc/docs/2021/scancode/installation","docId":"2021/scancode/installation","unlisted":false},{"type":"link","label":"Copyright UI","href":"/gsoc/docs/2021/scancode/copyright","docId":"2021/scancode/copyright","unlisted":false},{"type":"link","label":"First Evaluation","href":"/gsoc/docs/2021/scancode/first_evaluation","docId":"2021/scancode/first_evaluation","unlisted":false}]},{"type":"category","label":"React UI","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Shruti Agarwal","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/ui/updates/shruti/2021-06-15","docId":"2021/ui/updates/shruti/2021-06-15","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/ui/updates/shruti/2021-06-22","docId":"2021/ui/updates/shruti/2021-06-22","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/ui/updates/shruti/2021-06-29","docId":"2021/ui/updates/shruti/2021-06-29","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2021/ui/updates/shruti/2021-07-06","docId":"2021/ui/updates/shruti/2021-07-06","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2021/ui/updates/shruti/2021-07-13","docId":"2021/ui/updates/shruti/2021-07-13","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2021/ui/updates/shruti/2021-07-20","docId":"2021/ui/updates/shruti/2021-07-20","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/ui/updates/shruti/2021-07-27","docId":"2021/ui/updates/shruti/2021-07-27","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/ui/updates/shruti/2021-08-03","docId":"2021/ui/updates/shruti/2021-08-03","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2021/ui/updates/shruti/2021-08-10","docId":"2021/ui/updates/shruti/2021-08-10","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2021/ui/updates/shruti/2021-08-17","docId":"2021/ui/updates/shruti/2021-08-17","unlisted":false}]},{"type":"category","label":"Aman Dwivedi","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2021/ui/updates/aman/2021-06-15","docId":"2021/ui/updates/aman/2021-06-15","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2021/ui/updates/aman/2021-06-22","docId":"2021/ui/updates/aman/2021-06-22","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2021/ui/updates/aman/2021-06-29","docId":"2021/ui/updates/aman/2021-06-29","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2021/ui/updates/aman/2021-07-06","docId":"2021/ui/updates/aman/2021-07-06","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2021/ui/updates/aman/2021-07-13","docId":"2021/ui/updates/aman/2021-07-13","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2021/ui/updates/aman/2021-07-20","docId":"2021/ui/updates/aman/2021-07-20","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2021/ui/updates/aman/2021-07-27","docId":"2021/ui/updates/aman/2021-07-27","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2021/ui/updates/aman/2021-08-03","docId":"2021/ui/updates/aman/2021-08-03","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2021/ui/updates/aman/2021-08-10","docId":"2021/ui/updates/aman/2021-08-10","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2021/ui/updates/aman/2021-08-17","docId":"2021/ui/updates/aman/2021-08-17","unlisted":false}]}]},{"type":"link","label":"Installation","href":"/gsoc/docs/2021/ui/installation","docId":"2021/ui/installation","unlisted":false},{"type":"link","label":"Style Guide","href":"/gsoc/docs/2021/ui/styleGuide","docId":"2021/ui/styleGuide","unlisted":false}],"href":"/gsoc/docs/2021/ui/"}],"2022":[{"type":"link","label":"GSoC\'22 @ FOSSology","href":"/gsoc/docs/2022","docId":"2022/index","unlisted":false},{"type":"link","label":"Google Summer of Code Proposals 2022","href":"/gsoc/docs/2022/GSoC-projects","docId":"2022/GSoC-projects","unlisted":false},{"type":"category","label":"Atarashi","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/atarashi/updates/2022-06-02","docId":"2022/atarashi/updates/2022-06-02","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/atarashi/updates/2022-06-13","docId":"2022/atarashi/updates/2022-06-13","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/atarashi/updates/2022-06-20","docId":"2022/atarashi/updates/2022-06-20","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/atarashi/updates/2022-06-27","docId":"2022/atarashi/updates/2022-06-27","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/atarashi/updates/2022-07-04","docId":"2022/atarashi/updates/2022-07-04","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/atarashi/updates/2022-07-11","docId":"2022/atarashi/updates/2022-07-11","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2022/atarashi/updates/2022-07-19","docId":"2022/atarashi/updates/2022-07-19","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2022/atarashi/updates/2022-07-26","docId":"2022/atarashi/updates/2022-07-26","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2022/atarashi/updates/2022-08-02","docId":"2022/atarashi/updates/2022-08-02","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2022/atarashi/updates/2022-08-09","docId":"2022/atarashi/updates/2022-08-09","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/atarashi/updates/2022-08-16","docId":"2022/atarashi/updates/2022-08-16","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2022/atarashi/updates/2022-08-23","docId":"2022/atarashi/updates/2022-08-23","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2022/atarashi/updates/2022-08-30","docId":"2022/atarashi/updates/2022-08-30","unlisted":false}]}],"href":"/gsoc/docs/2022/atarashi/"},{"type":"category","label":"Project","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/project/updates/2022-06-02","docId":"2022/project/updates/2022-06-02","unlisted":false},{"type":"link","label":"Week1","href":"/gsoc/docs/2022/project/updates/2022-06-09","docId":"2022/project/updates/2022-06-09","unlisted":false},{"type":"link","label":"Week2","href":"/gsoc/docs/2022/project/updates/2022-06-16","docId":"2022/project/updates/2022-06-16","unlisted":false},{"type":"link","label":"Week3","href":"/gsoc/docs/2022/project/updates/2022-06-23","docId":"2022/project/updates/2022-06-23","unlisted":false},{"type":"link","label":"Week4","href":"/gsoc/docs/2022/project/updates/2022-06-30","docId":"2022/project/updates/2022-06-30","unlisted":false},{"type":"link","label":"Week5","href":"/gsoc/docs/2022/project/updates/2022-07-07","docId":"2022/project/updates/2022-07-07","unlisted":false},{"type":"link","label":"Week6","href":"/gsoc/docs/2022/project/updates/2022-07-14","docId":"2022/project/updates/2022-07-14","unlisted":false},{"type":"link","label":"Week7","href":"/gsoc/docs/2022/project/updates/2022-07-21","docId":"2022/project/updates/2022-07-21","unlisted":false},{"type":"link","label":"Week8","href":"/gsoc/docs/2022/project/updates/2022-07-28","docId":"2022/project/updates/2022-07-28","unlisted":false},{"type":"link","label":"Week9","href":"/gsoc/docs/2022/project/updates/2022-08-04","docId":"2022/project/updates/2022-08-04","unlisted":false},{"type":"link","label":"Week10","href":"/gsoc/docs/2022/project/updates/2022-08-11","docId":"2022/project/updates/2022-08-11","unlisted":false},{"type":"link","label":"Week11","href":"/gsoc/docs/2022/project/updates/2022-08-18","docId":"2022/project/updates/2022-08-18","unlisted":false},{"type":"link","label":"Week12","href":"/gsoc/docs/2022/project/updates/2022-08-25","docId":"2022/project/updates/2022-08-25","unlisted":false},{"type":"link","label":"Week13","href":"/gsoc/docs/2022/project/updates/2022-09-01","docId":"2022/project/updates/2022-09-01","unlisted":false},{"type":"link","label":"Week14","href":"/gsoc/docs/2022/project/updates/2022-09-08","docId":"2022/project/updates/2022-09-08","unlisted":false}]}],"href":"/gsoc/docs/2022/project/"},{"type":"category","label":"REUSE","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/reuse/updates/2022-06-02","docId":"2022/reuse/updates/2022-06-02","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/reuse/updates/2022-06-13","docId":"2022/reuse/updates/2022-06-13","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/reuse/updates/2022-06-20","docId":"2022/reuse/updates/2022-06-20","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/reuse/updates/2022-06-27","docId":"2022/reuse/updates/2022-06-27","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/reuse/updates/2022-07-04","docId":"2022/reuse/updates/2022-07-04","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/reuse/updates/2022-07-11","docId":"2022/reuse/updates/2022-07-11","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2022/reuse/updates/2022-07-18","docId":"2022/reuse/updates/2022-07-18","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2022/reuse/updates/2022-07-25","docId":"2022/reuse/updates/2022-07-25","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2022/reuse/updates/2022-08-02","docId":"2022/reuse/updates/2022-08-02","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2022/reuse/updates/2022-08-09","docId":"2022/reuse/updates/2022-08-09","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/reuse/updates/2022-08-16","docId":"2022/reuse/updates/2022-08-16","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2022/reuse/updates/2022-08-23","docId":"2022/reuse/updates/2022-08-23","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2022/reuse/updates/2022-08-30","docId":"2022/reuse/updates/2022-08-30","unlisted":false},{"type":"link","label":"Week 13","href":"/gsoc/docs/2022/reuse/updates/2022-09-06","docId":"2022/reuse/updates/2022-09-06","unlisted":false}]}],"href":"/gsoc/docs/2022/reuse/"},{"type":"category","label":"Spasht","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/spasht/updates/2022-06-02","docId":"2022/spasht/updates/2022-06-02","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/spasht/updates/2022-06-08","docId":"2022/spasht/updates/2022-06-08","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/spasht/updates/2022-06-15","docId":"2022/spasht/updates/2022-06-15","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/spasht/updates/2022-06-22","docId":"2022/spasht/updates/2022-06-22","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/spasht/updates/2022-07-06","docId":"2022/spasht/updates/2022-07-06","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/spasht/updates/2022-07-13","docId":"2022/spasht/updates/2022-07-13","unlisted":false}]}],"href":"/gsoc/docs/2022/spasht/"},{"type":"category","label":"React UI","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Ayush Kumar","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/ui/updates/ayush/2022-06-02","docId":"2022/ui/updates/ayush/2022-06-02","unlisted":false}]},{"type":"category","label":"Krishna Mahato","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/ui/updates/krishna/2022-06-02","docId":"2022/ui/updates/krishna/2022-06-02","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/ui/updates/krishna/2022-06-20","docId":"2022/ui/updates/krishna/2022-06-20","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/ui/updates/krishna/2022-06-27","docId":"2022/ui/updates/krishna/2022-06-27","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/ui/updates/krishna/2022-07-04","docId":"2022/ui/updates/krishna/2022-07-04","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/ui/updates/krishna/2022-07-11","docId":"2022/ui/updates/krishna/2022-07-11","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/ui/updates/krishna/2022-07-17","docId":"2022/ui/updates/krishna/2022-07-17","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2022/ui/updates/krishna/2022-07-24","docId":"2022/ui/updates/krishna/2022-07-24","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2022/ui/updates/krishna/2022-07-31","docId":"2022/ui/updates/krishna/2022-07-31","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2022/ui/updates/krishna/2022-08-07","docId":"2022/ui/updates/krishna/2022-08-07","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2022/ui/updates/krishna/2022-08-14","docId":"2022/ui/updates/krishna/2022-08-14","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/ui/updates/krishna/2022-08-21","docId":"2022/ui/updates/krishna/2022-08-21","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2022/ui/updates/krishna/2022-08-28","docId":"2022/ui/updates/krishna/2022-08-28","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2022/ui/updates/krishna/2022-09-04","docId":"2022/ui/updates/krishna/2022-09-04","unlisted":false}]},{"type":"category","label":"Samuel Dushimimana","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/ui/updates/samuel/2021-06-24","docId":"2022/ui/updates/samuel/2021-06-24","unlisted":false},{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/ui/updates/samuel/2022-06-02","docId":"2022/ui/updates/samuel/2022-06-02","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/ui/updates/samuel/2022-06-30","docId":"2022/ui/updates/samuel/2022-06-30","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/ui/updates/samuel/2022-07-07","docId":"2022/ui/updates/samuel/2022-07-07","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/ui/updates/samuel/2022-07-14","docId":"2022/ui/updates/samuel/2022-07-14","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/ui/updates/samuel/2022-07-21","docId":"2022/ui/updates/samuel/2022-07-21","unlisted":false},{"type":"link","label":"Week 6 & 7","href":"/gsoc/docs/2022/ui/updates/samuel/2022-08-02","docId":"2022/ui/updates/samuel/2022-08-02","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2022/ui/updates/samuel/2022-08-11","docId":"2022/ui/updates/samuel/2022-08-11","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2022/ui/updates/samuel/2022-08-18","docId":"2022/ui/updates/samuel/2022-08-18","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/ui/updates/samuel/2022-08-25","docId":"2022/ui/updates/samuel/2022-08-25","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2022/ui/updates/samuel/2022-09-08","docId":"2022/ui/updates/samuel/2022-09-08","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/ui/updates/samuel/2022-09-1","docId":"2022/ui/updates/samuel/2022-09-1","unlisted":false}]},{"type":"category","label":"Soham Banerjee","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding","href":"/gsoc/docs/2022/ui/updates/soham/2022-06-02","docId":"2022/ui/updates/soham/2022-06-02","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/ui/updates/soham/2022-06-24","docId":"2022/ui/updates/soham/2022-06-24","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/ui/updates/soham/2022-07-3","docId":"2022/ui/updates/soham/2022-07-3","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/ui/updates/soham/2022-07-7","docId":"2022/ui/updates/soham/2022-07-7","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/ui/updates/soham/2022-07-8","docId":"2022/ui/updates/soham/2022-07-8","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/ui/updates/soham/2022-07-9","docId":"2022/ui/updates/soham/2022-07-9","unlisted":false},{"type":"link","label":"Week 6 and 7","href":"/gsoc/docs/2022/ui/updates/soham/2022-08-01","docId":"2022/ui/updates/soham/2022-08-01","unlisted":false},{"type":"link","label":"Week 8 and 9","href":"/gsoc/docs/2022/ui/updates/soham/2022-08-05","docId":"2022/ui/updates/soham/2022-08-05","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/ui/updates/soham/2022-08-08","docId":"2022/ui/updates/soham/2022-08-08","unlisted":false}]}]},{"type":"link","label":"Installation","href":"/gsoc/docs/2022/ui/installation","docId":"2022/ui/installation","unlisted":false}],"href":"/gsoc/docs/2022/ui/"},{"type":"category","label":"Meeting minutes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2022/minutes/02-06-2022","docId":"2022/minutes/02-06-2022","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2022/minutes/09-06-2022","docId":"2022/minutes/09-06-2022","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2022/minutes/16-06-2022","docId":"2022/minutes/16-06-2022","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2022/minutes/23-06-2022","docId":"2022/minutes/23-06-2022","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2022/minutes/30-06-2022","docId":"2022/minutes/30-06-2022","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2022/minutes/07-07-2022","docId":"2022/minutes/07-07-2022","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2022/minutes/14-07-2022","docId":"2022/minutes/14-07-2022","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2022/minutes/21-07-2022","docId":"2022/minutes/21-07-2022","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2022/minutes/28-07-2022","docId":"2022/minutes/28-07-2022","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2022/minutes/04-08-2022","docId":"2022/minutes/04-08-2022","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2022/minutes/11-08-2022","docId":"2022/minutes/11-08-2022","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2022/minutes/18-08-2022","docId":"2022/minutes/18-08-2022","unlisted":false},{"type":"link","label":"Week 13","href":"/gsoc/docs/2022/minutes/25-08-2022","docId":"2022/minutes/25-08-2022","unlisted":false}]}],"2023":[{"type":"link","label":"GSoC\'23 @ FOSSology","href":"/gsoc/docs/2023","docId":"2023/index","unlisted":false},{"type":"link","label":"Google Summer of Code Proposals 2023","href":"/gsoc/docs/2023/GSoC-projects","docId":"2023/GSoC-projects","unlisted":false},{"type":"category","label":"Reducing False positive copyrights","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2023/copyrights/updates/2023-05-11","docId":"2023/copyrights/updates/2023-05-11","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2023/copyrights/updates/2023-05-31","docId":"2023/copyrights/updates/2023-05-31","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2023/copyrights/updates/2023-06-07","docId":"2023/copyrights/updates/2023-06-07","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2023/copyrights/updates/2023-06-14","docId":"2023/copyrights/updates/2023-06-14","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2023/copyrights/updates/2023-06-21","docId":"2023/copyrights/updates/2023-06-21","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2023/copyrights/updates/2023-06-28","docId":"2023/copyrights/updates/2023-06-28","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2023/copyrights/updates/2023-07-05","docId":"2023/copyrights/updates/2023-07-05","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2023/copyrights/updates/2023-07-12","docId":"2023/copyrights/updates/2023-07-12","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2023/copyrights/updates/2023-07-19","docId":"2023/copyrights/updates/2023-07-19","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2023/copyrights/updates/2023-07-26","docId":"2023/copyrights/updates/2023-07-26","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2023/copyrights/updates/2023-08-02","docId":"2023/copyrights/updates/2023-08-02","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2023/copyrights/updates/2023-08-09","docId":"2023/copyrights/updates/2023-08-09","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2023/copyrights/updates/2023-08-16","docId":"2023/copyrights/updates/2023-08-16","unlisted":false},{"type":"link","label":"Week 13","href":"/gsoc/docs/2023/copyrights/updates/2023-08-23","docId":"2023/copyrights/updates/2023-08-23","unlisted":false},{"type":"link","label":"Week 14","href":"/gsoc/docs/2023/copyrights/updates/2023-08-30","docId":"2023/copyrights/updates/2023-08-30","unlisted":false},{"type":"link","label":"Week 15","href":"/gsoc/docs/2023/copyrights/updates/2023-09-06","docId":"2023/copyrights/updates/2023-09-06","unlisted":false},{"type":"link","label":"Week 16","href":"/gsoc/docs/2023/copyrights/updates/2023-09-13","docId":"2023/copyrights/updates/2023-09-13","unlisted":false},{"type":"link","label":"Week 17","href":"/gsoc/docs/2023/copyrights/updates/2023-09-20","docId":"2023/copyrights/updates/2023-09-20","unlisted":false},{"type":"link","label":"Week 18","href":"/gsoc/docs/2023/copyrights/updates/2023-09-27","docId":"2023/copyrights/updates/2023-09-27","unlisted":false},{"type":"link","label":"Week 19","href":"/gsoc/docs/2023/copyrights/updates/2023-10-04","docId":"2023/copyrights/updates/2023-10-04","unlisted":false},{"type":"link","label":"Week 20","href":"/gsoc/docs/2023/copyrights/updates/2023-10-11","docId":"2023/copyrights/updates/2023-10-11","unlisted":false},{"type":"link","label":"Week 21","href":"/gsoc/docs/2023/copyrights/updates/2023-10-18","docId":"2023/copyrights/updates/2023-10-18","unlisted":false},{"type":"link","label":"Week 22","href":"/gsoc/docs/2023/copyrights/updates/2023-10-25","docId":"2023/copyrights/updates/2023-10-25","unlisted":false}]}],"href":"/gsoc/docs/2023/copyrights/"},{"type":"category","label":"REST API improvements","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Samuel Dushimimana","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2023/rest/updates/samuel/2023-05-11","docId":"2023/rest/updates/samuel/2023-05-11","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2023/rest/updates/samuel/2023-06-01","docId":"2023/rest/updates/samuel/2023-06-01","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2023/rest/updates/samuel/2023-06-08","docId":"2023/rest/updates/samuel/2023-06-08","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2023/rest/updates/samuel/2023-06-15","docId":"2023/rest/updates/samuel/2023-06-15","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2023/rest/updates/samuel/2023-06-22","docId":"2023/rest/updates/samuel/2023-06-22","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2023/rest/updates/samuel/2023-06-29","docId":"2023/rest/updates/samuel/2023-06-29","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2023/rest/updates/samuel/2023-07-06","docId":"2023/rest/updates/samuel/2023-07-06","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2023/rest/updates/samuel/2023-07-13","docId":"2023/rest/updates/samuel/2023-07-13","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2023/rest/updates/samuel/2023-07-20","docId":"2023/rest/updates/samuel/2023-07-20","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2023/rest/updates/samuel/2023-07-27","docId":"2023/rest/updates/samuel/2023-07-27","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2023/rest/updates/samuel/2023-08-03","docId":"2023/rest/updates/samuel/2023-08-03","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2023/rest/updates/samuel/2023-08-10","docId":"2023/rest/updates/samuel/2023-08-10","unlisted":false},{"type":"link","label":"Week 12","href":"/gsoc/docs/2023/rest/updates/samuel/2023-08-17","docId":"2023/rest/updates/samuel/2023-08-17","unlisted":false}]},{"type":"category","label":"Soham Banerjee","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2023/rest/updates/soham/2023-05-11","docId":"2023/rest/updates/soham/2023-05-11","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2023/rest/updates/soham/2023-06-01","docId":"2023/rest/updates/soham/2023-06-01","unlisted":false},{"type":"link","label":"Week 2 & 3","href":"/gsoc/docs/2023/rest/updates/soham/2023-06-08","docId":"2023/rest/updates/soham/2023-06-08","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2023/rest/updates/soham/2023-06-27","docId":"2023/rest/updates/soham/2023-06-27","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2023/rest/updates/soham/2023-07-05","docId":"2023/rest/updates/soham/2023-07-05","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2023/rest/updates/soham/2023-07-16","docId":"2023/rest/updates/soham/2023-07-16","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2023/rest/updates/soham/2023-07-28","docId":"2023/rest/updates/soham/2023-07-28","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2023/rest/updates/soham/2023-08-05","docId":"2023/rest/updates/soham/2023-08-05","unlisted":false}]}]}],"href":"/gsoc/docs/2023/rest/"},{"type":"category","label":"License as a Service","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2023/laas/updates/2023-05-11","docId":"2023/laas/updates/2023-05-11","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-06-02","docId":"2023/laas/updates/2023-06-02","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-06-09","docId":"2023/laas/updates/2023-06-09","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-06-16","docId":"2023/laas/updates/2023-06-16","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-06-23","docId":"2023/laas/updates/2023-06-23","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-06-30","docId":"2023/laas/updates/2023-06-30","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-07-07","docId":"2023/laas/updates/2023-07-07","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-07-14","docId":"2023/laas/updates/2023-07-14","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-07-21","docId":"2023/laas/updates/2023-07-21","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-07-28","docId":"2023/laas/updates/2023-07-28","unlisted":false},{"type":"link","label":"Coding Period","href":"/gsoc/docs/2023/laas/updates/2023-08-04","docId":"2023/laas/updates/2023-08-04","unlisted":false}]},{"type":"link","label":"Final Evaluation","href":"/gsoc/docs/2023/laas/finalevaluation","docId":"2023/laas/finalevaluation","unlisted":false}],"href":"/gsoc/docs/2023/laas/"},{"type":"category","label":"Support CycloneDX report","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2023/cyclonedx/updates/2023-05-11","docId":"2023/cyclonedx/updates/2023-05-11","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2023/cyclonedx/updates/2023-06-01","docId":"2023/cyclonedx/updates/2023-06-01","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2023/cyclonedx/updates/2023-06-08","docId":"2023/cyclonedx/updates/2023-06-08","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2023/cyclonedx/updates/2023-06-15","docId":"2023/cyclonedx/updates/2023-06-15","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2023/cyclonedx/updates/2023-06-22","docId":"2023/cyclonedx/updates/2023-06-22","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2023/cyclonedx/updates/2023-06-29","docId":"2023/cyclonedx/updates/2023-06-29","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2023/cyclonedx/updates/2023-07-06","docId":"2023/cyclonedx/updates/2023-07-06","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2023/cyclonedx/updates/2023-07-13","docId":"2023/cyclonedx/updates/2023-07-13","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2023/cyclonedx/updates/2023-07-20","docId":"2023/cyclonedx/updates/2023-07-20","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2023/cyclonedx/updates/2023-07-27","docId":"2023/cyclonedx/updates/2023-07-27","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2023/cyclonedx/updates/2023-08-03","docId":"2023/cyclonedx/updates/2023-08-03","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2023/cyclonedx/updates/2023-08-10","docId":"2023/cyclonedx/updates/2023-08-10","unlisted":false}]}],"href":"/gsoc/docs/2023/cyclonedx/"},{"type":"category","label":"Meeting minutes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding 1","href":"/gsoc/docs/2023/minutes/2023-05-11","docId":"2023/minutes/2023-05-11","unlisted":false},{"type":"link","label":"Community Bonding 2","href":"/gsoc/docs/2023/minutes/2023-05-18","docId":"2023/minutes/2023-05-18","unlisted":false},{"type":"link","label":"Community Bonding 3","href":"/gsoc/docs/2023/minutes/2023-05-25","docId":"2023/minutes/2023-05-25","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2023/minutes/2023-06-01","docId":"2023/minutes/2023-06-01","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2023/minutes/2023-06-08","docId":"2023/minutes/2023-06-08","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2023/minutes/2023-06-15","docId":"2023/minutes/2023-06-15","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2023/minutes/2023-06-22","docId":"2023/minutes/2023-06-22","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2023/minutes/2023-06-29","docId":"2023/minutes/2023-06-29","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2023/minutes/2023-07-06","docId":"2023/minutes/2023-07-06","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2023/minutes/2023-07-20","docId":"2023/minutes/2023-07-20","unlisted":false},{"type":"link","label":"Week 9","href":"/gsoc/docs/2023/minutes/2023-08-10","docId":"2023/minutes/2023-08-10","unlisted":false},{"type":"link","label":"Week 10","href":"/gsoc/docs/2023/minutes/2023-08-17","docId":"2023/minutes/2023-08-17","unlisted":false},{"type":"link","label":"Week 11","href":"/gsoc/docs/2023/minutes/2023-08-24","docId":"2023/minutes/2023-08-24","unlisted":false}]}],"2024":[{"type":"link","label":"GSoC\'24 @ FOSSology","href":"/gsoc/docs/2024","docId":"2024/index","unlisted":false},{"type":"link","label":"Google Summer of Code Proposals 2024","href":"/gsoc/docs/2024/GSoC-projects","docId":"2024/GSoC-projects","unlisted":false},{"type":"category","label":"Scheduler Overhaul","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"General","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"week-04","href":"/gsoc/docs/2024/scheduler/updates/General/2024-05-30","docId":"2024/scheduler/updates/General/2024-05-30","unlisted":false},{"type":"link","label":"week-06","href":"/gsoc/docs/2024/scheduler/updates/General/2024-06-13","docId":"2024/scheduler/updates/General/2024-06-13","unlisted":false},{"type":"link","label":"week-07","href":"/gsoc/docs/2024/scheduler/updates/General/2024-06-20","docId":"2024/scheduler/updates/General/2024-06-20","unlisted":false},{"type":"link","label":"Week-08","href":"/gsoc/docs/2024/scheduler/updates/General/2024-06-27","docId":"2024/scheduler/updates/General/2024-06-27","unlisted":false},{"type":"link","label":"week-09","href":"/gsoc/docs/2024/scheduler/updates/General/2024-07-04","docId":"2024/scheduler/updates/General/2024-07-04","unlisted":false},{"type":"link","label":"week-10","href":"/gsoc/docs/2024/scheduler/updates/General/2024-07-11","docId":"2024/scheduler/updates/General/2024-07-11","unlisted":false}]},{"type":"category","label":"Discussion","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"week-04","href":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31","docId":"2024/scheduler/updates/Discussion/2024-05-31","unlisted":false},{"type":"link","label":"week-06","href":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14","docId":"2024/scheduler/updates/Discussion/2024-06-14","unlisted":false},{"type":"link","label":"week-07","href":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21","docId":"2024/scheduler/updates/Discussion/2024-06-21","unlisted":false},{"type":"link","label":"week-08","href":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28","docId":"2024/scheduler/updates/Discussion/2024-06-28","unlisted":false},{"type":"link","label":"week-09","href":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05","docId":"2024/scheduler/updates/Discussion/2024-07-05","unlisted":false},{"type":"link","label":"week-10","href":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12","docId":"2024/scheduler/updates/Discussion/2024-07-12","unlisted":false}]},{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/scheduler/updates/2023-05-30","docId":"2024/scheduler/updates/2023-05-30","unlisted":false},{"type":"link","label":"week-01","href":"/gsoc/docs/2024/scheduler/updates/2024-05-09","docId":"2024/scheduler/updates/2024-05-09","unlisted":false},{"type":"link","label":"week-03","href":"/gsoc/docs/2024/scheduler/updates/2024-05-23","docId":"2024/scheduler/updates/2024-05-23","unlisted":false},{"type":"link","label":"Weekly Updates (Community Bonding)","href":"/gsoc/docs/2024/scheduler/updates/2024-06-06","docId":"2024/scheduler/updates/2024-06-06","unlisted":false},{"type":"link","label":"OVERHAULING SCHEDULER DESIGN (Discussion)","href":"/gsoc/docs/2024/scheduler/updates/2024-06-07","docId":"2024/scheduler/updates/2024-06-07","unlisted":false}]}],"href":"/gsoc/docs/2024/scheduler/"},{"type":"category","label":"AI Powered License Detection","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/license-detection/updates/2024-05-30","docId":"2024/license-detection/updates/2024-05-30","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/license-detection/updates/2024-06-06","docId":"2024/license-detection/updates/2024-06-06","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/license-detection/updates/2024-06-13","docId":"2024/license-detection/updates/2024-06-13","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/license-detection/updates/2024-06-20","docId":"2024/license-detection/updates/2024-06-20","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/license-detection/updates/2024-06-27","docId":"2024/license-detection/updates/2024-06-27","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2024/license-detection/updates/2024-07-04","docId":"2024/license-detection/updates/2024-07-04","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2024/license-detection/updates/2024-07-11","docId":"2024/license-detection/updates/2024-07-11","unlisted":false}]}],"href":"/gsoc/docs/2024/license-detection/"},{"type":"category","label":"Support SPDX 3.0 Reports","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/spdx30/updates/2024-05-07","docId":"2024/spdx30/updates/2024-05-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/spdx30/updates/2024-05-28","docId":"2024/spdx30/updates/2024-05-28","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/spdx30/updates/2024-06-04","docId":"2024/spdx30/updates/2024-06-04","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/spdx30/updates/2024-06-11","docId":"2024/spdx30/updates/2024-06-11","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/spdx30/updates/2024-06-18","docId":"2024/spdx30/updates/2024-06-18","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/spdx30/updates/2024-06-25","docId":"2024/spdx30/updates/2024-06-25","unlisted":false}]}],"href":"/gsoc/docs/2024/spdx30/"},{"type":"category","label":"SPDX License Expression Support","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community Bonding Report","href":"/gsoc/docs/2024/spdx-expression/updates/2024-05-07","docId":"2024/spdx-expression/updates/2024-05-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/spdx-expression/updates/2024-05-28","docId":"2024/spdx-expression/updates/2024-05-28","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/spdx-expression/updates/2024-06-04","docId":"2024/spdx-expression/updates/2024-06-04","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/spdx-expression/updates/2024-06-11","docId":"2024/spdx-expression/updates/2024-06-11","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/spdx-expression/updates/2024-06-18","docId":"2024/spdx-expression/updates/2024-06-18","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/spdx-expression/updates/2024-06-25","docId":"2024/spdx-expression/updates/2024-06-25","unlisted":false}]}],"href":"/gsoc/docs/2024/spdx-expression/"},{"type":"category","label":"Meeting minutes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/minutes/2024-05-30","docId":"2024/minutes/2024-05-30","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/minutes/2024-06-06","docId":"2024/minutes/2024-06-06","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/minutes/2024-06-13","docId":"2024/minutes/2024-06-13","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/minutes/2024-06-20","docId":"2024/minutes/2024-06-20","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/minutes/2024-06-27","docId":"2024/minutes/2024-06-27","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2024/minutes/2024-07-04","docId":"2024/minutes/2024-07-04","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2024/minutes/2024-07-11","docId":"2024/minutes/2024-07-11","unlisted":false}]},{"type":"category","label":"REST API Improvements","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Divij Sharma","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/rest/updates/Divij/2024-05-07","docId":"2024/rest/updates/Divij/2024-05-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/rest/updates/Divij/2024-05-30","docId":"2024/rest/updates/Divij/2024-05-30","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/rest/updates/Divij/2024-06-06","docId":"2024/rest/updates/Divij/2024-06-06","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/rest/updates/Divij/2024-06-11","docId":"2024/rest/updates/Divij/2024-06-11","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/rest/updates/Divij/2024-06-18","docId":"2024/rest/updates/Divij/2024-06-18","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/rest/updates/Divij/2024-06-25","docId":"2024/rest/updates/Divij/2024-06-25","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2024/rest/updates/Divij/2024-07-02","docId":"2024/rest/updates/Divij/2024-07-02","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2024/rest/updates/Divij/2024-07-09","docId":"2024/rest/updates/Divij/2024-07-09","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2024/rest/updates/Divij/2024-07-16","docId":"2024/rest/updates/Divij/2024-07-16","unlisted":false}]},{"type":"category","label":"Valens Niyonsenga","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/rest/updates/valens/2024-05-07","docId":"2024/rest/updates/valens/2024-05-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/rest/updates/valens/2024-05-30","docId":"2024/rest/updates/valens/2024-05-30","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/rest/updates/valens/2024-06-13","docId":"2024/rest/updates/valens/2024-06-13","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/rest/updates/valens/2024-06-20","docId":"2024/rest/updates/valens/2024-06-20","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/rest/updates/valens/2024-06-27","docId":"2024/rest/updates/valens/2024-06-27","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/rest/updates/valens/2024-07-04","docId":"2024/rest/updates/valens/2024-07-04","unlisted":false}]}]},{"type":"link","label":"REST API Guidelines","href":"/gsoc/docs/2024/rest/API-guidelines","docId":"2024/rest/API-guidelines","unlisted":false}],"href":"/gsoc/docs/2024/rest/"},{"type":"category","label":"CI Scanner Improvements","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/ci-scanner/updates/2024-05-07","docId":"2024/ci-scanner/updates/2024-05-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/ci-scanner/updates/2024-06-06","docId":"2024/ci-scanner/updates/2024-06-06","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/ci-scanner/updates/2024-06-13","docId":"2024/ci-scanner/updates/2024-06-13","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/ci-scanner/updates/2024-06-20","docId":"2024/ci-scanner/updates/2024-06-20","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/ci-scanner/updates/2024-06-27","docId":"2024/ci-scanner/updates/2024-06-27","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/ci-scanner/updates/2024-07-04","docId":"2024/ci-scanner/updates/2024-07-04","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2024/ci-scanner/updates/2024-07-11","docId":"2024/ci-scanner/updates/2024-07-11","unlisted":false},{"type":"link","label":"Week 7","href":"/gsoc/docs/2024/ci-scanner/updates/2024-07-18","docId":"2024/ci-scanner/updates/2024-07-18","unlisted":false},{"type":"link","label":"Week 8","href":"/gsoc/docs/2024/ci-scanner/updates/2024-07-25","docId":"2024/ci-scanner/updates/2024-07-25","unlisted":false}]}],"href":"/gsoc/docs/2024/ci-scanner/"},{"type":"category","label":"Data Pipeline","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/pipeline/updates/2024-05-07","docId":"2024/pipeline/updates/2024-05-07","unlisted":false},{"type":"link","label":"Week 1","href":"/gsoc/docs/2024/pipeline/updates/2024-05-30","docId":"2024/pipeline/updates/2024-05-30","unlisted":false},{"type":"link","label":"Week 2","href":"/gsoc/docs/2024/pipeline/updates/2024-06-06","docId":"2024/pipeline/updates/2024-06-06","unlisted":false},{"type":"link","label":"Week 3","href":"/gsoc/docs/2024/pipeline/updates/2024-06-13","docId":"2024/pipeline/updates/2024-06-13","unlisted":false},{"type":"link","label":"Week 4","href":"/gsoc/docs/2024/pipeline/updates/2024-06-20","docId":"2024/pipeline/updates/2024-06-20","unlisted":false},{"type":"link","label":"Week 5","href":"/gsoc/docs/2024/pipeline/updates/2024-06-27","docId":"2024/pipeline/updates/2024-06-27","unlisted":false},{"type":"link","label":"Week 6","href":"/gsoc/docs/2024/pipeline/updates/2024-07-04","docId":"2024/pipeline/updates/2024-07-04","unlisted":false}]}],"href":"/gsoc/docs/2024/pipeline/"},{"type":"category","label":"Text Phrases","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Weekly Updates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Community bonding","href":"/gsoc/docs/2024/text-phrases/updates/2024-05-7","docId":"2024/text-phrases/updates/2024-05-7","unlisted":false}]}],"href":"/gsoc/docs/2024/text-phrases/"}]},"docs":{"2021/buildsystem/build":{"id":"2021/buildsystem/build","title":"Building FOSSology","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/final-evaluation":{"id":"2021/buildsystem/final-evaluation","title":"Final Evaluation","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/first-evaluation":{"id":"2021/buildsystem/first-evaluation","title":"First Evaluation","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/index":{"id":"2021/buildsystem/index","title":"Introduction","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-05-28":{"id":"2021/buildsystem/updates/2021-05-28","title":"Community Bonding","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-06-11":{"id":"2021/buildsystem/updates/2021-06-11","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-06-18":{"id":"2021/buildsystem/updates/2021-06-18","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-06-22":{"id":"2021/buildsystem/updates/2021-06-22","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-06-29":{"id":"2021/buildsystem/updates/2021-06-29","title":"Week 4","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-07-09":{"id":"2021/buildsystem/updates/2021-07-09","title":"Week 5","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-07-23":{"id":"2021/buildsystem/updates/2021-07-23","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-07-30":{"id":"2021/buildsystem/updates/2021-07-30","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-08-06":{"id":"2021/buildsystem/updates/2021-08-06","title":"Week 9","description":"\x3c!--","sidebar":"2021"},"2021/buildsystem/updates/2021-08-13":{"id":"2021/buildsystem/updates/2021-08-13","title":"Week 10","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/index":{"id":"2021/copyrights/index","title":"Introduction","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/setup":{"id":"2021/copyrights/setup","title":"Setup","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-06-07":{"id":"2021/copyrights/updates/2021-06-07","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-06-15":{"id":"2021/copyrights/updates/2021-06-15","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-06-22":{"id":"2021/copyrights/updates/2021-06-22","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-07-06":{"id":"2021/copyrights/updates/2021-07-06","title":"Week 4 & 5","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-07-13":{"id":"2021/copyrights/updates/2021-07-13","title":"Week 6","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-07-20":{"id":"2021/copyrights/updates/2021-07-20","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-08-03":{"id":"2021/copyrights/updates/2021-08-03","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/copyrights/updates/2021-08-10":{"id":"2021/copyrights/updates/2021-08-10","title":"Week 9","description":"\x3c!--","sidebar":"2021"},"2021/index":{"id":"2021/index","title":"GSoC\'21 @ FOSSology","description":"\x3c!--","sidebar":"2021"},"2021/microservice/dockerImages":{"id":"2021/microservice/dockerImages","title":"Docker Images","description":"\x3c!--","sidebar":"2021"},"2021/microservice/index":{"id":"2021/microservice/index","title":"Introduction","description":"\x3c!--","sidebar":"2021"},"2021/microservice/setup":{"id":"2021/microservice/setup","title":"Setup","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-06-07":{"id":"2021/microservice/updates/2021-06-07","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-06-15":{"id":"2021/microservice/updates/2021-06-15","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-06-22":{"id":"2021/microservice/updates/2021-06-22","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-06-29":{"id":"2021/microservice/updates/2021-06-29","title":"Week 4","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-07-06":{"id":"2021/microservice/updates/2021-07-06","title":"Week 5","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-07-13":{"id":"2021/microservice/updates/2021-07-13","title":"Week 6","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-07-20":{"id":"2021/microservice/updates/2021-07-20","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-07-27":{"id":"2021/microservice/updates/2021-07-27","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-08-03":{"id":"2021/microservice/updates/2021-08-03","title":"Week 9","description":"\x3c!--","sidebar":"2021"},"2021/microservice/updates/2021-08-17":{"id":"2021/microservice/updates/2021-08-17","title":"Week 10","description":"\x3c!--","sidebar":"2021"},"2021/minerva/index":{"id":"2021/minerva/index","title":"Introduction","description":"\x3c!--","sidebar":"2021"},"2021/minerva/installation":{"id":"2021/minerva/installation","title":"Installation","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-06-07":{"id":"2021/minerva/updates/2021-06-07","title":"Week 0","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-06-15":{"id":"2021/minerva/updates/2021-06-15","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-06-22":{"id":"2021/minerva/updates/2021-06-22","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-06-29":{"id":"2021/minerva/updates/2021-06-29","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-07-05":{"id":"2021/minerva/updates/2021-07-05","title":"Week 4","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-07-13":{"id":"2021/minerva/updates/2021-07-13","title":"Week 5","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-07-20":{"id":"2021/minerva/updates/2021-07-20","title":"Week 6","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-07-27":{"id":"2021/minerva/updates/2021-07-27","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-08-03":{"id":"2021/minerva/updates/2021-08-03","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-08-10":{"id":"2021/minerva/updates/2021-08-10","title":"Week 9","description":"\x3c!--","sidebar":"2021"},"2021/minerva/updates/2021-08-17":{"id":"2021/minerva/updates/2021-08-17","title":"Week 10","description":"\x3c!--","sidebar":"2021"},"2021/scancode/copyright":{"id":"2021/scancode/copyright","title":"Copyright UI","description":"\x3c!--","sidebar":"2021"},"2021/scancode/first_evaluation":{"id":"2021/scancode/first_evaluation","title":"First Evaluation","description":"\x3c!--","sidebar":"2021"},"2021/scancode/installation":{"id":"2021/scancode/installation","title":"Installing scancode","description":"\x3c!--","sidebar":"2021"},"2021/scancode/introduction":{"id":"2021/scancode/introduction","title":"Introduction","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-05-28":{"id":"2021/scancode/updates/2021-05-28","title":"Community Bonding","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-06-11":{"id":"2021/scancode/updates/2021-06-11","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-06-18":{"id":"2021/scancode/updates/2021-06-18","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-06-22":{"id":"2021/scancode/updates/2021-06-22","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-06-29":{"id":"2021/scancode/updates/2021-06-29","title":"Week 4","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-07-06":{"id":"2021/scancode/updates/2021-07-06","title":"Week 5","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-07-13":{"id":"2021/scancode/updates/2021-07-13","title":"Week 6","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-07-20":{"id":"2021/scancode/updates/2021-07-20","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/scancode/updates/2021-07-27":{"id":"2021/scancode/updates/2021-07-27","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/ui/index":{"id":"2021/ui/index","title":"Introduction","description":"\x3c!--","sidebar":"2021"},"2021/ui/installation":{"id":"2021/ui/installation","title":"Installation","description":"\x3c!--","sidebar":"2021"},"2021/ui/styleGuide":{"id":"2021/ui/styleGuide","title":"Style Guide","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-06-15":{"id":"2021/ui/updates/aman/2021-06-15","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-06-22":{"id":"2021/ui/updates/aman/2021-06-22","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-06-29":{"id":"2021/ui/updates/aman/2021-06-29","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-07-06":{"id":"2021/ui/updates/aman/2021-07-06","title":"Week 4","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-07-13":{"id":"2021/ui/updates/aman/2021-07-13","title":"Week 5","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-07-20":{"id":"2021/ui/updates/aman/2021-07-20","title":"Week 6","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-07-27":{"id":"2021/ui/updates/aman/2021-07-27","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-08-03":{"id":"2021/ui/updates/aman/2021-08-03","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-08-10":{"id":"2021/ui/updates/aman/2021-08-10","title":"Week 9","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/aman/2021-08-17":{"id":"2021/ui/updates/aman/2021-08-17","title":"Week 10","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-06-15":{"id":"2021/ui/updates/shruti/2021-06-15","title":"Week 1","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-06-22":{"id":"2021/ui/updates/shruti/2021-06-22","title":"Week 2","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-06-29":{"id":"2021/ui/updates/shruti/2021-06-29","title":"Week 3","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-07-06":{"id":"2021/ui/updates/shruti/2021-07-06","title":"Week 4","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-07-13":{"id":"2021/ui/updates/shruti/2021-07-13","title":"Week 5","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-07-20":{"id":"2021/ui/updates/shruti/2021-07-20","title":"Week 6","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-07-27":{"id":"2021/ui/updates/shruti/2021-07-27","title":"Week 7","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-08-03":{"id":"2021/ui/updates/shruti/2021-08-03","title":"Week 8","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-08-10":{"id":"2021/ui/updates/shruti/2021-08-10","title":"Week 9","description":"\x3c!--","sidebar":"2021"},"2021/ui/updates/shruti/2021-08-17":{"id":"2021/ui/updates/shruti/2021-08-17","title":"Week 10","description":"\x3c!--","sidebar":"2021"},"2022/atarashi/index":{"id":"2022/atarashi/index","title":"Introduction","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-06-02":{"id":"2022/atarashi/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-06-13":{"id":"2022/atarashi/updates/2022-06-13","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-06-20":{"id":"2022/atarashi/updates/2022-06-20","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-06-27":{"id":"2022/atarashi/updates/2022-06-27","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-07-04":{"id":"2022/atarashi/updates/2022-07-04","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-07-11":{"id":"2022/atarashi/updates/2022-07-11","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-07-19":{"id":"2022/atarashi/updates/2022-07-19","title":"Week 6","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-07-26":{"id":"2022/atarashi/updates/2022-07-26","title":"Week 7","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-08-02":{"id":"2022/atarashi/updates/2022-08-02","title":"Week 8","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-08-09":{"id":"2022/atarashi/updates/2022-08-09","title":"Week 9","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-08-16":{"id":"2022/atarashi/updates/2022-08-16","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-08-23":{"id":"2022/atarashi/updates/2022-08-23","title":"Week 11","description":"\x3c!--","sidebar":"2022"},"2022/atarashi/updates/2022-08-30":{"id":"2022/atarashi/updates/2022-08-30","title":"Week 12","description":"\x3c!--","sidebar":"2022"},"2022/GSoC-projects":{"id":"2022/GSoC-projects","title":"Google Summer of Code Proposals 2022","description":"\x3c!--","sidebar":"2022"},"2022/index":{"id":"2022/index","title":"GSoC\'22 @ FOSSology","description":"\x3c!--","sidebar":"2022"},"2022/minutes/02-06-2022":{"id":"2022/minutes/02-06-2022","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/minutes/04-08-2022":{"id":"2022/minutes/04-08-2022","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2022/minutes/07-07-2022":{"id":"2022/minutes/07-07-2022","title":"Week 6","description":"\x3c!--","sidebar":"2022"},"2022/minutes/09-06-2022":{"id":"2022/minutes/09-06-2022","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/minutes/11-08-2022":{"id":"2022/minutes/11-08-2022","title":"Week 11","description":"\x3c!--","sidebar":"2022"},"2022/minutes/14-07-2022":{"id":"2022/minutes/14-07-2022","title":"Week 7","description":"\x3c!--","sidebar":"2022"},"2022/minutes/16-06-2022":{"id":"2022/minutes/16-06-2022","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/minutes/18-08-2022":{"id":"2022/minutes/18-08-2022","title":"Week 12","description":"\x3c!--","sidebar":"2022"},"2022/minutes/21-07-2022":{"id":"2022/minutes/21-07-2022","title":"Week 8","description":"\x3c!--","sidebar":"2022"},"2022/minutes/23-06-2022":{"id":"2022/minutes/23-06-2022","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/minutes/25-08-2022":{"id":"2022/minutes/25-08-2022","title":"Week 13","description":"\x3c!--","sidebar":"2022"},"2022/minutes/28-07-2022":{"id":"2022/minutes/28-07-2022","title":"Week 9","description":"\x3c!--","sidebar":"2022"},"2022/minutes/30-06-2022":{"id":"2022/minutes/30-06-2022","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/project/index":{"id":"2022/project/index","title":"Introduction","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-06-02":{"id":"2022/project/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-06-09":{"id":"2022/project/updates/2022-06-09","title":"Week1","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-06-16":{"id":"2022/project/updates/2022-06-16","title":"Week2","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-06-23":{"id":"2022/project/updates/2022-06-23","title":"Week3","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-06-30":{"id":"2022/project/updates/2022-06-30","title":"Week4","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-07-07":{"id":"2022/project/updates/2022-07-07","title":"Week5","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-07-14":{"id":"2022/project/updates/2022-07-14","title":"Week6","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-07-21":{"id":"2022/project/updates/2022-07-21","title":"Week7","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-07-28":{"id":"2022/project/updates/2022-07-28","title":"Week8","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-08-04":{"id":"2022/project/updates/2022-08-04","title":"Week9","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-08-11":{"id":"2022/project/updates/2022-08-11","title":"Week10","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-08-18":{"id":"2022/project/updates/2022-08-18","title":"Week11","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-08-25":{"id":"2022/project/updates/2022-08-25","title":"Week12","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-09-01":{"id":"2022/project/updates/2022-09-01","title":"Week13","description":"\x3c!--","sidebar":"2022"},"2022/project/updates/2022-09-08":{"id":"2022/project/updates/2022-09-08","title":"Week14","description":"\x3c!--","sidebar":"2022"},"2022/reuse/index":{"id":"2022/reuse/index","title":"Introduction","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-06-02":{"id":"2022/reuse/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-06-13":{"id":"2022/reuse/updates/2022-06-13","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-06-20":{"id":"2022/reuse/updates/2022-06-20","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-06-27":{"id":"2022/reuse/updates/2022-06-27","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-07-04":{"id":"2022/reuse/updates/2022-07-04","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-07-11":{"id":"2022/reuse/updates/2022-07-11","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-07-18":{"id":"2022/reuse/updates/2022-07-18","title":"Week 6","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-07-25":{"id":"2022/reuse/updates/2022-07-25","title":"Week 7","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-08-02":{"id":"2022/reuse/updates/2022-08-02","title":"Week 8","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-08-09":{"id":"2022/reuse/updates/2022-08-09","title":"Week 9","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-08-16":{"id":"2022/reuse/updates/2022-08-16","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-08-23":{"id":"2022/reuse/updates/2022-08-23","title":"Week 11","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-08-30":{"id":"2022/reuse/updates/2022-08-30","title":"Week 12","description":"\x3c!--","sidebar":"2022"},"2022/reuse/updates/2022-09-06":{"id":"2022/reuse/updates/2022-09-06","title":"Week 13","description":"\x3c!--","sidebar":"2022"},"2022/spasht/index":{"id":"2022/spasht/index","title":"Introduction","description":"\x3c!--","sidebar":"2022"},"2022/spasht/updates/2022-06-02":{"id":"2022/spasht/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/spasht/updates/2022-06-08":{"id":"2022/spasht/updates/2022-06-08","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/spasht/updates/2022-06-15":{"id":"2022/spasht/updates/2022-06-15","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/spasht/updates/2022-06-22":{"id":"2022/spasht/updates/2022-06-22","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/spasht/updates/2022-07-06":{"id":"2022/spasht/updates/2022-07-06","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/spasht/updates/2022-07-13":{"id":"2022/spasht/updates/2022-07-13","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/ui/index":{"id":"2022/ui/index","title":"Introduction","description":"\x3c!--","sidebar":"2022"},"2022/ui/installation":{"id":"2022/ui/installation","title":"Installation","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/ayush/2022-06-02":{"id":"2022/ui/updates/ayush/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-06-02":{"id":"2022/ui/updates/krishna/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-06-20":{"id":"2022/ui/updates/krishna/2022-06-20","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-06-27":{"id":"2022/ui/updates/krishna/2022-06-27","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-07-04":{"id":"2022/ui/updates/krishna/2022-07-04","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-07-11":{"id":"2022/ui/updates/krishna/2022-07-11","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-07-17":{"id":"2022/ui/updates/krishna/2022-07-17","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-07-24":{"id":"2022/ui/updates/krishna/2022-07-24","title":"Week 6","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-07-31":{"id":"2022/ui/updates/krishna/2022-07-31","title":"Week 7","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-08-07":{"id":"2022/ui/updates/krishna/2022-08-07","title":"Week 8","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-08-14":{"id":"2022/ui/updates/krishna/2022-08-14","title":"Week 9","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-08-21":{"id":"2022/ui/updates/krishna/2022-08-21","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-08-28":{"id":"2022/ui/updates/krishna/2022-08-28","title":"Week 11","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/krishna/2022-09-04":{"id":"2022/ui/updates/krishna/2022-09-04","title":"Week 12","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2021-06-24":{"id":"2022/ui/updates/samuel/2021-06-24","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-06-02":{"id":"2022/ui/updates/samuel/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-06-30":{"id":"2022/ui/updates/samuel/2022-06-30","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-07-07":{"id":"2022/ui/updates/samuel/2022-07-07","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-07-14":{"id":"2022/ui/updates/samuel/2022-07-14","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-07-21":{"id":"2022/ui/updates/samuel/2022-07-21","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-08-02":{"id":"2022/ui/updates/samuel/2022-08-02","title":"Week 6 & 7","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-08-11":{"id":"2022/ui/updates/samuel/2022-08-11","title":"Week 8","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-08-18":{"id":"2022/ui/updates/samuel/2022-08-18","title":"Week 9","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-08-25":{"id":"2022/ui/updates/samuel/2022-08-25","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-09-08":{"id":"2022/ui/updates/samuel/2022-09-08","title":"Week 12","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/samuel/2022-09-1":{"id":"2022/ui/updates/samuel/2022-09-1","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-06-02":{"id":"2022/ui/updates/soham/2022-06-02","title":"Community Bonding","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-06-24":{"id":"2022/ui/updates/soham/2022-06-24","title":"Week 1","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-07-3":{"id":"2022/ui/updates/soham/2022-07-3","title":"Week 2","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-07-7":{"id":"2022/ui/updates/soham/2022-07-7","title":"Week 3","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-07-8":{"id":"2022/ui/updates/soham/2022-07-8","title":"Week 4","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-07-9":{"id":"2022/ui/updates/soham/2022-07-9","title":"Week 5","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-08-01":{"id":"2022/ui/updates/soham/2022-08-01","title":"Week 6 and 7","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-08-05":{"id":"2022/ui/updates/soham/2022-08-05","title":"Week 8 and 9","description":"\x3c!--","sidebar":"2022"},"2022/ui/updates/soham/2022-08-08":{"id":"2022/ui/updates/soham/2022-08-08","title":"Week 10","description":"\x3c!--","sidebar":"2022"},"2023/copyrights/index":{"id":"2023/copyrights/index","title":"Introduction","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-05-11":{"id":"2023/copyrights/updates/2023-05-11","title":"Community bonding","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-05-31":{"id":"2023/copyrights/updates/2023-05-31","title":"Week 1","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-06-07":{"id":"2023/copyrights/updates/2023-06-07","title":"Week 2","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-06-14":{"id":"2023/copyrights/updates/2023-06-14","title":"Week 3","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-06-21":{"id":"2023/copyrights/updates/2023-06-21","title":"Week 4","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-06-28":{"id":"2023/copyrights/updates/2023-06-28","title":"Week 5","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-07-05":{"id":"2023/copyrights/updates/2023-07-05","title":"Week 6","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-07-12":{"id":"2023/copyrights/updates/2023-07-12","title":"Week 7","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-07-19":{"id":"2023/copyrights/updates/2023-07-19","title":"Week 8","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-07-26":{"id":"2023/copyrights/updates/2023-07-26","title":"Week 9","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-08-02":{"id":"2023/copyrights/updates/2023-08-02","title":"Week 10","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-08-09":{"id":"2023/copyrights/updates/2023-08-09","title":"Week 11","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-08-16":{"id":"2023/copyrights/updates/2023-08-16","title":"Week 12","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-08-23":{"id":"2023/copyrights/updates/2023-08-23","title":"Week 13","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-08-30":{"id":"2023/copyrights/updates/2023-08-30","title":"Week 14","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-09-06":{"id":"2023/copyrights/updates/2023-09-06","title":"Week 15","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-09-13":{"id":"2023/copyrights/updates/2023-09-13","title":"Week 16","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-09-20":{"id":"2023/copyrights/updates/2023-09-20","title":"Week 17","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-09-27":{"id":"2023/copyrights/updates/2023-09-27","title":"Week 18","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-10-04":{"id":"2023/copyrights/updates/2023-10-04","title":"Week 19","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-10-11":{"id":"2023/copyrights/updates/2023-10-11","title":"Week 20","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-10-18":{"id":"2023/copyrights/updates/2023-10-18","title":"Week 21","description":"\x3c!--","sidebar":"2023"},"2023/copyrights/updates/2023-10-25":{"id":"2023/copyrights/updates/2023-10-25","title":"Week 22","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/index":{"id":"2023/cyclonedx/index","title":"Introduction","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-05-11":{"id":"2023/cyclonedx/updates/2023-05-11","title":"Community bonding","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-06-01":{"id":"2023/cyclonedx/updates/2023-06-01","title":"Week 1","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-06-08":{"id":"2023/cyclonedx/updates/2023-06-08","title":"Week 2","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-06-15":{"id":"2023/cyclonedx/updates/2023-06-15","title":"Week 3","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-06-22":{"id":"2023/cyclonedx/updates/2023-06-22","title":"Week 4","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-06-29":{"id":"2023/cyclonedx/updates/2023-06-29","title":"Week 5","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-07-06":{"id":"2023/cyclonedx/updates/2023-07-06","title":"Week 6","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-07-13":{"id":"2023/cyclonedx/updates/2023-07-13","title":"Week 7","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-07-20":{"id":"2023/cyclonedx/updates/2023-07-20","title":"Week 8","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-07-27":{"id":"2023/cyclonedx/updates/2023-07-27","title":"Week 9","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-08-03":{"id":"2023/cyclonedx/updates/2023-08-03","title":"Week 10","description":"\x3c!--","sidebar":"2023"},"2023/cyclonedx/updates/2023-08-10":{"id":"2023/cyclonedx/updates/2023-08-10","title":"Week 11","description":"\x3c!--","sidebar":"2023"},"2023/GSoC-projects":{"id":"2023/GSoC-projects","title":"Google Summer of Code Proposals 2023","description":"\x3c!--","sidebar":"2023"},"2023/index":{"id":"2023/index","title":"GSoC\'23 @ FOSSology","description":"\x3c!--","sidebar":"2023"},"2023/laas/finalevaluation":{"id":"2023/laas/finalevaluation","title":"Final Evaluation","description":"\x3c!--","sidebar":"2023"},"2023/laas/index":{"id":"2023/laas/index","title":"Introduction","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-05-11":{"id":"2023/laas/updates/2023-05-11","title":"Community bonding","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-06-02":{"id":"2023/laas/updates/2023-06-02","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-06-09":{"id":"2023/laas/updates/2023-06-09","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-06-16":{"id":"2023/laas/updates/2023-06-16","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-06-23":{"id":"2023/laas/updates/2023-06-23","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-06-30":{"id":"2023/laas/updates/2023-06-30","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-07-07":{"id":"2023/laas/updates/2023-07-07","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-07-14":{"id":"2023/laas/updates/2023-07-14","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-07-21":{"id":"2023/laas/updates/2023-07-21","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-07-28":{"id":"2023/laas/updates/2023-07-28","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/laas/updates/2023-08-04":{"id":"2023/laas/updates/2023-08-04","title":"Coding Period","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-05-11":{"id":"2023/minutes/2023-05-11","title":"Community Bonding 1","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-05-18":{"id":"2023/minutes/2023-05-18","title":"Community Bonding 2","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-05-25":{"id":"2023/minutes/2023-05-25","title":"Community Bonding 3","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-06-01":{"id":"2023/minutes/2023-06-01","title":"Week 1","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-06-08":{"id":"2023/minutes/2023-06-08","title":"Week 2","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-06-15":{"id":"2023/minutes/2023-06-15","title":"Week 3","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-06-22":{"id":"2023/minutes/2023-06-22","title":"Week 4","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-06-29":{"id":"2023/minutes/2023-06-29","title":"Week 5","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-07-06":{"id":"2023/minutes/2023-07-06","title":"Week 6","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-07-20":{"id":"2023/minutes/2023-07-20","title":"Week 7","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-08-10":{"id":"2023/minutes/2023-08-10","title":"Week 9","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-08-17":{"id":"2023/minutes/2023-08-17","title":"Week 10","description":"\x3c!--","sidebar":"2023"},"2023/minutes/2023-08-24":{"id":"2023/minutes/2023-08-24","title":"Week 11","description":"\x3c!--","sidebar":"2023"},"2023/rest/index":{"id":"2023/rest/index","title":"Introduction","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-05-11":{"id":"2023/rest/updates/samuel/2023-05-11","title":"Community bonding","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-06-01":{"id":"2023/rest/updates/samuel/2023-06-01","title":"Week 1","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-06-08":{"id":"2023/rest/updates/samuel/2023-06-08","title":"Week 2","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-06-15":{"id":"2023/rest/updates/samuel/2023-06-15","title":"Week 3","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-06-22":{"id":"2023/rest/updates/samuel/2023-06-22","title":"Week 4","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-06-29":{"id":"2023/rest/updates/samuel/2023-06-29","title":"Week 5","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-07-06":{"id":"2023/rest/updates/samuel/2023-07-06","title":"Week 6","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-07-13":{"id":"2023/rest/updates/samuel/2023-07-13","title":"Week 7","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-07-20":{"id":"2023/rest/updates/samuel/2023-07-20","title":"Week 8","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-07-27":{"id":"2023/rest/updates/samuel/2023-07-27","title":"Week 9","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-08-03":{"id":"2023/rest/updates/samuel/2023-08-03","title":"Week 10","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-08-10":{"id":"2023/rest/updates/samuel/2023-08-10","title":"Week 11","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/samuel/2023-08-17":{"id":"2023/rest/updates/samuel/2023-08-17","title":"Week 12","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-05-11":{"id":"2023/rest/updates/soham/2023-05-11","title":"Community bonding","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-06-01":{"id":"2023/rest/updates/soham/2023-06-01","title":"Week 1","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-06-08":{"id":"2023/rest/updates/soham/2023-06-08","title":"Week 2 & 3","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-06-27":{"id":"2023/rest/updates/soham/2023-06-27","title":"Week 4","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-07-05":{"id":"2023/rest/updates/soham/2023-07-05","title":"Week 5","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-07-16":{"id":"2023/rest/updates/soham/2023-07-16","title":"Week 6","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-07-28":{"id":"2023/rest/updates/soham/2023-07-28","title":"Week 7","description":"\x3c!--","sidebar":"2023"},"2023/rest/updates/soham/2023-08-05":{"id":"2023/rest/updates/soham/2023-08-05","title":"Week 8","description":"\x3c!--","sidebar":"2023"},"2024/ci-scanner/index":{"id":"2024/ci-scanner/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-05-07":{"id":"2024/ci-scanner/updates/2024-05-07","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-06-06":{"id":"2024/ci-scanner/updates/2024-06-06","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-06-13":{"id":"2024/ci-scanner/updates/2024-06-13","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-06-20":{"id":"2024/ci-scanner/updates/2024-06-20","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-06-27":{"id":"2024/ci-scanner/updates/2024-06-27","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-07-04":{"id":"2024/ci-scanner/updates/2024-07-04","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-07-11":{"id":"2024/ci-scanner/updates/2024-07-11","title":"Week 6","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-07-18":{"id":"2024/ci-scanner/updates/2024-07-18","title":"Week 7","description":"\x3c!--","sidebar":"2024"},"2024/ci-scanner/updates/2024-07-25":{"id":"2024/ci-scanner/updates/2024-07-25","title":"Week 8","description":"\x3c!--","sidebar":"2024"},"2024/GSoC-projects":{"id":"2024/GSoC-projects","title":"Google Summer of Code Proposals 2024","description":"\x3c!--","sidebar":"2024"},"2024/index":{"id":"2024/index","title":"GSoC\'24 @ FOSSology","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/index":{"id":"2024/license-detection/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-05-30":{"id":"2024/license-detection/updates/2024-05-30","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-06-06":{"id":"2024/license-detection/updates/2024-06-06","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-06-13":{"id":"2024/license-detection/updates/2024-06-13","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-06-20":{"id":"2024/license-detection/updates/2024-06-20","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-06-27":{"id":"2024/license-detection/updates/2024-06-27","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-07-04":{"id":"2024/license-detection/updates/2024-07-04","title":"Week 6","description":"\x3c!--","sidebar":"2024"},"2024/license-detection/updates/2024-07-11":{"id":"2024/license-detection/updates/2024-07-11","title":"Week 7","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-05-30":{"id":"2024/minutes/2024-05-30","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-06-06":{"id":"2024/minutes/2024-06-06","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-06-13":{"id":"2024/minutes/2024-06-13","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-06-20":{"id":"2024/minutes/2024-06-20","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-06-27":{"id":"2024/minutes/2024-06-27","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-07-04":{"id":"2024/minutes/2024-07-04","title":"Week 6","description":"\x3c!--","sidebar":"2024"},"2024/minutes/2024-07-11":{"id":"2024/minutes/2024-07-11","title":"Week 7","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/index":{"id":"2024/pipeline/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-05-07":{"id":"2024/pipeline/updates/2024-05-07","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-05-30":{"id":"2024/pipeline/updates/2024-05-30","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-06-06":{"id":"2024/pipeline/updates/2024-06-06","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-06-13":{"id":"2024/pipeline/updates/2024-06-13","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-06-20":{"id":"2024/pipeline/updates/2024-06-20","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-06-27":{"id":"2024/pipeline/updates/2024-06-27","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/pipeline/updates/2024-07-04":{"id":"2024/pipeline/updates/2024-07-04","title":"Week 6","description":"\x3c!--","sidebar":"2024"},"2024/rest/API-guidelines":{"id":"2024/rest/API-guidelines","title":"REST API Guidelines","description":"\x3c!--","sidebar":"2024"},"2024/rest/index":{"id":"2024/rest/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-05-07":{"id":"2024/rest/updates/Divij/2024-05-07","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-05-30":{"id":"2024/rest/updates/Divij/2024-05-30","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-06-06":{"id":"2024/rest/updates/Divij/2024-06-06","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-06-11":{"id":"2024/rest/updates/Divij/2024-06-11","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-06-18":{"id":"2024/rest/updates/Divij/2024-06-18","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-06-25":{"id":"2024/rest/updates/Divij/2024-06-25","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-07-02":{"id":"2024/rest/updates/Divij/2024-07-02","title":"Week 6","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-07-09":{"id":"2024/rest/updates/Divij/2024-07-09","title":"Week 7","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/Divij/2024-07-16":{"id":"2024/rest/updates/Divij/2024-07-16","title":"Week 8","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/valens/2024-05-07":{"id":"2024/rest/updates/valens/2024-05-07","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/valens/2024-05-30":{"id":"2024/rest/updates/valens/2024-05-30","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/valens/2024-06-13":{"id":"2024/rest/updates/valens/2024-06-13","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/valens/2024-06-20":{"id":"2024/rest/updates/valens/2024-06-20","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/valens/2024-06-27":{"id":"2024/rest/updates/valens/2024-06-27","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/rest/updates/valens/2024-07-04":{"id":"2024/rest/updates/valens/2024-07-04","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/index":{"id":"2024/scheduler/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/2023-05-30":{"id":"2024/scheduler/updates/2023-05-30","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/2024-05-09":{"id":"2024/scheduler/updates/2024-05-09","title":"week-01","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/2024-05-23":{"id":"2024/scheduler/updates/2024-05-23","title":"week-03","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/2024-06-06":{"id":"2024/scheduler/updates/2024-06-06","title":"Weekly Updates (Community Bonding)","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/2024-06-07":{"id":"2024/scheduler/updates/2024-06-07","title":"OVERHAULING SCHEDULER DESIGN (Discussion)","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/Discussion/2024-05-31":{"id":"2024/scheduler/updates/Discussion/2024-05-31","title":"week-04","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/Discussion/2024-06-14":{"id":"2024/scheduler/updates/Discussion/2024-06-14","title":"week-06","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/Discussion/2024-06-21":{"id":"2024/scheduler/updates/Discussion/2024-06-21","title":"week-07","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/Discussion/2024-06-28":{"id":"2024/scheduler/updates/Discussion/2024-06-28","title":"week-08","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/Discussion/2024-07-05":{"id":"2024/scheduler/updates/Discussion/2024-07-05","title":"week-09","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/Discussion/2024-07-12":{"id":"2024/scheduler/updates/Discussion/2024-07-12","title":"week-10","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/General/2024-05-30":{"id":"2024/scheduler/updates/General/2024-05-30","title":"week-04","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/General/2024-06-13":{"id":"2024/scheduler/updates/General/2024-06-13","title":"week-06","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/General/2024-06-20":{"id":"2024/scheduler/updates/General/2024-06-20","title":"week-07","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/General/2024-06-27":{"id":"2024/scheduler/updates/General/2024-06-27","title":"Week-08","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/General/2024-07-04":{"id":"2024/scheduler/updates/General/2024-07-04","title":"week-09","description":"\x3c!--","sidebar":"2024"},"2024/scheduler/updates/General/2024-07-11":{"id":"2024/scheduler/updates/General/2024-07-11","title":"week-10","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/index":{"id":"2024/spdx-expression/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/updates/2024-05-07":{"id":"2024/spdx-expression/updates/2024-05-07","title":"Community Bonding Report","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/updates/2024-05-28":{"id":"2024/spdx-expression/updates/2024-05-28","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/updates/2024-06-04":{"id":"2024/spdx-expression/updates/2024-06-04","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/updates/2024-06-11":{"id":"2024/spdx-expression/updates/2024-06-11","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/updates/2024-06-18":{"id":"2024/spdx-expression/updates/2024-06-18","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/spdx-expression/updates/2024-06-25":{"id":"2024/spdx-expression/updates/2024-06-25","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/index":{"id":"2024/spdx30/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/updates/2024-05-07":{"id":"2024/spdx30/updates/2024-05-07","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/updates/2024-05-28":{"id":"2024/spdx30/updates/2024-05-28","title":"Week 1","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/updates/2024-06-04":{"id":"2024/spdx30/updates/2024-06-04","title":"Week 2","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/updates/2024-06-11":{"id":"2024/spdx30/updates/2024-06-11","title":"Week 3","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/updates/2024-06-18":{"id":"2024/spdx30/updates/2024-06-18","title":"Week 4","description":"\x3c!--","sidebar":"2024"},"2024/spdx30/updates/2024-06-25":{"id":"2024/spdx30/updates/2024-06-25","title":"Week 5","description":"\x3c!--","sidebar":"2024"},"2024/text-phrases/index":{"id":"2024/text-phrases/index","title":"Introduction","description":"\x3c!--","sidebar":"2024"},"2024/text-phrases/updates/2024-05-7":{"id":"2024/text-phrases/updates/2024-05-7","title":"Community bonding","description":"\x3c!--","sidebar":"2024"},"guidelines/index":{"id":"guidelines/index","title":"GSoC Contributor Guideline","description":"\x3c!--"},"index":{"id":"index","title":"Documents","description":"\x3c!--"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/0e1bb287.aab01efa.js b/assets/js/0e1bb287.aab01efa.js new file mode 100644 index 0000000000..713b416a04 --- /dev/null +++ b/assets/js/0e1bb287.aab01efa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5005],{60419:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>p});var n=s(85893),o=s(11151);const i={title:"Week 1",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},a=void 0,r={id:"2023/rest/updates/soham/2023-06-01",title:"Week 1",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-06-01.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-06-01",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-01",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-06-01.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 1",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Community bonding",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-05-11"},next:{title:"Week 2 & 3",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-08"}},c={},p=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Open Api Response /openapi",id:"1-open-api-response-openapi",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Issued Pull Request for the OpenAPI endpoint. ",(0,n.jsx)(t.code,{children:"/openapi"}),": ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2474",children:"#2474"}),"."]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,n.jsxs)(t.h4,{id:"1-open-api-response-openapi",children:["1. Open Api Response ",(0,n.jsx)(t.code,{children:"/openapi"})]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"get-openapi",src:s(55092).Z+"",width:"717",height:"917"})}),"\n",(0,n.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Start working on Copyrights API and deliver them by week 3"}),"\n",(0,n.jsx)(t.li,{children:"Gain experience on php unit testing."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},55092:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/openapi-ed782adbcaf216d66b915daf36d32671.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>a});var n=s(67294);const o={},i=n.createContext(o);function a(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e91f5a0.b399aa16.js b/assets/js/0e91f5a0.b399aa16.js new file mode 100644 index 0000000000..9ae34e0aed --- /dev/null +++ b/assets/js/0e91f5a0.b399aa16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9878],{68307:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=s(85893),t=s(11151);const r={title:"Community Bonding",author:"Sarita"},o=void 0,l={id:"2021/scancode/updates/2021-05-28",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-05-28.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-05-28",permalink:"/gsoc/docs/2021/scancode/updates/2021-05-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-05-28.md",tags:[],version:"current",frontMatter:{title:"Community Bonding",author:"Sarita"},sidebar:"2021",previous:{title:"Introduction",permalink:"/gsoc/docs/2021/scancode/"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-11"}},a={},c=[{value:"Coding Week 0.1 Meeting",id:"coding-week-01-meeting",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Current Progress",id:"current-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Coding Week 0.2 Meeting",id:"coding-week-02-meeting",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Week 0.1 Progress",id:"week-01-progress",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-01-meeting",children:"Coding Week 0.1 Meeting"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-05-28"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"current-progress",children:"Current Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Learnt PHP, SQL database."}),"\n",(0,i.jsx)(n.li,{children:"Lerning API on which Gaurav has suggested to leave it for now."}),"\n",(0,i.jsx)(n.li,{children:"Working on a project using PHP, SQL, Twig template, should be completed before the next meet."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav suggested to make GSoC timeline accessible to everyone and prepare a meeting report for others."}),"\n",(0,i.jsxs)(n.li,{children:["About the wrapper","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["I found the ",(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/tree/master/src/ninka",children:"Ninka wrapper"})," to be the suitable match for scancode plugin for FOSSology:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"useful functions for license integration are available so some changes or addition should work."}),"\n",(0,i.jsxs)(n.li,{children:["I have already used this wrapper to create a ",(0,i.jsx)(n.a,{href:"https://github.com/itssingh/scanology",children:"prototype"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Mentors approved to use the wrapper used for Ninka."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["About spdx key dispute\n-A NOMOS and ScanCode scan output ",(0,i.jsx)(n.a,{href:"https://docs.google.com/spreadsheets/d/1lgAVHofEXyVLa7ocrl8rGjuNulY7VgF-WGOQVqYkmoE/edit#gid=680720653",children:"comparison list"}),".","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["same licenses with slight variation in spdx key ex. LGPL-2.1-or-later (scancode) and LGPL-2.1+ (NOMOS) will be taken care as ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/ojo/agent/OjosDatabaseHandler.cc",children:"ojo agent"})," does."]}),"\n",(0,i.jsx)(n.li,{children:"Write a regex to make license keys case insensitive ex. inner-net-2.0 (scancode) and InnerNet-2.00 (NOMOS)."}),"\n",(0,i.jsx)(n.li,{children:"Add new license to the license database table."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["About the Project Proposal","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav said everything looks fine in the proposal except the UI part. Ninka wrapper UI could work for license integration. copyright and email will required changes."}),"\n",(0,i.jsx)(n.li,{children:"Once license integration will be completed, have to see for parallel processing supported by scancode to optimize the speed."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Ninka Wrapper finalised."}),"\n",(0,i.jsx)(n.li,{children:"Spdx key dispute solve like ojo."}),"\n",(0,i.jsx)(n.li,{children:"Create scancode Jinja template."}),"\n",(0,i.jsx)(n.li,{children:"Add new scan output to wrapper."}),"\n",(0,i.jsx)(n.li,{children:"Fork and create a branch for development and mention the same in blog/wiki."}),"\n",(0,i.jsx)(n.li,{children:"Add a timeline section in blog/wiki as provided in the project proposal."}),"\n",(0,i.jsx)(n.li,{children:"Prepare a prototype/plan for the next week."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"coding-week-02-meeting",children:"Coding Week 0.2 Meeting"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-06-04"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-01-progress",children:"Week 0.1 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["ScanCode ",(0,i.jsx)(n.a,{href:"https://gist.github.com/itssingh/93db537d2a9c9a6780a71cd84a41c6ab",children:"custom output"})," for license, copyright and holders is working."]}),"\n",(0,i.jsx)(n.li,{children:"Currently scancode doesn't support emails and urls custom output."}),"\n",(0,i.jsxs)(n.li,{children:["Opened a pr for ",(0,i.jsx)(n.a,{href:"https://github.com/nexB/scancode-toolkit/pull/2539",children:"this"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["About the DatabaseHandler","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Gaurav explained how ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/ojo/agent/OjosDatabaseHandler.cc",children:"ojos databasehandler"})," workes."]}),"\n",(0,i.jsx)(n.li,{children:"Convert shortname to lower-case."}),"\n",(0,i.jsx)(n.li,{children:"Remove last occurrence of + and -or-later."}),"\n",(0,i.jsx)(n.li,{children:"Remove last occurrence of -only."}),"\n",(0,i.jsxs)(n.li,{children:["Similar approach can work for license spdx key ",(0,i.jsx)(n.a,{href:"https://docs.google.com/spreadsheets/d/1lgAVHofEXyVLa7ocrl8rGjuNulY7VgF-WGOQVqYkmoE/edit#gid=680720653",children:"differnece"})," in scancode and fossology database."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["About the UI","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"ScanCode simple UI (License integration) will resemble more with ojo."}),"\n",(0,i.jsx)(n.li,{children:"When it will be parametrized( copyrights, emails, urls along with license), It will resemble closely with decider UI."}),"\n",(0,i.jsxs)(n.li,{children:["When scancode UI will have licenses, coyright, email, urls options then user can select more than one options at once.\nwrite a plugin containg a switch case will give execute based on the options selected. Decider uses ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/decider/ui/DeciderAgentPlugin.php#L75-L126",children:"this"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Scancode Jinja template is working for license and copyright."}),"\n",(0,i.jsx)(n.li,{children:"Start working on scancode integration for license scanning."}),"\n",(0,i.jsx)(n.li,{children:"There would be a meet at May 7, 2021."}),"\n",(0,i.jsxs)(n.li,{children:["Fork and create a branch for development and mention the same in blog/wiki ",(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/wiki",children:"done"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Add a timeline section in blog/wiki as provided in the project proposal ",(0,i.jsx)(n.a,{href:"https://itssingh.github.io/gsoc-blog/timeline.html",children:"done"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>o});var i=s(67294);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0ec7c0b4.8f95d40d.js b/assets/js/0ec7c0b4.8f95d40d.js new file mode 100644 index 0000000000..3216f58ddc --- /dev/null +++ b/assets/js/0ec7c0b4.8f95d40d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7073],{49244:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var n=s(85893),i=s(11151);const r={title:"Week 3",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"16th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 3"]},l=void 0,o={id:"2022/ui/updates/krishna/2022-07-04",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-07-04.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-07-04",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-07-04.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 3",permalink:"/gsoc/docs/tags/week-3"}],version:"current",frontMatter:{title:"Week 3",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"16th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 3"]},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-27"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-11"}},a={},d=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"Roadblocks / hurdles",id:"roadblocks--hurdles",level:2},{value:"P.S.~ Currently, I'm stuck here. I will be giving one more day to resolve this. If the error still persists, I'll be moving onto developing the pages in the UI Project which are not implemented.",id:"ps-currently-im-stuck-here-i-will-be-giving-one-more-day-to-resolve-this-if-the-error-still-persists-ill-be-moving-onto-developing-the-pages-in-the-ui-project-which-are-not-implemented",level:4},{value:"[UPDATED]",id:"updated",level:2},{value:"Conclusion and further plans",id:"conclusion-and-further-plans",level:2}];function c(e){const t={a:"a",code:"code",em:"em",h2:"h2",h4:"h4",img:"img",li:"li",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Sl. No."}),(0,n.jsx)(t.th,{children:"Initial Goals"}),(0,n.jsx)(t.th,{children:"Completed"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"1."}),(0,n.jsx)(t.td,{children:"Resolve the requested changes by mentors in the existing PRs"}),(0,n.jsx)(t.td,{children:"Done"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"2."}),(0,n.jsx)(t.td,{children:"Settting up the fossology main repo devlopment environment"}),(0,n.jsx)(t.td,{children:"Done"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"3."}),(0,n.jsx)(t.td,{children:"Getting started with the creation of REST API for adding a user"}),(0,n.jsx)(t.td,{children:"started"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"roadblocks--hurdles",children:"Roadblocks / hurdles"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Since, I am using a ",(0,n.jsx)(t.em,{children:(0,n.jsx)(t.strong,{children:"macOS"})})," based system, As quoted by the mentors --- fossology isn't compatible with macOS, It has to be a linux distribution (ubuntu/fedora)."]}),"\n",(0,n.jsxs)(t.li,{children:["With lots of research, I finally decided to install a virtual machine. Most of the virtual machines weren't compatible with the ",(0,n.jsx)(t.code,{children:"arm"})," architecture."]}),"\n",(0,n.jsxs)(t.li,{children:["Finally I got one VM service which was supported in my system. It is called ",(0,n.jsx)(t.a,{href:"https://mac.getutm.app/",children:(0,n.jsx)(t.strong,{children:"UTM"})}),"."]}),"\n",(0,n.jsxs)(t.li,{children:["After setting up UBUNTU 22.04 on my ",(0,n.jsx)(t.strong,{children:"VM"}),", and installing all the dependencies via ",(0,n.jsx)(t.code,{children:"sudo utils/fo-installdeps"}),", fossology still threw the following error,\n",(0,n.jsx)(t.img,{alt:"cli-error-install-fossology",src:s(86748).Z+"",width:"1458",height:"652"})]}),"\n"]}),"\n",(0,n.jsx)(t.h4,{id:"ps-currently-im-stuck-here-i-will-be-giving-one-more-day-to-resolve-this-if-the-error-still-persists-ill-be-moving-onto-developing-the-pages-in-the-ui-project-which-are-not-implemented",children:(0,n.jsx)(t.em,{children:"P.S.~ Currently, I'm stuck here. I will be giving one more day to resolve this. If the error still persists, I'll be moving onto developing the pages in the UI Project which are not implemented."})}),"\n",(0,n.jsx)(t.h2,{id:"updated",children:"[UPDATED]"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Finally, I am able to do some progress. I was able to set up fossology on my machine using a local VM instance and used ",(0,n.jsx)(t.code,{children:"ssh"})," for development via ",(0,n.jsx)(t.strong,{children:"vs-code"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:["Currently, I'm refering to the ",(0,n.jsx)(t.code,{children:"OPENAPI(Swagger)"})," docs and trying to test the existing apis to understand the flow."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and further plans"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Currently, I'm designing the ",(0,n.jsx)(t.code,{children:"addUser"})," API in the ",(0,n.jsx)(t.code,{children:"openapi.yaml"})," file."]}),"\n",(0,n.jsxs)(t.li,{children:["In the next week, I'll be implementing ",(0,n.jsx)(t.code,{children:"/users"})," POST route for creating a new user via REST API."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},86748:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/cliError-e9cc6fc35d9bde0c9b02c1f9051c743b.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>l});var n=s(67294);const i={},r=n.createContext(i);function l(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0fdd4856.5afc5d50.js b/assets/js/0fdd4856.5afc5d50.js new file mode 100644 index 0000000000..3d0a8ec90f --- /dev/null +++ b/assets/js/0fdd4856.5afc5d50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8094],{62248:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var n=t(85893),i=t(11151);const r={title:"Week 5",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},o="Week 5 meeting and activities",l={id:"2024/rest/updates/valens/2024-07-04",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/rest/updates/valens/2024-07-04.md",sourceDirName:"2024/rest/updates/valens",slug:"/2024/rest/updates/valens/2024-07-04",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/valens/2024-07-04.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 5",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-27"},next:{title:"REST API Guidelines",permalink:"/gsoc/docs/2024/rest/API-guidelines"}},d={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Activities:",id:"activities",level:2}];function c(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-5-meeting-and-activities",children:"Week 5 meeting and activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 04,2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Contributors including myself shared updates for their respective projects."}),"\n",(0,n.jsx)(s.li,{children:"My mentors suggested that I start thinking about integration tests as well, and I promised to work on them after finalizing unit test cases during the last six weeks of the next phase."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"test(api): finalized license API testing and added more unit test cases for upload, folder, group APIs"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Worked on changes suggested by mentors in previous pull requests."}),"\n",(0,n.jsx)(s.li,{children:"Started unite test cases addition for models"}),"\n",(0,n.jsx)(s.li,{children:"Added more test cases for models including permissions, License candidate, agent, file info etc."}),"\n",(0,n.jsxs)(s.li,{children:["Added more test cases covering upload, folder, and group controllers.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2774",children:"test(models): Added unit cases for Permissions, LicenseCandidate, Group, Decider, Agent and FileInfo models"})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>o});var n=t(67294);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1007bf61.d5b9329e.js b/assets/js/1007bf61.d5b9329e.js new file mode 100644 index 0000000000..1ac77dc524 --- /dev/null +++ b/assets/js/1007bf61.d5b9329e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5766],{72177:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/gsoc/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/1185f44c.ec94f265.js b/assets/js/1185f44c.ec94f265.js new file mode 100644 index 0000000000..2add0817e1 --- /dev/null +++ b/assets/js/1185f44c.ec94f265.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9732],{37020:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var i=t(85893),s=t(11151);const a={sidebar_position:1,title:"Introduction",slug:"/2021/minerva/"},o=void 0,r={id:"2021/minerva/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2021/minerva/index.md",sourceDirName:"2021/minerva",slug:"/2021/minerva/",permalink:"/gsoc/docs/2021/minerva/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2021/minerva/"},sidebar:"2021",previous:{title:"Docker Images",permalink:"/gsoc/docs/2021/microservice/dockerImages"},next:{title:"Week 0",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-07"}},l={},c=[{value:"Author",id:"author",level:3},{value:"Contact info",id:"contact-info",level:3},{value:"MINERVA",id:"minerva",level:2},{value:"What is that I am doing right now?",id:"what-is-that-i-am-doing-right-now",level:2}];function d(e){const n={a:"a",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h3,{id:"author",children:"Author"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:shreya.out@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.linkedin.com/in/shreyasingh05/",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"minerva",children:"MINERVA"}),"\n",(0,i.jsx)(n.p,{children:"To implement any Machine learning/Deep learning algorithm we need a better and bigger dataset of SPDX Licences. Due to the lack of dataset currently, all the 10 algorithms which have been tested on Atarashi are restricted to 59% accuracy. There exists no such dataset for open source licenses that could be added to the existing dataset."}),"\n",(0,i.jsx)(n.p,{children:"Why do we need to create OSS Dataset -"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"IRREGULARITY IN THE SIZE OF LICENSE TEXTS - The license texts are of different sizes with huge differences in terms of keywords count. Longer license texts contain most of the unique keywords when compared against the uniqueness of keywords in the smaller license texts."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"DIFFERENT THAN TRADITIONAL TEXT CORPORA - In licenses most of the tokens are similar and the keywords used can be found in almost all of them with a slight variation since they all are open-source licenses stating open source softwares and underlying permissions. These similarities in licenses make them tough to be differentiated by any traditional information retrieval algorithm."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"So, the idea is to generate SPDX OSS license dataset using FOSSOLOGY NOMOS AGENT STRINGS.in REGEX and latest SPDX released Licenses. We can use an existing file as a baseline model for further manipulating and generating texts from those files."}),"\n",(0,i.jsx)(n.h2,{id:"what-is-that-i-am-doing-right-now",children:"What is that I am doing right now?"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:t(38511).Z+"",width:"667",height:"550"})}),"\n",(0,i.jsx)(n.p,{children:'Till now, I have been able to fully automate the scripts to generate licenses using NLP algorithms and got them validated using Nomos. I have used "intxeger" for regex to text conversion and markov and n-gram algorithms for regex expansion and for initial splitting used Sliding window approach. Nomos can be used as a baseline to validate the generated texts.'})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},38511:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/project_overview-296783513365c5a6dd3997b5c7204a67.png"},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var i=t(67294);const s={},a=i.createContext(s);function o(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1228fbea.5a6c5b45.js b/assets/js/1228fbea.5a6c5b45.js new file mode 100644 index 0000000000..f9d1e1f9b4 --- /dev/null +++ b/assets/js/1228fbea.5a6c5b45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9853],{66989:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var s=t(85893),r=t(11151);const o={title:"Week5",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},a=void 0,i={id:"2022/project/updates/2022-07-07",title:"Week5",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-07-07.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-07-07",permalink:"/gsoc/docs/2022/project/updates/2022-07-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-07-07.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week5",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week4",permalink:"/gsoc/docs/2022/project/updates/2022-06-30"},next:{title:"Week6",permalink:"/gsoc/docs/2022/project/updates/2022-07-14"}},l={},c=[{value:"Meeting 6",id:"meeting-6",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July 7th, 2022)"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Katharina Ettinger"}),"\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap"}),"\n",(0,s.jsx)(n.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bhardwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shruti Agarwal"}),"\n",(0,s.jsx)(n.li,{children:"Avinal Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,s.jsx)(n.li,{children:"Soham Banerjee"}),"\n",(0,s.jsx)(n.li,{children:"Samuel Dushimimana"}),"\n",(0,s.jsx)(n.li,{children:"Thanvi Lahari Pendyala"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(n.p,{children:"I have created the BrowseProject page. However, I don't know how to add a menu item with 2 sub items but no content. So there are 3 pages now. Browse(the same code with BrowseFolder), BrowseFolder and BrowseProject. Mentors tell me there could be some problems and I could turn to next part for now."}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add a BrowseProject page"}),"\n",(0,s.jsx)(n.li,{children:"In next week, I will study the code about how to manage a folder, and try to use them for project."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>a});var s=t(67294);const r={},o=s.createContext(r);function a(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1374829e.113b2bc9.js b/assets/js/1374829e.113b2bc9.js new file mode 100644 index 0000000000..18d8433ff8 --- /dev/null +++ b/assets/js/1374829e.113b2bc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[559],{82255:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var t=n(85893),i=n(11151);const r={sidebar_position:3,title:"REST API Guidelines",author:"Divij Sharma",tags:["gsoc24","rest"]},l=void 0,a={id:"2024/rest/API-guidelines",title:"REST API Guidelines",description:"\x3c!--",source:"@site/docs/2024/rest/API-guidelines.md",sourceDirName:"2024/rest",slug:"/2024/rest/API-guidelines",permalink:"/gsoc/docs/2024/rest/API-guidelines",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/API-guidelines.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"REST API Guidelines",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-07-04"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/ci-scanner/"}},c={},d=[{value:"Details",id:"details",level:2},{value:"Motive",id:"motive",level:2},{value:"Guidelines",id:"guidelines",level:2},{value:"References",id:"references",level:2}];function o(e){const s={a:"a",code:"code",em:"em",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"details",children:"Details"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Created by: ",(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})]}),"\n",(0,t.jsxs)(s.li,{children:["Reviewed by: ",(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),", ",(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"motive",children:"Motive"}),"\n",(0,t.jsx)(s.p,{children:"Since this project primarily focuses on REST API development and improvement, it is crucial to establish a comprehensive guideline from the beginning. This guideline will serve as a set of rules to follow and provide a clear objective to achieve. After researching various reputable open-source projects and reviewing several design guides, I have prepared a detailed guideline document. Please refer to the table below for more information."}),"\n",(0,t.jsx)(s.h2,{id:"guidelines",children:"Guidelines"}),"\n",(0,t.jsxs)("table",{children:[(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{children:(0,t.jsx)(s.strong,{children:"#"})}),(0,t.jsx)("th",{children:(0,t.jsx)(s.strong,{children:"Guideline"})}),(0,t.jsx)("th",{children:(0,t.jsx)(s.strong,{children:"Description"})}),(0,t.jsx)("th",{children:(0,t.jsx)(s.strong,{children:"Example"})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"1"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Uniform Interface"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["The uniform interface principle in RESTful API design\nadvocates for a consistent and ",(0,t.jsx)(s.strong,{children:"standardised"})," approach to\ninteractions between clients and servers. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Predictability"}),(0,t.jsx)("li",{children:"Standardisation"}),(0,t.jsx)("li",{children:"Scalability"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["This is widely used in FOSSology, for instance, a user can\nsend a POST request to ",(0,t.jsx)(s.code,{children:"/upload"})," endpoint to post a new\nupload and can get that particular upload by making a GET\nrequest at ",(0,t.jsx)(s.code,{children:"/upload/{id}"}),".\n",(0,t.jsx)(s.img,{alt:"get-action",src:n(82544).Z+"",width:"749",height:"93"}),"\n",(0,t.jsx)(s.img,{alt:"post-action",src:n(39990).Z+"",width:"749",height:"93"})]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"2"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Platform Independent"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Any client should be able to call the API, regardless of how\nthe API is implemented internally. This requires\n",(0,t.jsx)(s.strong,{children:"consistent data sharing"})," rules and formats. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Flexibility"}),(0,t.jsx)("li",{children:"Integration"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.p,{children:"Consider a RESTful API for a weather service. Clients, such\nas web applications, mobile apps, and IoT devices, can\nretrieve weather data using standardised API endpoints,\nregardless of the programming languages or frameworks used\nto develop these clients."})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"3"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Backward Compatible"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"The web API should be able to evolve and add functionality\nindependently from client applications. As the API evolves,\nexisting client applications should continue to function\nwithout modification. Advantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Gradual updates"}),(0,t.jsx)("li",{children:"Stability"}),(0,t.jsx)("li",{children:"Strategic updates"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.p,{children:"Suppose a social media platform introduces a new endpoint\nfor retrieving user profile information in a more efficient\nmanner. To ensure backward compatibility, the platform\nretains support for the existing endpoint structure,\nallowing older client applications to continue accessing\nuser profiles without any disruptions. FOSSology implements\nthis by supporting V1 REST API endpoints in deprecated mode."})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"4"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Stateless Behaviour"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["REST APIs use a stateless request model. The only place\nwhere information is stored is in the resources themselves,\nand each request should be an ",(0,t.jsx)(s.strong,{children:"atomic operation"}),". For this\nto hold, each request must contain all the information\nnecessary to understand and process the request. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Caching"}),(0,t.jsx)("li",{children:"Consistency"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.p,{children:"Consider a shopping website with a RESTful API for managing\nuser sessions and shopping carts. Each client request, such\nas adding items to the cart or proceeding to checkout,\nincludes all the necessary information (e.g., item IDs,\nquantities) for the server to process the request. The\nserver does not store any client-specific data between\nrequests, ensuring that the API remains stateless and\nscalable, regardless of the number of concurrent users."})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"5"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Resource-Oriented Design"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["REST APIs are structured around ",(0,t.jsx)(s.strong,{children:"resources"}),", which\nrepresent any object, data, or service accessible by\nclients. ",(0,t.jsx)(s.strong,{children:"Also, resources of the same type should be clubbed\nunder the same endpoint"}),". Each resource is uniquely\nidentified by a ",(0,t.jsx)(s.strong,{children:"URI (Uniform Resource Identifier)"}),",\nproviding a consistent and predictable means of access where\nCRUD operations can be defined. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Easy maintenance"}),(0,t.jsx)("li",{children:"Uniformity"})]}),(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.em,{children:['The value for these path parameters MUST NOT contain any\nunescaped "generic syntax" characters described by\n',(0,t.jsx)(s.a,{href:"https://tools.ietf.org/html/rfc3986#section-3",children:"RFC3986"}),"."]})})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["Suppose we have a RESTful API for managing user accounts in\nan e-commerce platform. Each user account is treated as a\nresource, with a unique URI (",(0,t.jsx)(s.code,{children:"/users/{id}"}),") representing the\nresource. Clients can perform CRUD operations on user\naccounts using standard HTTP methods enabling seamless\ninteraction with the API endpoints. Also implemented in\nFOSSology\n",(0,t.jsx)(s.img,{alt:"user-id",src:n(11214).Z+"",width:"708",height:"341"})]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"6"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Entity-Centric URIs"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Base resource URIs on ",(0,t.jsx)(s.strong,{children:"nouns representing business entities\n(plural nouns for collections)"})," rather than verbs\nindicating operations. Ensure each business entity has a\ndistinct and ",(0,t.jsx)(s.strong,{children:"simple URI"}),", reflecting its unique identity\nand purpose within the system. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Semantic Consistency"}),(0,t.jsx)("li",{children:"Clarity and intuitiveness"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["Suppose we have a RESTful API for managing products on an\ne-commerce platform. Each product is considered a business\nentity, and the URIs for accessing these products follow a\nnoun-based pattern, such as ",(0,t.jsx)(s.code,{children:"/products/{product_id}"}),". This\napproach ensures that each product has a unique and distinct\nURI, facilitating efficient resource identification and\ninteraction within the API."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"7"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Hierarchical Organisation"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Organise resources in a hierarchical manner to establish a\nstructured and intuitive API architecture. Use\n",(0,t.jsx)(s.strong,{children:"parent-child relationships"})," to represent nested\nresources, ensuring logical grouping and defined scope\nwithin the API. ",(0,t.jsx)(s.strong,{children:"With each /, the scope of the resource\nshould become more specific"}),". Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Logical Structuring"}),(0,t.jsx)("li",{children:"Simplified Navigation"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["In a content management system (CMS) API, blog posts may be\norganised under a parent resource representing a user's\nblog. The hierarchical URI structure could be\n",(0,t.jsx)(s.code,{children:"/user/{uid}/blog/{bid}"}),", where each segment represents a\nnested relationship between resources. This organisation\nprovides a clear and intuitive path for accessing blog posts\nwithin the context of a specific user and blog."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"8"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Decouple Web API from Data Sources"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Think of the web API as an ",(0,t.jsx)(s.strong,{children:"abstraction of the database"}),".\nIf necessary, introduce a mapping layer (DAO) between the\ndatabase and the web API. That way, client applications are\nisolated from changes to the underlying database scheme.\nAdvantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Abstraction"}),(0,t.jsx)("li",{children:"Security"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.p,{children:"In a web API for a retail platform, the API endpoints should\ninteract with an abstraction layer or service interface that\nencapsulates data access logic. This abstraction shields the\nAPI from direct dependencies on database implementations,\nenabling the use of various storage solutions (e.g., SQL\ndatabases, NoSQL databases, cloud storage) without affecting\nthe API's external behaviour."})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"9"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Media types"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Standardise the use of media types, also known as MIME\ntypes, to specify data formats exchanged between clients and\nservers in the HTTP protocol. For textual data, the widely\nsupported ",(0,t.jsx)(s.strong,{children:"JSON"})," format (media type = application/json) is\ncommonly used in web APIs. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Interoperability"}),(0,t.jsx)("li",{children:"Clear communication"})]}),(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.em,{children:["The media type definitions SHOULD be in compliance with\n",(0,t.jsx)(s.a,{href:"https://datatracker.ietf.org/doc/html/rfc6838",children:"RFC6838"}),"."]})})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["FOSSology widely use ",(0,t.jsx)(s.strong,{children:'"application/json\u201d'})," media type in\nresponse\n",(0,t.jsx)(s.img,{alt:"media-type-1",src:n(90657).Z+"",width:"841",height:"367"}),"\n",(0,t.jsx)(s.img,{alt:"media-type-2",src:n(98494).Z+"",width:"841",height:"91"})]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"10"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Conform to HTTP semantics"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Ensure that the web API adheres to the semantic meaning of\nHTTP methods defined by the HTTP protocol. Utilise the\ncommon HTTP methods\u2014",(0,t.jsx)(s.strong,{children:"GET, POST, PUT, PATCH, and DELETE"}),"\u2014to\nperform operations that correspond to the creation,\nretrieval, modification, and deletion of resources, aligning\nwith the intended semantics of each method. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Standardised communication"}),(0,t.jsx)("li",{children:"Clarity & Performance"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"semantics",src:n(91781).Z+"",width:"843",height:"699"}),"\nStandard HTTP methods deployed by FOSSology"]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"11"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Status Codes"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Adhere to standardised HTTP status codes to convey the\noutcome of API requests accurately. HTTP status codes\nprovide a clear indication of the success, failure, or\nspecific conditions of each request, enabling clients to\ninterpret and handle responses appropriately. Some common\nstatus codes are as follows:"}),(0,t.jsxs)("ul",{children:[(0,t.jsxs)("li",{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"GET Method"}),":"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"200: OK"}),(0,t.jsx)("li",{children:"204: No Content"}),(0,t.jsx)("li",{children:"404: Not Found"})]})]}),(0,t.jsxs)("li",{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"POST Method"}),":"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"200: OK"}),(0,t.jsx)("li",{children:"201: Created"}),(0,t.jsx)("li",{children:"204: No Content"}),(0,t.jsx)("li",{children:"400: Bad Request"})]})]}),(0,t.jsxs)("li",{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"PUT Method"}),":"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"200: OK"}),(0,t.jsx)("li",{children:"201: Created"}),(0,t.jsx)("li",{children:"204: No Content"}),(0,t.jsx)("li",{children:"409: Conflict"})]})]}),(0,t.jsxs)("li",{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"PATCH Method"}),":"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"400: Bad Request"}),(0,t.jsx)("li",{children:"409: Conflict"}),(0,t.jsx)("li",{children:"415: Unsupported Media Type"})]})]}),(0,t.jsxs)("li",{children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"DELETE Method"}),":"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"204: No Content"}),(0,t.jsx)("li",{children:"404: Not Found"})]})]})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"codes",src:n(23300).Z+"",width:"596",height:"672"}),"\nWhen a client submits a GET request to retrieve a resource\nfrom a RESTful API, the server responds with a 200 OK status\ncode if the request is successful, along with the requested\nresource in the response body. In the event that a resource is not\nfound, the server returns a 404 Not Found status code,\nindicating to the client that the requested resource does\nnot exist. By consistently using appropriate status codes in\nresponses, the API ensures clear and meaningful\ncommunication with clients, enhancing usability and\nreliability."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"12"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Empty sets in message bodies"})}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["Any time the body of a successful response is empty, the\nstatus code should be 204 (No Content). For empty sets, such\nas a response to a filtered request with no items, the\nstatus code should ",(0,t.jsx)(s.strong,{children:"still be 204 (No Content)"}),", not 200\n(OK)."]})}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"no-content",src:n(3565).Z+"",width:"936",height:"400"}),"\nDeleting a user returns 204 (No Content)"]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"13"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Consistent Casing Conventions"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Adopt consistent casing conventions, such as ",(0,t.jsx)(s.strong,{children:"camelCase"}),"\nor ",(0,t.jsx)(s.strong,{children:"snake_case"}),", for naming identifiers within the API,\nincluding resource names, query parameters, and JSON keys\nfor both ",(0,t.jsx)(s.strong,{children:"request"})," and ",(0,t.jsx)(s.strong,{children:"response"})," objects. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Readability and clarity"}),(0,t.jsx)("li",{children:"Alignment with industry standards"})]}),(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:(0,t.jsx)(s.strong,{children:"All field names in the specification are case-sensitive"})})})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"naming",src:n(33198).Z+"",width:"1465",height:"1186"}),"\nFOSSology response object using camelCase keys"]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"14"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Pagination"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Exposing a collection of resources through a single URI can\nlead to applications fetching large amounts of data when\nonly a subset of the information is required. Instead, the\nAPI can allow passing a filter in the query string of the\nURI, such as ",(0,t.jsx)(s.strong,{children:"page"})," and ",(0,t.jsx)(s.strong,{children:"size"}),", from which only the\nspecific subset required is sent as a response. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Saves bandwidth"}),(0,t.jsx)("li",{children:"Improves user experience"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["a GET request to ",(0,t.jsx)(s.code,{children:"/blog?page=2&size=10"})," would fetch the\nsecond page of blogs, with each page containing up to 10\nblogs. Pagination headers such as Total Pages, Total Items,\nand Page Number can also be included in the response to\nprovide clients with metadata about the paginated results."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"15"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Filtering"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Incorporate filtering functionality into the API to allow\nclients to ",(0,t.jsx)(s.strong,{children:"retrieve specific subsets"})," of resources based\non defined criteria. Filtering enables clients to tailor\ntheir requests to match their requirements, facilitating\nefficient data retrieval and enhancing the flexibility of\nthe API. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Customised data retrieval"}),(0,t.jsx)("li",{children:"Enhanced usability"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["In an e-commerce API, clients may need to retrieve products\nbased on various attributes such as category, price range,\nor availability status. By implementing filtering\nfunctionality, clients can send requests like GET\n",(0,t.jsx)(s.code,{children:"/products?cat=ele&range=100-500"})," to retrieve electronics\nproducts within the specified price range. The API processes\nthe filter parameters and returns only the relevant\nproducts, providing clients with the precise data they need\nfor their applications."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"16"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Input fields"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Place input fields in one of the following based on the\ndescription:"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Headers"}),"- Use headers for sensitive information\nor authentication data that should not be visible in\nURLs or easily accessible to users. They should be\nlight- weight and contain protocol related\ninformation rather than business logic."]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Query Parameters"}),"- Use for filtering, sorting, or\nspecifying additional options related to the\nrequest, such as pagination parameters or search\nqueries. They should be expressive, intuitive, and\nself-descriptive to improve usability and\nreadability. Do not include sensitive information\nhere."]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Body"}),"- For large or complex data structures, such\nas JSON objects or file uploads, use the request\nbody to encapsulate the data. Generally, body is\nused when the arguments don't have a flat key",":value","\nstructure."]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Path"}),"- Use path parameters to specify variable\nparts of the URL path. Include input fields that\nrepresent identifiers or resource paths directly in\nthe URL, such as IDs, slugs, or resource names."]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Cookie"}),"- Use cookies for storing stateful\ninformation or session tokens on the client side."]})})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:["Headers to store sensitive info like cookies and\nAuthorization.\n",(0,t.jsx)(s.img,{alt:"headers",src:n(30410).Z+"",width:"950",height:"522"})]})}),(0,t.jsxs)("li",{children:[(0,t.jsx)(s.p,{children:"Query parameters are used like"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:["Filtering: ",(0,t.jsx)(s.code,{children:"/products?type=home"})]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:["Pagination: ",(0,t.jsx)(s.code,{children:"/products?page=1&limit=20"})]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:["Sorting: ",(0,t.jsx)(s.code,{children:"/products?sort=price&order=asc"})]})}),(0,t.jsxs)("li",{children:["Search: ",(0,t.jsx)(s.code,{children:"/products?query=laptop"})]})]}),(0,t.jsx)(s.p,{children:"Specific to FOSSology, query params can be used to\nstore name, id, shortName etc."})]}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Body is used to store heavy payloads like JSON\nobjects, or licenseText in terms of FOSSology."})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:["Path is used together with Path Templating, where\nthe parameter value is actually part of the\noperation's URL. This does not include the host or\nbase path of the API. For example, in\n",(0,t.jsx)(s.code,{children:"/items/{itemId}"}),", the path parameter is itemId."]})}),(0,t.jsx)("li",{children:(0,t.jsxs)(s.p,{children:["When a user logs in to the website, the server sets\ncookies to store the user's preferences. For\nexample, the server sets a cookie with values like\n",(0,t.jsx)(s.code,{children:"lang=en&theme=dark"}),". Each time\nthe user visits a page on the website, the browser\nautomatically sends the cookie along with the\nrequest and server response accordingly."]})})]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"17"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Versioning"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Versioning enables a web API to indicate the features and\nresources that it exposes, and a client application can\nsubmit requests that are directed to a specific version of a\nfeature or resource. Service names and API-class names\nshould be chosen carefully so that they do not change\nwhen products are versioned or rebranded. Advantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Compatibility"}),(0,t.jsx)("li",{children:"Maintenance"}),(0,t.jsx)("li",{children:"Documentation"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["Versioning can have many examples like:\n",(0,t.jsx)(s.img,{alt:"Version",src:n(96883).Z+"",width:"753",height:"615"})]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"18"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Use of Models"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Utilise models to encapsulate and represent data structures\nexchanged between clients and the API. Models serve as\nstructured representations of resources and response data.\nAdvantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Consistency and standardisation"}),(0,t.jsx)("li",{children:"Encapsulation"}),(0,t.jsx)("li",{children:"Semantic enforcement"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"models",src:n(10716).Z+"",width:"675",height:"372"}),"\nSemantic enforcement in one of the models at FOSSology."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"19"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Concrete Architecture"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Adopt a concrete architecture and directory separation\nstrategy for organising the API codebase. Implementing a\nclear architectural pattern, such as MVC\n(Model-View-Controller) or similar, along with structured\ndirectory separation, enhances code maintainability,\nscalability, and overall project structure. Advantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Code maintainability"}),(0,t.jsx)("li",{children:"Team Collaboration"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"Architecture",src:n(87733).Z+"",width:"346",height:"362"}),"\n.\nFolder structure of FOSSology REST API."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"20"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"JSON Representation"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["With regard to JSON representation ",(0,t.jsx)(s.strong,{children:"property names, and URL\nquery parameters, services"})," should:"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Choose meaningful and succinct names,"}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Do not reuse any names reserved for other purposes by\nthese guidelines,"})}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Avoid internal naming conflicts by reusing names for\ndissimilar purposes,"})}),(0,t.jsx)("li",{children:"Use plural nouns for arrays,"}),(0,t.jsx)("li",{children:"Use singular nouns for non-arrays,"}),(0,t.jsx)("li",{children:"Begin with lowercase letters,"}),(0,t.jsx)("li",{children:"Prefer camelCase over snake_cases,"}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Follow SCIM Schema naming when the field represents\ndata from the directory,"})}),(0,t.jsx)("li",{children:"Be case-sensitive."})]})]}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"JSONRepresentation",src:n(43114).Z+"",width:"734",height:"457"}),"\nIn this example:"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Property names are meaningful and succinct, such as\nuserId, userName, emailAddress, etc."})}),(0,t.jsx)("li",{children:"Plural nouns are used for arrays (roles)."}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Singular nouns are used for non-arrays (userId,\nuserName, etc.)."})}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"Property names begin with lowercase letters and use\ncamelCase."})}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"SCIM Schema naming convention is followed where\nappropriate (userId, userName, emailAddress)."})}),(0,t.jsx)("li",{children:(0,t.jsx)(s.p,{children:"The representation is case-sensitive, adhering to\nthe guideline."})})]})]})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"21"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Date and Time fields"})}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["All fields with a date/time should follow ",(0,t.jsx)(s.strong,{children:"ISO 8601"})," and be\nin UTC timezone."]})}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.a,{href:"https://www.w3.org/TR/NOTE-datetime",children:"W3C"})," note provides\nclarification and examples."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"22"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Cross-Origin Resource Sharing (CORS) Policy"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"The API service must adhere to CORS specifications,\nsupporting both simple and preflight request flows. The\nAccess-Control-Allow-Origin header should be returned in\nresponses to enable cross-origin resource sharing.\nAdvantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Security compliance"}),(0,t.jsx)("li",{children:"Enforcement of policies"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"cors",src:n(59962).Z+"",width:"1147",height:"378"})," CORS\nheaders returned by FOSSology in a response."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"23"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Error Handling"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Standardise the format and handling of error objects\nreturned by the API to provide consistent and informative\nerror responses to clients. Error objects should include\nrelevant information such as error codes, messages, and\nadditional details to assist developers in troubleshooting\nand debugging issues. Advantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Consistency in error responses"}),(0,t.jsx)("li",{children:"Better error communication"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"error",src:n(1983).Z+"",width:"934",height:"731"}),"\nExample of a good error response. Usually, errors are handled\nusing error middleware."]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"24"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Data Validation"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Implement robust data validation mechanisms to ensure the\nintegrity, consistency, and security of incoming data, either\nby using models or regular expressions. Advantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Prevents Data Corruption"}),(0,t.jsx)("li",{children:"Enhances Security"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"validation",src:n(30021).Z+"",width:"433",height:"217"}),"\nData validation using regular expressions as FOSSology"]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"25"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Security"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsx)(s.p,{children:"Prioritise security measures throughout the design,\ndevelopment, deployment, and maintenance phases of the REST\nAPI to mitigate potential threats and vulnerabilities.\nSecurity considerations include implementing authentication,\nauthorization, encryption, input validation, rate limiting,\nand protection against common attacks such as injection,\nXSS, CSRF, and unauthorised access. Advantages-"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Data Confidentiality"}),(0,t.jsx)("li",{children:"Prevention of Attacks"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"security",src:n(67695).Z+"",width:"1496",height:"644"}),"\nAuthentication middleware at FOSSology"]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"26"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Testing"})}),(0,t.jsxs)("td",{style:{verticalAlign:"top"},children:[(0,t.jsxs)(s.p,{children:["Adopt a comprehensive testing strategy to ensure the\nreliability, functionality, and performance of the REST API.\nImplement ",(0,t.jsx)(s.strong,{children:"unit tests, integration tests, and end-to-end\ntests"})," to validate individual components, interactions\nbetween components, and the behaviour of the API as a whole.\nTesting should cover various scenarios, including positive\nand negative cases, edge cases, error handling, and\nconcurrency. Advantages-"]}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"Reliability"}),(0,t.jsx)("li",{children:"Enhanced Quality Assurance"})]})]}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"testing",src:n(3774).Z+"",width:"518",height:"662"}),"\nTest suite for FOSSology REST API"]})})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{style:{verticalAlign:"top"},children:"27"}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.strong,{children:"Documentation"})}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsx)(s.p,{children:"Use clear and consistent language, along with structured\nformats such as OpenAPI Specification (formerly known as\nSwagger), to organise and present the documentation\neffectively. Keep the documentation up-to-date with the\nlatest changes and enhancements. Also, API documentation\nshould happen before working on the code, as it provides a\nsolid aim to achieve."})}),(0,t.jsx)("td",{style:{verticalAlign:"top"},children:(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.img,{alt:"documentation",src:n(35805).Z+"",width:"3060",height:"1401"}),"\nFOSSology REST API documentation being viewed on Swagger\neditor using openapi.yml file"]})})]})]}),"\n",(0,t.jsx)(s.h2,{id:"references",children:"References"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Open Source Projects","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology",children:"FOSSology"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/RocketChat/Rocket.Chat",children:"Rocket.Chat"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/RocketChat/Rocket.Chat-Open-API",children:"Rocket.Chat-Open-API"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/meshery/meshery",children:"Meshery"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/meshery/schemas",children:"Meshery Schemas"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://community.siemens.com/",children:"API Discussions at Siemens"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://developer.siemens.com/apis.html",children:"Siemens API Catalogue"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design",children:"API Design by Microsoft"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://cloud.google.com/apis/design",children:"Google Cloud API Design"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://restful-api-design.readthedocs.io/en/latest/",children:"RESTful API design by Red Hat"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/CiscoDevNet/api-design-guide",children:"Cisco API Design Guide"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://jsonapi.org/",children:"JSON API"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},82544:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/1.1_getRequest-4b6cfc72b5dc2d9dfe31f943ddad2687.png"},39990:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/1.2_postRequest-5f9c2bea3c2c3c5b14897b8690ba3119.png"},91781:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/10_semantics-8c46f594d40fbd40e15c0a3cdd1862b4.png"},23300:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/11_StatusCodes-ad55eed18bae185be279b63226993689.png"},3565:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/12_NoContent-a1c6e5a03247c2b18ebc301cc3651f7a.png"},33198:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/13_ConsistentNaming-536d846e04184f0ff1fb6086fcd6d663.png"},30410:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/16_inputFields-c26340ef7d0ba75aa8d00a994bcd23f0.png"},96883:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/17_Versioning-7ffe18d01b33aa90ea5416ca1e847561.png"},10716:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/18_models-ec9b4d5c091a1b413cb383d447901f33.png"},87733:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/19_ConcreteArchitecture-546aaa7e558ee5f58cda0808760a83b5.png"},43114:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/20_JSONRepresentation-d043410b35c869e37f54f0ec712dbd23.png"},59962:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/22_CORS-8f2954121878b3bc6a3511a9e98af180.png"},1983:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/23_ErrorHandling-db9132e4b611c326a4c44450e6de991e.png"},30021:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/24_DataValidation-cfdd8ff366378b8293d566934463565f.png"},67695:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/25_Security-56c15febe7babdc7e6acf6e1152426d7.png"},3774:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/26_Testing-93799cb6b593c143e93ed7c2e441d1b1.png"},35805:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/27_Documentation-65ba28a57b3e087991bbc314d97a1f32.png"},11214:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/5_ResourceOrientation-70d088e1f44f54e2c3541da9770ef88d.png"},90657:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/9.1_mediaTypes-e77d8f96736ce9f2786b3d408e8f6eaf.png"},98494:(e,s,n)=>{n.d(s,{Z:()=>t});const t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0kAAABbCAYAAACmj85NAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAudEVYdENyZWF0aW9uIFRpbWUARnJpZGF5IDE1IE1hcmNoIDIwMjQgMDM6MjM6NTUgUE0cFQmQAAAgAElEQVR4nO3deVxUVf8H8M8gDCAQBJjAgDDjCrgRbiyuuJOhj6Y+uT+mFmblkj5qpmnikuLW5qNlmaaWgitqqbkxZmquLFoyCrKoKOpI4ijw+4PXvb8ZZwYGGBbl8369er1y7j13zgxw7v2e5Xskcrm8EDWco6MjAOD+/ftVXBMiIjI3tvFERDWbh4dHqctYVEA9iIiIiIiInlsMkoiIiIiIiLQwSCIiIiIiItJiKczVpv+ft05ERC8etvFERC82c6495UgSERERERGRFktm+2HmIyKiFxnbeCIiKi2OJBEREREREWlhkERERERERKSFQRIREREREZEWBklERERERERaGCQRERERERFpYZBERERERESkhUESERERERGRFgZJREREREREWhgkERERERERaWGQREREREREpIVBEhERERERkRYGSURERERERFoYJBEREREREWlhkERERERERKSFQRIREREREZEWBklERERERERaGCQRERERERFpYZBERERERESkhUESERERERGRFgZJREREREREWiyrugJERFT9ODk5wdfXF35+frCxsYGHhwcAICMjA3l5eUhMTERSUhLu3btXxTUlIiIyP4lcLi+s6kpUNUdHRwDA/fv3q7gmRERVSy6Xo0uXLlAoFCadn5KSgkOHDkGlUlVwzcqObTxVNy+99BKkUikePHgAjUZT1dUheuEJHX2lwZGkKlKvXj00a9YMLi4u+Oeff5CZmYlTp06xsawmmjRpAolEUupyWVlZyMnJqYAaEVW88PBwBAcHi//OzMxEYmKiXgAkl8vh5+cHd3d3KBQKKBQKxMfHIy4urrKrTOXk5eUFe3t73L59G9nZ2eLroaGheOeddxAfH48vv/yyCmtoOqlUijlz5sDNzQ3z5s2r1oH7nj17IJPJEBYWBpVKBRsbG3zyySdwdnbG3LlzkZaWVtVVJKrxGCRVstDQUEyePBktWrTQO5abm4vt27dj6dKlnMJSxbZv3w6pVFrqcnPmzMH69esroEZEFcfGxgZDhgwRR49UKhW2bt1qtB1SqVQ4dOgQnJycMGDAAMjlcoSEhMDd3R0bN25EXl5eZVafymHevHno0KEDoqOj8fnnn+u87u3tjaCgIOzdu7daBxyC3r17Y/DgwQAAtVqN999/v4prZJhcLodMJkN6err4vUZEROCNN94AAOTk5GDq1KlVWUUiAhM3VKr//ve/WL9+vRgg3bx5E6dOncL58+eRm5sLOzs7DBkyBAcOHIC/v38V19awpUuX4sCBAxgwYEBVV8Wg4cOH48CBA5g3b165rpOenm7wv8LCotmpOTk5Bo+r1WpzfAyiSjV06FAxQNq6dSvWrl1rUkfNvXv3sHbtWmzduhUAoFAoMGTIkAqtK1WO33//HQBw7do1ZGVlVXFtipTUvl+8eBEPHz4E8P/1r45CQ0MBAMePHxdfO3/+PP755x8UFhbi5MmTVVU1ItLCkaRKMnHiRIwdOxYAoFQqER0djT///FM8LpVKER4ejmnTpuGVV17Bhg0b0KdPH9y4caOqqmyQh4cHFAoFXn755aquikEvv/wyFAoFrl27Vq7rhIWFGXz9/PnzcHBwwOLFi7Fly5ZyvQdRdRAeHg65XA4AWLVqVZkeiM+ePYvMzExMmDABCoUC4eHh2LNnj7mrSpVo+vTp+N///oeMjAw8fvy4qqsDoOT2/erVqwgNDYWDgwPS09Mrt3KlYChISk5ORkhICOzs7JCRkVFVVSMiLRxJqgTNmzfHu+++CwD46aefMHz4cJ0ACQA0Gg1iY2Pxr3/9CxkZGXB0dMRHH31UFdUlohpCLpeLa5C2bt1abIAUHByMoKAgo8ezsrLEEaXg4GAx8KLnl0qlqjYBkqkePHhQrQMkCwsLtGvXDoWFhVAqlTrH7t+/zwCJqBrhSFIlmDRpEiQSCf766y/MmjULBQUFRs/NyMjA7NmzsWbNGnTv3l2ct2yITCZDhw4d4OnpicePH+P69es4cOAAcnNzDZ7v7OyMbt264dGjR9i5cycAICQkBAEBAXjppZeQkZGBgwcPGlww2rdvX1hbW+OVV14BALRo0QKDBg0CACQlJeHChQt6ZSwsLNCxY0c0btwYzs7OuHXrFpRKJRITE41+/v79+8PS0hJxcXFQq9Vo2LAhOnXqhDp16uD+/fuIj4/HuXPn9MoFBwfDy8sLTZs2BVA04iXULzs7GwcPHjT6nuZkYWGBAQMGQCKR4Pfff8f169eNnivUOTMzE0ePHgVg+GfUtm1btGvXDra2tsjIyMCxY8dMXh/QokULBAQEwN3dHWq1GufOnYNSqSz2d5BqDmHEVKVS4ezZs0bPCw4ORnh4OABAIpHoPdwJzp49i8DAQDFD3jfffGP+SldzrVq1QkBAAOrUqYOHDx8iNTUVR44cMZrQpX379vDw8MCpU6eQkpICZ2dn9OrVC/Xq1YNarcZff/2FgwcP4unTpxVS3pgmTZqgRYsWyMrKwpEjR4ye92wbc+HCBSiVyhLfT6FQICgoCF5eXnj69CkyMjKgVCoNjhKVpn0X7iEHDx7USUShzd7eHmFhYfD29oa1tTVu3LiBI0eOFBuglPXe9KyWLVvCwcEBCQkJer8TJdXd2toaoaGh8Pf3h52dHbKysnDu3Lli/3YFlfm8QPSiYJBUwerWrYv27dsDAJYsWYInT56UWObQoUM4ceIE7O3t4efnpxck2draYt68eYiIiECtWrV0jqnVaqxatQpr167Vu269evWwYMECZGdn48iRI1i9ejXatGmjc86MGTOwcuVKnQW8ADBr1iydKXa9e/dG7969AQBff/21XpAUGhqKqKgoeHp66tXj+PHjmDJlCm7duqV3bP78+ZBKpTh9+jQmTpyIkSNH6hyfPHky9u/fj4kTJ+osDh8yZAh69eol/rtJkyZYsGABAODcuXOVFiQVFBTgjTfeQGBgIDZv3owZM2YYPM/CwgLLly+Hq6srFi1aJAZJ2j+jvXv3YsWKFejZs6fee+zYsQMzZsww2svr6emJpUuXonXr1nrHrl27hilTpuiNZlLN4uTkJI72CCNAxmj/7dvY2BR77u7du8Vpd05OTjUmCU1AQAAWLVqEBg0a6B3Ly8vDkiVL8O233+odGz16NDp06ICPPvoI7u7u+OKLL/DSSy/pnJOVlYWpU6fqTM8yV3ljOnXqhKlTpyI+Pt5gkFRcG5OWlob//ve/OHHihN6xunXrIioqCp07d9Y7VlhYiJiYGMycOVMn02tp2nfhHjJw4ECDgcbYsWPx7rvvwt7eXuf1/Px8xMbGYtasWQbb1bLem54VEhICAAZ/FsXVvUuXLoiKihI7KrUdP34c48ePN7gmtiqeF4heFAySKlhwcDAkEglyc3OL7Y3TVlhYaHTxs1QqxaZNm9C8eXPk5+dj165dSEhIgI2NDYKCgtC2bVvMmDEDdevWxfz58w1ew8LCAgsXLoS/vz82btyIq1evQiaT4bXXXkPdunUxadIk3LhxA9u3bxfLfPnll7C1tcXAgQPh6emJI0eO4MyZMwCA06dP61y/R48eWLVqFSwtLfH3339j3759uHv3Lnx8fNCvXz+Ehobi559/Rr9+/XD37l2DdfzPf/6DQYMGYf/+/Th9+jQcHR3RsWNHNGvWDD169MDs2bMxffp08fxdu3YhKSkJQUFBCAoKQkpKilj/zMxMk753c4mJiUFgYCB69uyJjz/+2GCPalBQEFxdXVFQUKDzPQskEgmmT5+Onj174tixY4iPj4dEIkHLli3RvXt39OvXDzKZDG+++abeqJCPjw9++uknuLq64u7du9i5cydSU1Ph4uKC8PBw+Pj44Mcff8SQIUPEnyHVPH5+fgCK/j5KCmQOHjwoBkfGRpEEWVlZyMzMhLu7O/z8/Eo8/0XQokULbNiwAba2tlCr1di2bRv+/vtv2NnZoUuXLmjbti0++ugjZGVlGU2T7u3tjalTp0Kj0eDbb7/FjRs34Obmhj59+sDd3R3ffPMNxo0bh8OHD1dI+dKQy+XYsmULXF1dcf/+fezYsQPXr1/HK6+8gj59+sDLywvr1q3D8OHD8ccff4jlHB0dsWnTJvj4+CA/Px979uzB+fPn8fTpU7Rs2RIRERHo378/Hj16hI8//lgsZ672fc6cORg+fDgA4OTJkzhx4gTy8vLg7++P3r17Y8CAAahfvz4GDx5stEOztPemZxlaj1SSVq1a4euvv4alpSXOnz+PXbt2IScnB97e3hg6dChCQ0OxZs0aMbOfoKqeF4heFAySKljjxo0BAJcuXTLLHkiTJ09G8+bNoVarMXToUFy8eFE8tnLlSgwePBhRUVEYPXo0Dh8+jPj4eL1rODs7o3nz5ujVq5dOYohVq1bhp59+QqNGjTB27FidRk+YNhMSEgJPT08olUqsWbNG79ouLi6IioqCpaUl1qxZg4ULF4oZ4YCiYOvHH3+EQqHAtGnTMG3aNIOfc8CAAXjrrbd0bujLly/HZ599hn79+qF///5YsmQJ7ty5AwDYt28fAKBWrVoICgrCtWvXqqx3a/fu3Zg9ezacnJzQvn17/Pbbb3rnvPbaawCA+Ph43Lx5U++4i4sLRo4ciWnTpuHnn3/WOSbcENu0aYORI0fq9U4vXLgQrq6uOHHiBN5++22d3sWVK1di+fLl6NWrFxYvXoxu3bpx6l0NJQRJxU1/tbGxgZubGwCIAbUp6b0TExNrVJA0bdo02Nra4vLlyxg2bJjOKMCaNWuwbNkyREREYNy4cUaDpDFjxiAxMRFDhgzR2fQ2OjoaX331FTp37oyoqCh069bN4BSp8pYvDaGNSUpKwogRI3Q+74oVK/Dtt9+iXbt2mDdvHnr06CEeGzFiBHx8fKBWqzFq1Cid0ewffvgBp06dQlRUFAYNGoSlS5eKn8Mc7Xvnzp0xfPhwFBYWYubMmdi8ebPO8bVr12LDhg0ICAjAhAkTEB0dbfA6pb03abOzs0NAQAAeP36MU6dOmVz3yMhIWFpaYu/evRg/frzOsZiYGOzcuRNt2rRBmzZtdILSqnpeIHpRMHFDBatTpw4A4Pbt2+W+lr29PUaMGAEAmDt3rk6DJ9i8eTNiY2MBQK8x1TZ//ny9zHkPHjwQbwyNGzeGg4NDqes4bNgwvPzyyzhx4gQWLFigEyABwK1bt/Dhhx8CAPr162f0PbZs2aLX41lQUIBPP/0UBQUFsLS0RMuWLUtdv8qgVqtx4MABAECfPn30jltZWYlT6LZt22b0OnFxcXoBElDUA/n1118DKJpqo61du3Zo06YN7t69a3D6xZMnTzB16lTk5ORALpejU6dOpfps9OIQRoaKW9/m7u6OMWPG6PxnCuGa1tbW5a/oc2DkyJEYP348IiMjDU7x2rBhAwCgadOmsLQ03DdZWFiISZMm6QQ4QFFSnw8++AAPHjyAm5ub2MFi7vKmCgkJQevWraHRaPDOO+/ofd68vDx8+OGHuHPnDlxdXeHj4yMeEx7Mx48fb3C675YtW6DRaGBlZWX2bTCE5EkxMTF6ARJQlD78008/BVA0WmRsWml57k3t2rWDpaVlqTeOF9Lz79+/X+9Yamoqhg0bhqCgIJ0A6Xl4XiCq7hgkVTBhQ1Jz7J8TFhYGqVSKnJwcsWEzZN26dQCANm3awNXV1eA5x44dM/h6QkICgKLpXi4uLqWuo7BOydDce8HZs2dx48YNWFpaom3btgbPEdboPCsnJ0dcXGvssxWnQYMGCAkJMfpfs2bNSn1NQ4SfT7du3fQeFDt06ABHR0eo1WqDNz3Bpk2bjB7buHEjCgsL4e7ujubNm4uvC99/bGys0SlUubm54hx+IbMZ1Tzu7u4V/h4eHh4V/h7VgUajKXbD1QcPHgAoalednJwMnnPmzBlcuXLF4DG1Wo0dO3YAALp3714h5U0lrA06cOAAUlNTDZ6Tnp6O1q1bIzAwUC8Rwx9//GF0qllhYaH4XTk7O5erntrc3NzEwKW4e1NMTAwePHiA2rVro0uXLgbPKc+9SZhqZ+z+a4wwpbB3794Gg+yLFy/qzUh4Hp4XiKo7TrerYI8ePQIAozfG0mjYsCGAopthcVOkLl26BLVaDQcHB9SvX1+vpy8/P99o0KadbUcI8ExlZWWF+vXrAyiaH9+3b1+j5wq9aIYSOwDQ6w19to6enp5l6qUeN24c+vfvb/T46dOnMXDgwFJf91mHDx/GnTt34OLigrCwMJ0pNsLoUlxcXLHpdYvLlJSdnY1r165BLpdDoVCIiTN8fX0BFE3rKO77FxZ2G/v+iYCiEaGZM2cCgNE1C6TL2toajRo1Qv369SGTyeDp6Sk+HAMwOpJUUma0M2fOYNiwYeKogrnLm0qYQq49alEWFhYW8PHxQePGjeHp6QmZTIaAgADxQd3Y91QWDRo0gEQigVqtRlJSktHz8vPzcerUKYSFhYn322eV595UlvVIQNFUxLZt26J79+44ePAgdu7cifj4ePz5559GR6Sq+/MC0fOAQVIFE/YdqVu3brmvJUzdM5QV7lm3b9+Gg4ODwUw4FcXV1RUSiQQATN7jydHR0eDrz07TM5e0tDSD0w4EV69eNcv7CItkR44ciT59+ohBko2NDbp27QqgqNfSGI1GU+K6gezsbMjlcp3eP+F3ZPDgwXqLeA0x9v3Ti09IrlDR71FT9OzZE4MGDUJoaKheFjGhs6w4xpLYCISHV2O9/eUtbyrhnmIsvXZJmjVrhuHDh6NHjx4GM8xpNBqzP3CXZtq7MCJj7N5Z1nuTm5sb6tevjzt37hQbqBkSFxeHBQsWYOLEifDy8sL48eMxfvx4aDQaHD16FFu2bNHL4FrdnxeIngcMkiqYsCi6WbNmcHBwKNe0OyFL2rM3YEOsrKwAwKSU4+aSn58v/v/GjRvxzz//lFjGlP0dzGnlypVYuXJlpbxXTEwMRo4ciU6dOsHe3h4PHz5EWFgYateujdTU1GIX7pryMxZ6K7V7EoWfwaFDh0wK+J6dZ041h5CAQS6Xm7zvlqmE1OKmJHl4EXz88cdiSmhhP7Lk5GSkpqbir7/+wq1bt3Do0KFir1HSyImhv3dzljeVcB8qy0hP7969sWLFCtSqVQsajQZnz57FxYsXkZaWhpSUFJw7dw4xMTHw9vYuVx2N1bkq753CKJKh5AimWLNmDbZu3YoePXogODgYgYGBcHd3R9euXdG1a1fExsZi8uTJ4vnV4TMTPe8YJFUwpVIp9oz17t0bW7ZsKbGMsBeDvb09Jk+eLM4nFnqEvLy8SiwvjFyZ0otkLtnZ2SgoKICFhQU2bNiAy5cvV9p7V0eXLl3ClStX0KhRI3Tv3h0xMTF4/fXXAaDYOeJA0Y3Nw8Oj2M0NZTIZAN3e0Vu3bkEul+Po0aNYv369GT4FvagSExMhl8vh6+tb4gN8aZmSOe9FUb9+fTFAWr16NZYtW6YXiAgZAotTUrsuTI01NhpS3vKmEtqYevXqlaqcRCLBrFmzUKtWLRw/fhwffPBBiaNf5iLcB93c3GBlZVVsMCB8j+a+d5Z1qp22nJwcbN68WUw84ePjgxEjRmDEiBHo168f4uPjxRkK1f15geh5wMQNFezBgwfYvXs3gKJ0nM9u8mfIG2+8AXt7e+Tn5+tk0RGyAQUGBupNU9AWFBQEqVSKR48elXpYvzwKCgrEtTHGEjLUNEIw1KdPHzg4OKBjx47ihokl0V7H8KymTZuKC2W1N/IVRubatWtXnmpTDSAEMB4eHkbXTLq5uWH06NE6WRSFfxt78HdzcxOn8dWEIElI9nLr1i0sWrTI4EiNKUFSSUlUOnToAAA4f/58hZQ3lbAvXkmZMf39/dGsWTPY2dkBKJpyLjyMz5kzx2CAVKtWLXGamDklJCRAo9HA2tq62HuTg4MDXn31VQAw+x5yws+nrCNJhly7dg2ffPKJ2MkhbFwPVP/nBaLnAYOkSrBw4ULcu3cPrq6uWL16dbGpMgMDA8W9gzZu3KizMFKpVCI7OxvW1taIjIw0WN7CwgITJkwAAPz6668mzYUvDaEHzthn2LVrF4CiByljDbNMJkNcXBxmzZpV7vnxzxKmGJgSjFaG7du3o6CgACEhIfj3v/8NqVSKU6dOIS0trcSyb731ljgN4lnvvfcegKIHnvT0dPF14fvv1q2bmMThWcJI35IlS8yWzY+eP/fu3ROn2RlLZmJrawuFQqGz2F/4t62trcEyQopplUpV4ia1LwIhKLKwMH47ffPNN0u8jkwmM5pspWnTpmK2tb1791ZIeVPt2bMHAPDqq68aDZRatWqFXbt2YceOHeLviXbwKKxdfVZERARq165t9L3L2r4/fPhQ3K/uvffeM/qzioyMhFQqRVZWVrkTU2jz9fWFq6srrl69Wup1enK5HKtWrUJcXJzR+4EwtV37c1WH5wWi5x2DpEqQnZ2NmTNnIj8/H23btsWuXbswePBgnd7bBg0aYMaMGdi4cSPs7e1x9epVvc3s8vPzsWDBAgBFWdrGjBmjMy/c0dER0dHRePXVV/HPP/9gyZIlZv8swsN9RESEOG9c+4Yn7Mjt5eWF77//XlybIPDx8cHq1avRpEkT9OzZU0z3ai5CStqWLVsiNDQUEonE6A25Mty8eRNKpRKWlpbi/lCmjCIBRb3PK1as0AlIbW1tMWfOHDH5w2effaZTJikpCdu2bUOtWrXw3Xff6Y1GOTg4YMmSJQgODkZERATnoNdwwmJvhUKBgIAAveM5OTk4ePCgwf+0O3AEAQEB4t+8MIL+ojt37hzy8/Ph6uqKcePG6bQ3UqkU77//PgYMGFDiddRqNebNm4eOHTvqvN6yZUusWbMGEokEf/zxh94ePeYqb6rk5GRs3boVQNHGsZ07d9Y57uvri2XLlgEAfvnlFzHBw927d8WgfMqUKXpBds+ePTFnzpxi37s87fvixYuRl5eHVq1aITo6WidpjaWlJcaMGYOxY8cCAD799FOzJg8qz3qke/fuISwsDE2aNMHcuXP1klr07dtX3HfvyJEj4uvV4XmB6HnHNUmVZO/evRgzZgxWrlyJevXqISoqClFRUXj48CGkUqlOw3fhwgW89dZbBgOI2NhY+Pn5YfTo0Zg+fTrGjBmDK1euwNraGk2aNIGdnR0eP36MyZMnV8ii/B9++AH9+/eHl5cXfvvtN2g0Gixfvlzc3FSj0WD8+PFYt24dAgIC8OuvvyI5ORk3b95EnTp14O/vD4lEgtzcXLz//vvlXkT8rF9++QVpaWnw8vLC+vXr8eTJEyiVSowaNcqs71MasbGxYsarvLw8nXTgxuTn52PatGn44osv0LFjR5w7dw4SiQS+vr7izf3zzz+HUqnUKzt37lx4eXmhTZs2WL9+PVJTU5GSkgJ7e3v4+/uLDycLFixAcnKyeT8sPVdUKhWUSiWCg4MxYMAAZGZmihk5gaIHNFPXK7m5uYnBgFKp1LnOiywjIwPr16/HqFGjMG3aNAwdOhTJycmQSqVo1qwZnJycsHHjRgwZMqTY63z33Xfo0qUL1q1bh5SUFKSlpcHNzU1MuZ2eni52tFRE+dKYN28evL290bp1a3zzzTdQqVRITU1FnTp14OvrC4lEghs3bmD27Nk65RYtWoSvvvoKPXr0gFKpxIULF6DRaNCoUSN4eXnh2LFj8Pb2NrreqTztu0qlwpQpUxAdHY3XX38dYWFhSE5OxuPHj9GoUSNxVsPq1atNaqNLo6z7IwFFHRWfffYZZs2ahUGDBqFbt25ISEjAkydP0LBhQ3HN0aFDh7B9+3adslX9vED0vONIUiU6fPgwevXqhc2bN4tZ7uzt7cUA6eLFi5g5cyb69etXbHrV+fPn44MPPsCVK1fg6uoqZrqpXbs2jh49ioEDBxa7SWl5JCcnY8SIEeKmhVKpVK8H+sqVK4iIiMCmTZuQl5cHPz8/dO7cGU2bNsXTp0+xfft2vP766+LcdnN6/Pgx3nzzTRw5cgSFhYWwsrIy2ENemfbt2yem896/fz8ePnxoUrm9e/di6tSpePLkCYKCgtCuXTs4Ojri+vXrmDx5st5Io0CtVmPo0KFYunQpsrKyUK9ePXTq1AmtWrWCra0tTp48iWHDhhW7qSLVHHv27BF7+CdMmFCmv5eAgABx2o5KpRKnZNUU8+fPx7Jly5CbmwuZTIawsDC0b98eUqkUixcvxpdfflniNZ48eYJRo0bh+PHjUCgU6NixIxo3boynT59ix44d6N+/f7HTdMtbvjTUajWGDRuGVatW4e7du5DL5ejYsSP8/Pyg0Wiwbds29O3bV2+D019++QWRkZHIzMyEo6Mj2rdvj7CwMMhkMsTGxiIyMrLYEZzytu9xcXEYNGgQjh07htq1ayMwMBDBwcFwdXXF5cuXMWHCBCxatKjM34shUqkUrVu3xtOnT3Hy5MkyXWPdunWIjIzEpUuX4OzsjPbt26NLly7w8vLCzZs3sWjRIrz99tsG90OqyucFouedRC6XV8yGNM8RoWe+uE3izM3CwgJyuRwuLi7Izc1FRkaGwekrJZHJZJDJZNBoNEhNTa20bEEA4O7uDltbW2RkZBhN9WttbQ1vb2/UqVMHd+7cQVpaWon7/5iLo6Mj6tSpg9u3b1fqz/ZZtWrVwu+//w4XFxcMHz682OxGLVu2RExMDPLz88XNAKVSKXx9fWFnZ4fMzExcu3bN5KkgFhYW8PLygru7Ox49eoS0tLRK/R2h54ONjQ2GDh0qTpVLSUnBnj17ShwNcnNzQ3h4uLhmSaVSYcOGDdUu9XdltfFSqRQtWrSAs7Mz7t27h/Pnz5f4XXz33Xfo0KEDoqOj8fnnnwMoate9vb2Rm5sLlUpV7LTk8pYvLysrK7GNefjwIf7++2+T2nh/f394eHhAo9EgISGh1Psulbd9d3Z2Rr169SCVSpGenq6zttOcgoODsWHDBo5N6DUAAAOpSURBVJM2KhdGIAcOHGi0E7Fu3bqQyWSwtrbGrVu3SrW3X1U+LxBVNQ8Pj1KX4XS7KlJQUICrV6+We/PSimzcS2LKAtTHjx/jypUr4shTZbp//36VBkeCrl27wsXFBTdv3izTnHSNRlPmjFQFBQW4fv06rl+/XqbyVDPk5eVh7dq1CA8PR3BwMBQKBSZMmICMjAwkJSUhJSVF53yFQgFfX1+dm45SqaxxI0jP0mg0xe5/ZqrytuuVeV948uQJUlJS9H5HSpKQkICEhIQyv2952/e7d+9WSpBgaupvqVQqJmYoLrC+efOm3gidqaryeYHoecQgiagC1a5dG5MmTQJQtJ7LnIuBicxtz549SExMRFhYGORyOTw8PODh4YGwsDCjZVQqFXbv3l1j1iARlUbDhg2RlZWlk1TBkO7du0MikYgdW0RU9RgkEVWAmTNnwsfHR+xtT09Px/fff1/V1SIqkUqlwtq1a+Hk5AQ/Pz/4+fnBxsZG3PsoMzMTeXl5SExMRGJiYo1I801UVmPGjCn2eEBAACZOnCjubbdv3z5xzTIRVS0GSURmZmlpiUGDBon7RF2+fBmRkZGVthaLyBzu3bsHpVJpMIMiEZmHTCYTp+SdOXMGs2bNquIaEZGAiRtQNYkb6MVlZWWFDh06wMHBAWlpafjzzz9Nnmbn7OyMbt26oaCgAD///HMF15SoZqjObXz79u3h4eGBCxcuICkpqdLLU9Xy8vJCYGAgUlJScOHChaquDtELqyyJGxgkoXrfQImIqHzYxhMR1WxlCZK4TxIREREREZEWBklERERERERaGCQRERERERFpYZBERERERESkhUESERERERGRFgZJREREREREWhgkERERERERaWGQREREREREpIVBEhERERERkRYGSURERERERFoYJBEREREREWlhkERERERERKSFQRIREREREZEWBklERERERERaGCQRERERERFpYZBERERERESkhUESERERERGRFgZJREREREREWhgkERERERERaWGQREREREREpMXS0dGxqutQbfC7ICJ6cbGNJyJ6sd2/f99s1+JIEhERERERkRZLc0ZcREREREREzzuOJBEREREREWlhkERERERERKSFQRIREREREZEWBklERERERERaGCQRERERERFpYZBERERERESkhUESERERERGRFgZJREREREREWhgkERERERERaWGQREREREREpIVBEhERERERkRYGSURERERERFr+D9uftsgNrP8GAAAAAElFTkSuQmCC"},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>l});var t=n(67294);const i={},r=t.createContext(i);function l(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/146.e5652420.js b/assets/js/146.e5652420.js new file mode 100644 index 0000000000..8d6e324464 --- /dev/null +++ b/assets/js/146.e5652420.js @@ -0,0 +1 @@ +(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[146],{59047:(e,t,n)=>{"use strict";n.d(t,{Z:()=>E});var s=n(67294),a=n(85893);function o(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:o.length>0?(0,a.jsx)(a.Fragment,{children:o}):null}}(e.children),o=e.title??t;return{...e,...o&&{title:o},children:n}}var c=n(36905),r=n(95999),i=n(35281);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:t,className:n,children:s}=e;return(0,a.jsx)("div",{className:(0,c.Z)(i.k.common.admonition,i.k.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,a.jsxs)("div",{className:l.admonitionHeading,children:[(0,a.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,a.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:o,className:c}=e;return(0,a.jsxs)(d,{type:t,className:c,children:[s||n?(0,a.jsx)(u,{title:s,icon:n}):null,(0,a.jsx)(m,{children:o})]})}function p(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,a.jsx)(p,{}),title:(0,a.jsx)(r.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,a.jsx)(h,{...f,...e,className:(0,c.Z)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,a.jsx)(x,{}),title:(0,a.jsx)(r.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,a.jsx)(h,{...j,...e,className:(0,c.Z)("alert alert--success",e.className),children:e.children})}function v(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,a.jsx)(v,{}),title:(0,a.jsx)(r.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function N(e){return(0,a.jsx)(h,{...y,...e,className:(0,c.Z)("alert alert--info",e.className),children:e.children})}function k(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const B={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(r.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const w={icon:(0,a.jsx)(C,{}),title:(0,a.jsx)(r.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const Z={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(r.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const L={...{note:g,tip:b,info:N,warning:function(e){return(0,a.jsx)(h,{...B,...e,className:(0,c.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(h,{...w,...e,className:(0,c.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(g,{title:"secondary",...e}),important:e=>(0,a.jsx)(N,{title:"important",...e}),success:e=>(0,a.jsx)(b,{title:"success",...e}),caution:function(e){return(0,a.jsx)(h,{...Z,...e,className:(0,c.Z)("alert alert--warning",e.className),children:e.children})}}};function E(e){const t=o(e),n=(s=t.type,L[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),L.info));var s;return(0,a.jsx)(n,{...t})}},47265:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});n(67294);var s=n(36905),a=n(95999),o=n(35281),c=n(33692);const r={iconEdit:"iconEdit_Z9Sw"};var i=n(85893);function l(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(r.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d(e){let{editUrl:t}=e;return(0,i.jsxs)(c.Z,{to:t,className:o.k.common.editThisPage,children:[(0,i.jsx)(l,{}),(0,i.jsx)(a.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(9788);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.P)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,i.jsx)(a.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(a.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,i.jsxs)("span",{className:o.k.common.lastUpdated,children:[(0,i.jsx)(a.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,i.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,i.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const f={lastUpdated:"lastUpdated_JAkA"};function g(e){let{className:t,editUrl:n,lastUpdatedAt:a,lastUpdatedBy:o}=e;return(0,i.jsxs)("div",{className:(0,s.Z)("row",t),children:[(0,i.jsx)("div",{className:"col",children:n&&(0,i.jsx)(d,{editUrl:n})}),(0,i.jsx)("div",{className:(0,s.Z)("col",f.lastUpdated),children:(a||o)&&(0,i.jsx)(p,{lastUpdatedAt:a,lastUpdatedBy:o})})]})}},77395:(e,t,n)=>{"use strict";n.d(t,{Z:()=>le});var s=n(67294),a=n(11151),o=n(35742),c=n(72389),r=n(36905),i=n(92949),l=n(86668);function d(){const{prism:e}=(0,l.L)(),{colorMode:t}=(0,i.I)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(35281),m=n(87594),h=n.n(m);const p=/title=(?["'])(?.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},x={...g,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},j=Object.keys(g);function b(e,t){const n=e.map((e=>{const{start:n,end:s}=x[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function v(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&f.test(o)){const e=o.match(f).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return b(["js","jsBlock"],t);case"jsx":case"tsx":return b(["js","jsBlock","jsx"],t);case"html":return b(["js","jsBlock","html"],t);case"python":case"py":case"bash":return b(["bash"],t);case"markdown":case"md":return b(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return b(["tex"],t);case"lua":case"haskell":case"sql":return b(["lua"],t);case"wasm":return b(["wasm"],t);case"vb":case"vba":case"visual-basic":return b(["vb","rem"],t);case"vbnet":return b(["vbnet","rem"],t);case"batch":return b(["rem"],t);case"basic":return b(["rem","f90"],t);case"fsharp":return b(["js","ml"],t);case"ocaml":case"sml":return b(["ml"],t);case"fortran":return b(["f90"],t);case"cobol":return b(["cobol"],t);default:return b(j,t)}}(s,a),r=n.split("\n"),i=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<r.length;){const e=r[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?i[l[t]].range+=`${h},`:d[t]?i[d[t]].start=h:u[t]&&(i[u[t]].range+=`${i[u[t]].start}-${h-1},`),r.splice(h,1)}n=r.join("\n");const m={};return Object.entries(i).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const y={codeBlockContainer:"codeBlockContainer_Ckt0"};var N=n(85893);function k(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(d());return(0,N.jsx)(t,{...n,style:s,className:(0,r.Z)(n.className,y.codeBlockContainer,u.k.common.codeBlock)})}const B={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function C(e){let{children:t,className:n}=e;return(0,N.jsx)(k,{as:"pre",tabIndex:0,className:(0,r.Z)(B.codeBlockStandalone,"thin-scrollbar",n),children:(0,N.jsx)("code",{className:B.codeBlockLines,children:t})})}var w=n(902);const Z={attributes:!0,characterData:!0,childList:!0,subtree:!0};function L(e,t){const[n,a]=(0,s.useState)(),o=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=Z);const a=(0,w.zX)(t),o=(0,w.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,o),()=>t.disconnect()}),[e,a,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var E=n(14965);const _={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function T(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=a({line:t,className:(0,r.Z)(n,s&&_.codeLine)}),i=t.map(((e,t)=>(0,N.jsx)("span",{...o({token:e})},t)));return(0,N.jsxs)("span",{...c,children:[s?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("span",{className:_.codeLineNumber}),(0,N.jsx)("span",{className:_.codeLineContent,children:i})]}):i,(0,N.jsx)("br",{})]})}var A=n(95999);function S(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function I(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function U(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),i=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),c=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let r=!1;try{r=document.execCommand("copy")}catch{}s.remove(),c&&(o.removeAllRanges(),o.addRange(c)),a&&a.focus()}(t),o(!0),c.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,N.jsx)("button",{type:"button","aria-label":a?(0,A.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,A.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,A.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,r.Z)("clean-btn",n,z.copyButton,a&&z.copyButtonCopied),onClick:i,children:(0,N.jsxs)("span",{className:z.copyButtonIcons,"aria-hidden":"true",children:[(0,N.jsx)(S,{className:z.copyButtonIcon}),(0,N.jsx)(I,{className:z.copyButtonSuccessIcon})]})})}function M(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const H={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function R(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,A.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,N.jsx)("button",{type:"button",onClick:n,className:(0,r.Z)("clean-btn",t,s&&H.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,N.jsx)(M,{className:H.wordWrapButtonIcon,"aria-hidden":"true"})})}function V(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:c,language:i}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.L)(),h=function(e){return e?.toLowerCase()}(i??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),g=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),r=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return L(o,r),(0,s.useEffect)((()=>{r()}),[e,r]),(0,s.useEffect)((()=>(window.addEventListener("resize",r,{passive:!0}),()=>{window.removeEventListener("resize",r)})),[r]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:c}}(),x=function(e){return e?.match(p)?.groups.title??""}(a)||o,{lineClassNames:j,code:b}=v(t,{metastring:a,language:h,magicComments:m}),y=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,N.jsxs)(k,{as:"div",className:(0,r.Z)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[x&&(0,N.jsx)("div",{className:B.codeBlockTitle,children:x}),(0,N.jsxs)("div",{className:B.codeBlockContent,children:[(0,N.jsx)(E.y$,{theme:f,code:b,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,N.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,r.Z)(t,B.codeBlock,"thin-scrollbar"),style:n,children:(0,N.jsx)("code",{className:(0,r.Z)(B.codeBlockLines,y&&B.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,N.jsx)(T,{line:e,getLineProps:a,getTokenProps:o,classNames:j[t],showLineNumbers:y},t)))})})}}),(0,N.jsxs)("div",{className:B.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,N.jsx)(R,{className:B.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,N.jsx)(U,{className:B.codeButton,code:b})]})]})]})}function W(e){let{children:t,...n}=e;const a=(0,c.Z)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),r="string"==typeof o?V:C;return(0,N.jsx)(r,{...n,children:o},String(a))}function $(e){return(0,N.jsx)("code",{...e})}var P=n(33692);var D=n(788),O=n(28138),q=n(86043);const F={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function G(e){return!!e&&("SUMMARY"===e.tagName||G(e.parentElement))}function J(e,t){return!!e&&(e===t||J(e.parentElement,t))}function Q(e){let{summary:t,children:n,...a}=e;(0,O.Z)().collectAnchor(a.id);const o=(0,c.Z)(),r=(0,s.useRef)(null),{collapsed:i,setCollapsed:l}=(0,q.u)({initialState:!a.open}),[d,u]=(0,s.useState)(a.open),m=s.isValidElement(t)?t:(0,N.jsx)("summary",{children:t??"Details"});return(0,N.jsxs)("details",{...a,ref:r,open:d,"data-collapsed":i,className:(0,D.Z)(F.details,o&&F.isBrowser,a.className),onMouseDown:e=>{G(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;G(t)&&J(t,r.current)&&(e.preventDefault(),i?(l(!1),u(!0)):l(!0))},children:[m,(0,N.jsx)(q.z,{lazy:!1,collapsed:i,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{l(e),u(!e)},children:(0,N.jsx)("div",{className:F.collapsibleContent,children:n})})]})}const X={details:"details_b_Ee"},Y="alert alert--info";function K(e){let{...t}=e;return(0,N.jsx)(Q,{...t,className:(0,r.Z)(Y,X.details,t.className)})}function ee(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,N.jsx)(N.Fragment,{children:t.filter((e=>e!==n))});return(0,N.jsx)(K,{...e,summary:n,children:a})}var te=n(92503);function ne(e){return(0,N.jsx)(te.Z,{...e})}const se={containsTaskList:"containsTaskList_mC6p"};function ae(e){if(void 0!==e)return(0,r.Z)(e,e?.includes("contains-task-list")&&se.containsTaskList)}const oe={img:"img_ev3q"};var ce=n(59047),re=n(11875);const ie={Head:o.Z,details:ee,Details:ee,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,N.jsx)($,{...e}):(0,N.jsx)(W,{...e})},a:function(e){return(0,N.jsx)(P.Z,{...e})},pre:function(e){return(0,N.jsx)(N.Fragment,{children:e.children})},ul:function(e){return(0,N.jsx)("ul",{...e,className:ae(e.className)})},li:function(e){return(0,O.Z)().collectAnchor(e.id),(0,N.jsx)("li",{...e})},img:function(e){return(0,N.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,r.Z)(t,oe.img))});var t},h1:e=>(0,N.jsx)(ne,{as:"h1",...e}),h2:e=>(0,N.jsx)(ne,{as:"h2",...e}),h3:e=>(0,N.jsx)(ne,{as:"h3",...e}),h4:e=>(0,N.jsx)(ne,{as:"h4",...e}),h5:e=>(0,N.jsx)(ne,{as:"h5",...e}),h6:e=>(0,N.jsx)(ne,{as:"h6",...e}),admonition:ce.Z,mermaid:re.Z};function le(e){let{children:t}=e;return(0,N.jsx)(a.Z,{components:ie,children:t})}},32244:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(67294);var s=n(36905),a=n(33692),o=n(85893);function c(e){const{permalink:t,title:n,subLabel:c,isNext:r}=e;return(0,o.jsxs)(a.Z,{className:(0,s.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[c&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:c}),(0,o.jsx)("div",{className:"pagination-nav__label",children:n})]})}},13008:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});n(67294);var s=n(36905),a=n(33692);const o={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var c=n(85893);function r(e){let{permalink:t,label:n,count:r}=e;return(0,c.jsxs)(a.Z,{href:t,className:(0,s.Z)(o.tag,r?o.tagWithCount:o.tagRegular),children:[n,r&&(0,c.jsx)("span",{children:r})]})}},71526:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(67294);var s=n(36905),a=n(95999),o=n(13008);const c={tags:"tags_jXut",tag:"tag_QGVx"};var r=n(85893);function i(e){let{tags:t}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("b",{children:(0,r.jsx)(a.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,r.jsx)("ul",{className:(0,s.Z)(c.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,r.jsx)("li",{className:c.tag,children:(0,r.jsx)(o.Z,{label:t,permalink:n})},n)}))})]})}},9788:(e,t,n)=>{"use strict";n.d(t,{P:()=>a});var s=n(52263);function a(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.Z)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.Z)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},87594:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},11151:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r,a:()=>c});var s=n(67294);const a={},o=s.createContext(a);function c(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/16144a8e.4500eff2.js b/assets/js/16144a8e.4500eff2.js new file mode 100644 index 0000000000..0049392427 --- /dev/null +++ b/assets/js/16144a8e.4500eff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1162],{26961:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var t=s(85893),i=s(11151);const a={title:"Week 1",author:"Kaushlendra"},r="Coding Week 1 Meeting",o={id:"2021/copyrights/updates/2021-06-07",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-06-07.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-06-07",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-06-07.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Introduction",permalink:"/gsoc/docs/2021/copyrights/"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-15"}},l={},d=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 1 Progress",id:"week-1-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const n={a:"a",h1:"h1",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"coding-week-1-meeting",children:"Coding Week 1 Meeting"}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,t.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,t.jsx)(n.li,{children:"Vasudev"}),"\n",(0,t.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,t.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,t.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,t.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Get Started with Implementing the NER and POS tagging on a sample Copyright"}),"\n",(0,t.jsx)(n.li,{children:"Implement NER and POS tagging on a larger dataset that was observed from Fossology itself."}),"\n",(0,t.jsx)(n.li,{children:"Look for and Relations that can be implemented and defined as our logical checks for Detection of False Positives."}),"\n",(0,t.jsx)(n.li,{children:"Use of Spacy/NLTK/Others"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"week-1-progress",children:"Week 1 Progress"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Spacy was decided to be used as the library prompt for NER and POS tagging. As it supports both the functionalities in other languages as well and it is very future proof."}),"\n",(0,t.jsx)(n.li,{children:"NER and POS Tagging pre-trained models were set up and implemented on test copyright statements."}),"\n",(0,t.jsx)(n.li,{children:"Set up fossology and gathered a Synthetic dataset by using pre-existed Copyright Agent, which helped us give a dataset with all four quadrants of the prediction."}),"\n",(0,t.jsx)(n.li,{children:"Codebase has been written in such a way that can help in comparing and finding the relations"}),"\n",(0,t.jsx)(n.li,{children:"Wiki has been Updated"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"https://gist.github.com/Kaushl2208/e7962f6f895912246a0bd813bba399ed",children:"Collaboratory Gist"})," can be visited."]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(n.p,{children:"Implementation of POS tagging and NER was planned for next few weeks."})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>r});var t=s(67294);const i={},a=t.createContext(i);function r(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1772.f71e55eb.js b/assets/js/1772.f71e55eb.js new file mode 100644 index 0000000000..9b05564041 --- /dev/null +++ b/assets/js/1772.f71e55eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1772],{5658:(e,t,n)=>{n.d(t,{Z:()=>a});n(67294);var i=n(36905),o=n(95999),s=n(92503),r=n(85893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,i.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},51772:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});n(67294);var i=n(95999),o=n(8264),s=n(46040),r=n(5658),a=n(85893);function l(){const e=(0,i.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.d,{title:e}),(0,a.jsx)(s.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.dd037d35.js b/assets/js/17896441.dd037d35.js new file mode 100644 index 0000000000..0f7201fbd4 --- /dev/null +++ b/assets/js/17896441.dd037d35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7918],{27362:(e,n,t)=>{t.r(n),t.d(n,{default:()=>ae});var s=t(67294),a=t(8264),i=t(902),o=t(85893);const l=s.createContext(null);function r(e){let{children:n,content:t}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(t);return(0,o.jsx)(l.Provider,{value:a,children:n})}function c(){const e=(0,s.useContext)(l);if(null===e)throw new i.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=c();return(0,o.jsx)(a.d,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(36905),m=t(87524),h=t(95999),v=t(32244);function b(e){const{previous:n,next:t}=e;return(0,o.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,o.jsx)(v.Z,{...n,subLabel:(0,o.jsx)(h.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),t&&(0,o.jsx)(v.Z,{...t,subLabel:(0,o.jsx)(h.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function x(){const{metadata:e}=c();return(0,o.jsx)(b,{previous:e.previous,next:e.next})}var f=t(52263),p=t(33692),g=t(80143),j=t(35281),L=t(60373),C=t(74477);const N={unreleased:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,o.jsx)(h.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:n,versionLabel:(0,o.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,o.jsx)(h.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:n,versionLabel:(0,o.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function k(e){const n=N[e.versionMetadata.banner];return(0,o.jsx)(n,{...e})}function _(e){let{versionLabel:n,to:t,onClick:s}=e;return(0,o.jsx)(h.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:n,latestVersionLink:(0,o.jsx)("b",{children:(0,o.jsx)(p.Z,{to:t,onClick:s,children:(0,o.jsx)(h.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function Z(e){let{className:n,versionMetadata:t}=e;const{siteConfig:{title:s}}=(0,f.Z)(),{pluginId:a}=(0,g.gA)({failfast:!0}),{savePreferredVersionName:i}=(0,L.J)(a),{latestDocSuggestion:l,latestVersionSuggestion:r}=(0,g.Jo)(a),c=l??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,o.jsxs)("div",{className:(0,u.Z)(n,j.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,o.jsx)("div",{children:(0,o.jsx)(k,{siteTitle:s,versionMetadata:t})}),(0,o.jsx)("div",{className:"margin-top--md",children:(0,o.jsx)(_,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:n}=e;const t=(0,C.E)();return t.banner?(0,o.jsx)(Z,{className:n,versionMetadata:t}):null}function H(e){let{className:n}=e;const t=(0,C.E)();return t.badge?(0,o.jsx)("span",{className:(0,u.Z)(n,j.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(h.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}var M=t(71526),I=t(47265);function E(){const{metadata:e}=c(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,l=!!(n||t||s);return i||l?(0,o.jsxs)("footer",{className:(0,u.Z)(j.k.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,o.jsx)("div",{className:(0,u.Z)("row margin-top--sm",j.k.docs.docFooterTagsRow),children:(0,o.jsx)("div",{className:"col",children:(0,o.jsx)(M.Z,{tags:a})})}),l&&(0,o.jsx)(I.Z,{className:(0,u.Z)("margin-top--sm",j.k.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var w=t(86043),y=t(93743);const A={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function B(e){let{collapsed:n,...t}=e;return(0,o.jsx)("button",{type:"button",...t,className:(0,u.Z)("clean-btn",A.tocCollapsibleButton,!n&&A.tocCollapsibleButtonExpanded,t.className),children:(0,o.jsx)(h.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const O={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function V(e){let{toc:n,className:t,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:l}=(0,w.u)({initialState:!0});return(0,o.jsxs)("div",{className:(0,u.Z)(O.tocCollapsible,!i&&O.tocCollapsibleExpanded,t),children:[(0,o.jsx)(B,{collapsed:i,onClick:l}),(0,o.jsx)(w.z,{lazy:!0,className:O.tocCollapsibleContent,collapsed:i,children:(0,o.jsx)(y.Z,{toc:n,minHeadingLevel:s,maxHeadingLevel:a})})]})}const S={tocMobile:"tocMobile_ITEo"};function P(){const{toc:e,frontMatter:n}=c();return(0,o.jsx)(V,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.Z)(j.k.docs.docTocMobile,S.tocMobile)})}var R=t(39407);function U(){const{toc:e,frontMatter:n}=c();return(0,o.jsx)(R.Z,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:j.k.docs.docTocDesktop})}var F=t(92503),D=t(77395);function z(e){let{children:n}=e;const t=function(){const{metadata:e,frontMatter:n,contentTitle:t}=c();return n.hide_title||void 0!==t?null:e.title}();return(0,o.jsxs)("div",{className:(0,u.Z)(j.k.docs.docMarkdown,"markdown"),children:[t&&(0,o.jsx)("header",{children:(0,o.jsx)(F.Z,{as:"h1",children:t})}),(0,o.jsx)(D.Z,{children:n})]})}var q=t(52802),$=t(48596),G=t(44996);function J(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const Y={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function K(){const e=(0,G.Z)("/");return(0,o.jsx)("li",{className:"breadcrumbs__item",children:(0,o.jsx)(p.Z,{"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,o.jsx)(J,{className:Y.breadcrumbHomeIcon})})})}const Q={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function W(e){let{children:n,href:t,isLast:s}=e;const a="breadcrumbs__link";return s?(0,o.jsx)("span",{className:a,itemProp:"name",children:n}):t?(0,o.jsx)(p.Z,{className:a,href:t,itemProp:"item",children:(0,o.jsx)("span",{itemProp:"name",children:n})}):(0,o.jsx)("span",{className:a,children:n})}function X(e){let{children:n,active:t,index:s,addMicrodata:a}=e;return(0,o.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:[n,(0,o.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,q.s1)(),n=(0,$.Ns)();return e?(0,o.jsx)("nav",{className:(0,u.Z)(j.k.docs.docBreadcrumbs,Q.breadcrumbsContainer),"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,o.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[n&&(0,o.jsx)(K,{}),e.map(((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,o.jsx)(X,{active:s,index:t,addMicrodata:!!a,children:(0,o.jsx)(W,{href:a,isLast:s,children:n.label})},t)}))]})}):null}var ne=t(22212);const te={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function se(e){let{children:n}=e;const t=function(){const{frontMatter:e,toc:n}=c(),t=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,o.jsx)(P,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,o.jsx)(U,{})}}(),{metadata:{unlisted:s}}=c();return(0,o.jsxs)("div",{className:"row",children:[(0,o.jsxs)("div",{className:(0,u.Z)("col",!t.hidden&&te.docItemCol),children:[s&&(0,o.jsx)(ne.Z,{}),(0,o.jsx)(T,{}),(0,o.jsxs)("div",{className:te.docItemContainer,children:[(0,o.jsxs)("article",{children:[(0,o.jsx)(ee,{}),(0,o.jsx)(H,{}),t.mobile,(0,o.jsx)(z,{children:n}),(0,o.jsx)(E,{})]}),(0,o.jsx)(x,{})]})]}),t.desktop&&(0,o.jsx)("div",{className:"col col--3",children:t.desktop})]})}function ae(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,o.jsx)(r,{content:e.content,children:(0,o.jsxs)(a.FG,{className:n,children:[(0,o.jsx)(d,{}),(0,o.jsx)(se,{children:(0,o.jsx)(t,{})})]})})}},39407:(e,n,t)=>{t.d(n,{Z:()=>c});t(67294);var s=t(36905),a=t(93743);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var o=t(85893);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,o.jsx)("div",{className:(0,s.Z)(i.tableOfContents,"thin-scrollbar",n),children:(0,o.jsx)(a.Z,{...t,linkClassName:l,linkActiveClassName:r})})}},93743:(e,n,t)=>{t.d(n,{Z:()=>b});var s=t(67294),a=t(86668);function i(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n}));const s=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)})),s}function o(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:s}=e;return n.flatMap((e=>{const n=o({toc:e.children,minHeadingLevel:t,maxHeadingLevel:s});return function(e){return e.level>=t&&e.level<=s}(e)?[{...e,children:n}]:n}))}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const s=e.find((e=>l(e).top>=t));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function c(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,a.L)();return(0,s.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const s=[];for(let a=n;a<=t;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:o}),c=r(l,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,t])}var u=t(33692),m=t(85893);function h(e){let{toc:n,className:t,linkClassName:s,isChild:a}=e;return n.length?(0,m.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function b(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const b=(0,a.L)(),x=c??b.tableOfContents.minHeadingLevel,f=u??b.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>o({toc:i(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:x,maxHeadingLevel:f});return d((0,s.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:x,maxHeadingLevel:f}}),[l,r,x,f])),(0,m.jsx)(v,{toc:p,className:t,linkClassName:l,...h})}},22212:(e,n,t)=>{t.d(n,{Z:()=>h});t(67294);var s=t(36905),a=t(95999),i=t(35742),o=t(85893);function l(){return(0,o.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,o.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,o.jsx)(i.Z,{children:(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(35281),u=t(59047);function m(e){let{className:n}=e;return(0,o.jsx)(u.Z,{type:"caution",title:(0,o.jsx)(l,{}),className:(0,s.Z)(n,d.k.common.unlistedBanner),children:(0,o.jsx)(r,{})})}function h(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c,{}),(0,o.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/182aacb7.30ef0aaa.js b/assets/js/182aacb7.30ef0aaa.js new file mode 100644 index 0000000000..11a9e57158 --- /dev/null +++ b/assets/js/182aacb7.30ef0aaa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1285],{69377:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(85893),i=t(11151);const r={title:"Week 1",author:"Rajul Jha",tags:["gsoc24","CI"]},a="Week 1",l={id:"2024/ci-scanner/updates/2024-06-06",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-06-06.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-06-06",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-06-06.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 1",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Community bonding",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-05-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-13"}},c={},o=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Updates",id:"updates",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"week-1",children:"Week 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 31, 2024 - June 6, 2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 5, 2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Discussed ",(0,s.jsx)(n.a,{href:"https://www.gnu.org/software/diffutils/manual/html_node/Example-Unified.html",children:"unified diff"})," format to populate the data fetched from the Github and Gitlab API's"]}),"\n",(0,s.jsx)(n.li,{children:"We also discussed after extraction of the content in unified diff format, how will we extract the line number from it."}),"\n",(0,s.jsxs)(n.li,{children:["We discussed potential risks that we had to keep in mind before approaching this:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The scanner results should give required info for searching line number."}),"\n",(0,s.jsx)(n.li,{children:"The scanner results should not be affected by this."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Came across ",(0,s.jsx)(n.a,{href:"https://stackoverflow.com/questions/24455377/git-diff-with-line-numbers-git-log-with-line-numbers",children:"this thread"})," on stackoverflow. Used this gawk command as a reference and wrote a python script to convert the api content into unified diff format."]}),"\n",(0,s.jsxs)(n.li,{children:["Create a new class ",(0,s.jsx)(n.code,{children:"FormatResult"})," to handle all the formatting of the results and diff content."]}),"\n",(0,s.jsx)(n.li,{children:"Also, created a function to extract the line number from the formatted diff content."}),"\n",(0,s.jsx)(n.li,{children:"Tested both the scripts extensively and all cover potential edge cases."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Use the script on the diff content and try to find the line number for copyright and keyword scanners."}),"\n",(0,s.jsx)(n.li,{children:"Add relevant byte info to the JSON output of nomos scanner."}),"\n",(0,s.jsx)(n.li,{children:"Figure out what to do for repo scans."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>a});var s=t(67294);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/18491626.45f4e320.js b/assets/js/18491626.45f4e320.js new file mode 100644 index 0000000000..7eb678ea48 --- /dev/null +++ b/assets/js/18491626.45f4e320.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9052],{29964:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var i=n(85893),s=n(11151);const o={title:"Week 10",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},a=void 0,r={id:"2022/ui/updates/soham/2022-08-08",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-08-08.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-08-08",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-08-08.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 10",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 8 and 9",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-05"},next:{title:"Installation",permalink:"/gsoc/docs/2022/ui/installation"}},l={},c=[{value:"Fix failing tests due to lint errors",id:"fix-failing-tests-due-to-lint-errors",level:2},{value:"PR link - fix(lint): openapi lint corrected",id:"pr-link---fixlint-openapi-lint-corrected",level:3},{value:"Started with UI integration for clearing status",id:"started-with-ui-integration-for-clearing-status",level:2},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"fix-failing-tests-due-to-lint-errors",children:"Fix failing tests due to lint errors"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.em,{children:"(September 14th, 2022)"})}),"\n",(0,i.jsx)(t.p,{children:"Worked on finding failing tests and linting issues."}),"\n",(0,i.jsxs)(t.p,{children:["found issues on the file ",(0,i.jsx)(t.code,{children:"openapi.yaml"})," and fixed them"]}),"\n",(0,i.jsxs)(t.h3,{id:"pr-link---fixlint-openapi-lint-corrected",children:["PR link - ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2311",children:"fix(lint): openapi lint corrected"})]}),"\n",(0,i.jsx)(t.h2,{id:"started-with-ui-integration-for-clearing-status",children:"Started with UI integration for clearing status"}),"\n",(0,i.jsx)(t.p,{children:"Started with the implementation of UI for the clearing statuses:\nCurrently finished indexing the images as follows:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"index",src:n(96250).Z+"",width:"600",height:"142"})}),"\n",(0,i.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Completing documentations and preparing for final evaluation sumbission"}),"\n",(0,i.jsx)(t.li,{children:"Implementing the Files to be cleared operation in both Backend and UI"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},96250:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/indexing-9b01b96d73c19322ba3cd6a96534b530.png"},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var i=n(67294);const s={},o=i.createContext(s);function a(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/186fa67e.1a1a659f.js b/assets/js/186fa67e.1a1a659f.js new file mode 100644 index 0000000000..8e695207e9 --- /dev/null +++ b/assets/js/186fa67e.1a1a659f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7129],{96268:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var i=t(85893),s=t(11151);const o={sidebar_position:4,title:"Copyright UI",author:"Sarita"},a=void 0,r={id:"2021/scancode/copyright",title:"Copyright UI",description:"\x3c!--",source:"@site/docs/2021/scancode/copyright.md",sourceDirName:"2021/scancode",slug:"/2021/scancode/copyright",permalink:"/gsoc/docs/2021/scancode/copyright",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/copyright.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Copyright UI",author:"Sarita"},sidebar:"2021",previous:{title:"Installing scancode",permalink:"/gsoc/docs/2021/scancode/installation"},next:{title:"First Evaluation",permalink:"/gsoc/docs/2021/scancode/first_evaluation"}},c={},l=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const n={a:"a",code:"code",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-06-28"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["About Copyright UI (Explained by Gaurav)","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Starting with copyright-hist, there are two types of content ",(0,i.jsx)(n.code,{children:"statement"}),", coming from the copyright agent and ",(0,i.jsx)(n.code,{children:"copyFindings"})," which is manual finding added by user form fossology UI."]}),"\n",(0,i.jsx)(n.li,{children:"HistogramBase is the base class for copyright-hist as well as email-hist."}),"\n",(0,i.jsxs)(n.li,{children:["In template there is ",(0,i.jsx)(n.code,{children:"DataTables"})," plug-in used which add some advanced feature to HTML tables like Pagination, Instant search, sorting, Use almost any data source."]}),"\n",(0,i.jsxs)(n.li,{children:["ajax-copyright-hist has collection of functions for different task like update, delete, undo and depending upon the call, function returns ",(0,i.jsx)(n.code,{children:"JsonResponse"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"When there is an API call(GET/POST request), JavaScript functions in the template folder calls ajax and depending upon type of action, ajax fetch data from database and return in JSON response. These JSON responses are rendered on UI."}),"\n",(0,i.jsxs)(n.li,{children:["Like c/cpp main function, FOSSology has ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/copyright/ui/HistogramBase.php#L187-L287",children:"Output function"})," which defines the entry point. We check in this function that what is the thing that user wants to do."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["About Copyright and Author table for ScanCode","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Two separate tables would be good."}),"\n",(0,i.jsx)(n.li,{children:"Number of agent scanning copyright is increasing."}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"agent_fk"})," in the copyright table is used to know the version of copyright agent."]}),"\n",(0,i.jsx)(n.li,{children:"Functionality to disable copyright should be there."}),"\n",(0,i.jsx)(n.li,{children:"Using same table, reporting would be straight away but using different table would be hectic to add reporting."}),"\n",(0,i.jsx)(n.li,{children:"There would be speed, reporting issues."}),"\n",(0,i.jsx)(n.li,{children:"In case of different tables there could be repetition in the copyright data in fossology finding and scancode finding."}),"\n",(0,i.jsx)(n.li,{children:"Growing data over years could be one of the main reason to keep table separate."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Start with copyright-hist and email-hist then move to ajax and template."}),"\n",(0,i.jsx)(n.li,{children:"FOSSology uses Output function as the main function(entry point)."}),"\n",(0,i.jsx)(n.li,{children:"In Initial development we can keep separate tables for fossology copyright and scancode copyright, users can select which agent report they want to see. Later on, based on the performance of these agents we can think of removing redundant data by merging these tables or any other idea."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(67294);const s={},o=i.createContext(s);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/18bed81e.5035c03e.js b/assets/js/18bed81e.5035c03e.js new file mode 100644 index 0000000000..b944d20192 --- /dev/null +++ b/assets/js/18bed81e.5035c03e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6052],{77495:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>r});var i=s(85893),t=s(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 1",o={id:"2023/laas/updates/2023-06-02",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-06-02.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-06-02",permalink:"/gsoc/docs/2023/laas/updates/2023-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-06-02.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Community bonding",permalink:"/gsoc/docs/2023/laas/updates/2023-05-11"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-09"}},c={},r=[{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"General",id:"general",level:2},{value:"Conclusion and future plan",id:"conclusion-and-future-plan",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-1",children:"Week 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June,02,2023)"})}),"\n",(0,i.jsx)(n.p,{children:"It was the first meeting of coding period, creating basic project structure and\nthe added the documentation file in each package."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Type of Database structure: Database Service or a File.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"It will be a database service."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Discussed about the data components:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"For now we will add all the data components that are in the fossology."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"We will make a new database different from that of fossology."}),"\n",(0,i.jsxs)(n.li,{children:["How we will be populating the database in the first place:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["we will use the link of ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/install/db/licenseRef.json",children:"data file"})," in fossology."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"For authentication currently it will be same as that of fossology."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add Reuse.software for licensing of each file."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" \x3c!-- SPDX-FileCopyrightText: 2023 Kavya Shukla <kavyuushukla@gmail.com>\n SPDX-License-Identifier: GPL-2.0-only --\x3e\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Read about the contributing convention from ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/CONTRIBUTING.md",children:"contribution.md"})," file."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and future plan"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Next week we have to have to migrate the json data into the local database."}),"\n",(0,i.jsx)(n.li,{children:"Add various data components in the field licenses."}),"\n",(0,i.jsx)(n.li,{children:"Create table in local database with the configuration entered."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>l});var i=s(67294);const t={},a=i.createContext(t);function l(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1942e039.01071acb.js b/assets/js/1942e039.01071acb.js new file mode 100644 index 0000000000..20dd632c92 --- /dev/null +++ b/assets/js/1942e039.01071acb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7906],{28476:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=s(85893),t=s(11151);const r={sidebar_position:10,title:"Week 7"},o=void 0,l={id:"2023/minutes/2023-07-20",title:"Week 7",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-07-20.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-07-20",permalink:"/gsoc/docs/2023/minutes/2023-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-07-20.md",tags:[],version:"current",sidebarPosition:10,frontMatter:{sidebar_position:10,title:"Week 7"},sidebar:"2023",previous:{title:"Week 6",permalink:"/gsoc/docs/2023/minutes/2023-07-06"},next:{title:"Week 9",permalink:"/gsoc/docs/2023/minutes/2023-08-10"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/kaushl2208",children:"Kaushlendra Pratap Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on update endpoint for customize page."}),"\n",(0,i.jsx)(n.li,{children:"The GET endpoint now returns consistent type of data."}),"\n",(0,i.jsxs)(n.li,{children:["Will be working on file info page endpoints.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Found a bug in the customize page, integer fields are accepting strings."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Was working on different ways to run ScanCode with different parameters."}),"\n",(0,i.jsxs)(n.li,{children:["Integrated the changes for running ScanCode via API, demonstrated the same in the meeting.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on copyrights for now. And found API is faster (13 seconds) than CLI (23 seconds) as shown in demo."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Still need to work on reading output from the Python script and updating DB."}),"\n",(0,i.jsxs)(n.li,{children:["Request from mentor is to push the updated code for ScanCode for recommending updates.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Also, to work on changes requested on CDX PR ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2507",children:"#2507"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Updated the meeting minutes."}),"\n",(0,i.jsx)(n.li,{children:"License is almost finished, will be focusing on Obligations."}),"\n",(0,i.jsx)(n.li,{children:"Work on audit is not done, but test cases is done for other endpoints."}),"\n",(0,i.jsx)(n.li,{children:"Can discuss on E2E testing in next call."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Created a labled result for FOSSology's repo. The copyrights are color coded based on\nTrue Positive (green), False Positive (red), Different lang (blue), not actual copyright (grey), confusing (orange)."}),"\n",(0,i.jsxs)(n.li,{children:["Used this data (14k +ve and 5K -ve) to train classifiers. Started with tf-idf and trained SVM, Random Forest, Navie Bayes.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"NB can be told to have certial level of confidence before classifying a string."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Results are very good, >95% accuracy. Higher recall is aimed on identifying +ve copyrights."}),"\n",(0,i.jsx)(n.li,{children:"Tested out Bert, but is slow and not very performant given the amount of data."}),"\n",(0,i.jsx)(n.li,{children:"More data provided by the mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Working on unlinking folders endpoints."}),"\n",(0,i.jsx)(n.li,{children:"Updating existing PRs."}),"\n",(0,i.jsx)(n.li,{children:"Next steps for the project will be to write testcases and migrate to v2 of API."}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>o});var i=s(67294);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/19a24217.6de5b7bb.js b/assets/js/19a24217.6de5b7bb.js new file mode 100644 index 0000000000..7291a5335a --- /dev/null +++ b/assets/js/19a24217.6de5b7bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3915],{30453:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=t(85893),i=t(11151);const r={title:"Week4",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},o=void 0,c={id:"2022/project/updates/2022-06-30",title:"Week4",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-06-30.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-06-30",permalink:"/gsoc/docs/2022/project/updates/2022-06-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-06-30.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week4",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week3",permalink:"/gsoc/docs/2022/project/updates/2022-06-23"},next:{title:"Week5",permalink:"/gsoc/docs/2022/project/updates/2022-07-07"}},a={},l=[{value:"Meeting 5",id:"meeting-5",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 30th, 2022)"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Katharina Ettinger"}),"\n",(0,s.jsx)(n.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bhardwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shruti Agarwal"}),"\n",(0,s.jsx)(n.li,{children:"Avinal Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,s.jsx)(n.li,{children:"Soham Banerjee"}),"\n",(0,s.jsx)(n.li,{children:"Samuel Dushimimana"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.p,{children:["Discussion the problem when I try to add a Browse",":Project"," View tab in the main menu. Mentors explained the work flow of the menu for me."]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I will try to finish the menu work next week."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/19cbecc5.c3e329ef.js b/assets/js/19cbecc5.c3e329ef.js new file mode 100644 index 0000000000..1759349562 --- /dev/null +++ b/assets/js/19cbecc5.c3e329ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6845],{22807:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=t(85893),n=t(11151);const r={title:"Week 3",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},o="Week 3 Meeting and Activities",a={id:"2024/spdx30/updates/2024-06-11",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/spdx30/updates/2024-06-11.md",sourceDirName:"2024/spdx30/updates",slug:"/2024/spdx30/updates/2024-06-11",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/updates/2024-06-11.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx30",permalink:"/gsoc/docs/tags/spdx-30"}],version:"current",frontMatter:{title:"Week 3",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-04"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-18"}},d={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Activities",id:"activities",level:2}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-3-meeting-and-activities",children:"Week 3 Meeting and Activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 11, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Presented the JSON-ld report."}),"\n",(0,i.jsx)(s.li,{children:"There was a build issue in my latest PR. I started to look into it as well."}),"\n",(0,i.jsx)(s.li,{children:"Next Step: Work on RDF report generation."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"In this week, I worked upon SPDX v3.0 report in JSON format."}),"\n",(0,i.jsxs)(s.li,{children:["Followed the ",(0,i.jsx)(s.a,{href:"https://github.com/spdx/spdx-3-model/blob/main/serialization/json.md",children:"JSON Serialization"})," for report generation in JSON format."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>o});var i=t(67294);const n={},r=i.createContext(n);function o(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1a0d015f.8f84833f.js b/assets/js/1a0d015f.8f84833f.js new file mode 100644 index 0000000000..3dace1df6e --- /dev/null +++ b/assets/js/1a0d015f.8f84833f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3803],{34657:e=>{e.exports=JSON.parse('{"tag":{"label":"CI","permalink":"/gsoc/docs/tags/ci","allTagsPath":"/gsoc/docs/tags","count":8,"items":[{"id":"2024/ci-scanner/updates/2024-06-06","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-06"},{"id":"2024/ci-scanner/updates/2024-06-13","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-13"},{"id":"2024/ci-scanner/updates/2024-06-20","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-20"},{"id":"2024/ci-scanner/updates/2024-06-27","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-27"},{"id":"2024/ci-scanner/updates/2024-07-04","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-04"},{"id":"2024/ci-scanner/updates/2024-07-11","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-11"},{"id":"2024/ci-scanner/updates/2024-07-18","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-18"},{"id":"2024/ci-scanner/updates/2024-07-25","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-25"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/1ae2f0ff.0727b30d.js b/assets/js/1ae2f0ff.0727b30d.js new file mode 100644 index 0000000000..35e4438a6e --- /dev/null +++ b/assets/js/1ae2f0ff.0727b30d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5962],{23647:(A,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var n=s(85893),o=s(11151);const t={sidebar_position:3,title:"Installation"},i=void 0,l={id:"2021/ui/installation",title:"Installation",description:"\x3c!--",source:"@site/docs/2021/ui/installation.md",sourceDirName:"2021/ui",slug:"/2021/ui/installation",permalink:"/gsoc/docs/2021/ui/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/installation.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Installation"},sidebar:"2021",previous:{title:"Week 10",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-17"},next:{title:"Style Guide",permalink:"/gsoc/docs/2021/ui/styleGuide"}},r={},c=[{value:"Requirements \ud83d\udcdc",id:"requirements-scroll",level:2},{value:"Installation Steps :walking:",id:"installation-steps-walking",level:2},{value:"1. Fork it \ud83c\udf74",id:"1-fork-it-fork_and_knife",level:3},{value:"2. Clone it \ud83d\udc65",id:"2-clone-it-busts_in_silhouette",level:3},{value:"3. Set it up \u2b06\ufe0f",id:"3-set-it-up-arrow_up",level:3},{value:"4. Run it \ud83c\udfc1",id:"4-run-it-checkered_flag",level:3}];function a(A){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.a)(),...A.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.h2,{id:"requirements-scroll",children:["Requirements ","\ud83d\udcdc"]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:["Your machine should have ",(0,n.jsx)(e.a,{href:"https://classic.yarnpkg.com/en/docs/install/#windows-stable",children:"Yarn"})," (preferable) or ",(0,n.jsx)(e.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Npm"})," or ",(0,n.jsx)(e.a,{href:"https://docs.docker.com/get-docker/",children:"Docker"})," installed."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:["A working ",(0,n.jsx)(e.a,{href:"https://github.com/fossology/fossology#installation",children:"FOSSology"})," setup."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:"Setup CORS in FOSSology"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Open FOSSology and go to Admin > Customize."}),"\n",(0,n.jsx)(e.li,{children:'Look out for "Allowed origins for REST API"'}),"\n",(0,n.jsxs)(e.li,{children:['Set the value to "',(0,n.jsx)(e.a,{href:"http://localhost:3000",children:"http://localhost:3000"}),'"']}),"\n"]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:"image",src:s(10936).Z+"",width:"1367",height:"249"})}),"\n",(0,n.jsx)(e.h2,{id:"installation-steps-walking",children:"Installation Steps :walking:"}),"\n",(0,n.jsxs)(e.h3,{id:"1-fork-it-fork_and_knife",children:["1. Fork it ","\ud83c\udf74"]}),"\n",(0,n.jsxs)(e.p,{children:["You can get your own fork/copy of ",(0,n.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI",children:"FOSSologyUI"})," by using the ",(0,n.jsx)("kbd",{children:(0,n.jsx)("b",{children:"Fork"})})," button."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI",children:(0,n.jsx)(e.img,{alt:"Fork Button",src:s(80406).Z+"",width:"745",height:"116"})})}),"\n",(0,n.jsxs)(e.h3,{id:"2-clone-it-busts_in_silhouette",children:["2. Clone it ","\ud83d\udc65"]}),"\n",(0,n.jsx)(e.p,{children:"You need to clone (download) it to a local machine using"}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"git clone https://github.com/Your_Username/FOSSologyUI.git\n"})}),"\n",(0,n.jsxs)(e.blockquote,{children:["\n",(0,n.jsx)(e.p,{children:"This makes a local copy of the repository in your machine."}),"\n"]}),"\n",(0,n.jsxs)(e.p,{children:["Once you have cloned the ",(0,n.jsx)(e.code,{children:"FOSSologyUI"})," repository in GitHub, move to that folder first using the change directory command."]}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"# This will change directory to a folder FOSSologyUI\ncd FOSSologyUI\n"})}),"\n",(0,n.jsx)(e.p,{children:"Move to this folder for all other commands."}),"\n",(0,n.jsxs)(e.h3,{id:"3-set-it-up-arrow_up",children:["3. Set it up ","\u2b06\ufe0f"]}),"\n",(0,n.jsxs)(e.p,{children:["Run the following commands to see that ",(0,n.jsx)(e.em,{children:"your local copy"})," has a reference to ",(0,n.jsx)(e.em,{children:"your forked remote repository"})," in GitHub :octocat:"]}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"git remote -v\norigin https://github.com/Your_Username/FOSSologyUI.git (fetch)\norigin https://github.com/Your_Username/FOSSologyUI.git (push)\n"})}),"\n",(0,n.jsxs)(e.p,{children:["Now, add a reference to the original ",(0,n.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI",children:"FOSSologyUI"})," repository using"]}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"git remote add upstream https://github.com/fossology/FOSSologyUI.git\n"})}),"\n",(0,n.jsxs)(e.blockquote,{children:["\n",(0,n.jsxs)(e.p,{children:["This adds a new remote named ",(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.em,{children:"upstream"})}),"."]}),"\n"]}),"\n",(0,n.jsx)(e.p,{children:"See the changes using"}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"git remote -v\norigin https://github.com/Your_Username/FOSSologyUI.git (fetch)\norigin https://github.com/Your_Username/FOSSologyUI.git (push)\nupstream https://github.com/fossology/FOSSologyUI.git (fetch)\nupstream https://github.com/fossology/FOSSologyUI.git (push)\n"})}),"\n",(0,n.jsxs)(e.h3,{id:"4-run-it-checkered_flag",children:["4. Run it ","\ud83c\udfc1"]}),"\n",(0,n.jsx)(e.p,{children:"Using Yarn (preferable)"}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"# To install all the dependencies\nyarn install\n\n# To start the application\nyarn start\n"})}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:"OR"})}),"\n",(0,n.jsx)(e.p,{children:"using NPM"}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"# To install all the dependencies\nnpm install\n\n# To start the application\nnpm start\n"})}),"\n",(0,n.jsxs)(e.p,{children:["The React application will start on port 3000.\nGo to: ",(0,n.jsx)(e.a,{href:"http://localhost:3000",children:"http://localhost:3000"})]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:"OR"})}),"\n",(0,n.jsx)(e.p,{children:"using Docker"}),"\n",(0,n.jsx)(e.p,{children:"FOSSology comes with a Dockerfile allowing the containerized execution."}),"\n",(0,n.jsx)(e.p,{children:"Run the following commands inside the project directory."}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:'docker build \\\n-t fossologyui:react1.0 \\\n--build-arg REACT_APP_SERVER_URL="localhost/repo/api/v1" \\\n--build-arg REACT_APP_HTTPS="false" .\n'})}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-sh",children:"docker run -p 3000:3000 fossologyui:react1.0\n"})}),"\n",(0,n.jsx)(e.p,{children:"The UI can then be accessed at http://IP_OF_DOCKER_HOST:3000/, user fossy password fossy."})]})}function h(A={}){const{wrapper:e}={...(0,o.a)(),...A.components};return e?(0,n.jsx)(e,{...A,children:(0,n.jsx)(a,{...A})}):a(A)}},10936:(A,e,s)=>{s.d(e,{Z:()=>n});const n=s.p+"assets/images/CorsSetup-51d5913c490a7078e954b9baba674f72.png"},80406:(A,e,s)=>{s.d(e,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwcIBwoICAoPCggKDxINCgoNEhQQEBIQEBQRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBCwwMFRMVIhgYIhQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/CABEIAHQC6QMBEQACEQEDEQH/xAAbAAEAAgMBAQAAAAAAAAAAAAAAAwUBAgQGB//aAAgBAQAAAAD7MAAAAAAAAAAwwAAAGWQAAAAAAAAAAa8vNgAAANurpyAAAAAAAAAAEVfYYAAADNdZ7gDTUAAAZAka6AADINK+35gADWQG0tNayACLcAAA122CORFuAAaSg5uG35JwAEHWCCemtZABDu5/PPQz1MM9tpzdnFL0BrvtSdWLKORFsVizj8/Y72AaTYrILaXm4bfinqfMPT+f5Pf5z5n0myDt08RcbeggnprWQAQ7PA36g995bksq7ozr08l7t5r18uN80PHn1UciLKo8a9lY+d6uHSaP1rWak4Z7Xt5uG34Z3yh9X+VXtbwt9Pq20HdB879L576PBPTWsgAg2ee5nR6Khm2r+jSDs6JLCKViTND1LWORDk+fvoEND0xQyd1oxNHwcNz0c3Db187yz1Phvc+G4bKTg95JBYQ+FtZPTwT01rIAIMnNjqAAGJdgjkQmNW2QDE4Obht66ZVrQAQ2IIJ6a1kAEGoAABiXIYlRRgACUEXDb1mQAEfeDXpprWQAAAAAAAAAAIq23AAAAprWQAAAAAAAAAAI6+bAAAAZhsdwAAAAAAAAAAxDDgAAAMzy5AAAAAAAAAAAwAAABkAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oACAECEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8QAMxAAAQQBAwMDAgUDBAMAAAAAAwABAgQFERMUBhASFTIzBzQgJDA1YBYXQCEiI0MxUHD/2gAIAQEAAQgA/wDfasvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJlq38Dk+jI1hop7zM657Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnso3md0E7STPq38CM+jIbtO6OEuLVXEqriVVxKq4lVcSquJVXEqriVVxKq4lVcSquJVXEqriVVxKq4lVcSquJVXEqriVVxKq4lVcSquLWb/wKelgsWG/+n6cyeL+LbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VOQrM7uxCOzO3mReZF5kXmReZFuOzs0+05tBtX3CrcKtwq3CrcKtwq3CrcKtwq3CrcKtwq3CrcKtwqYs/LxXmReZF5kXmReZF5kRJNKLuwP3EXaVqTylEO/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aRLdgcHnPdsrdsrdsrdsrdsrdsoZ/OTwkh/dmQvb+nH5if4xPjkh/HH8RvjfuT5R/4DfP+MnvIgfuIu1H7WC1Wq1Wq1Wq1Wq1Wq1Wq1WqvP+Vn+Mv3IOw/uzIXt/Tj8xO969Wogc9j17N5Ccmxvrubx84tkqN+teAx68tfF/HCZg2QmcR6PUJLOWelKzlzwzIcaHVkcrBAQz4vIwyNZ7ENWWXvToUZ2R0bL2aYbE/wk9kkP449jdT14TJtWs3Tr0xWlj80K4eVYiN8cu5PlH+DqDIcLHzePT+Q5uPg8lYOOuAhyDzWfts56WGzDZGJIEx+WHesWAR1btq3dvn7O7RZ5Pjc5XyNkoAn6mrjIRhVrIbQIWAonvIgfuIu1J/y0FquqfUX6fvNjOnCYSfUFN+k+oyYSHUFx+rOlvUW6fotk+r+tsthc5WxOO/q36iIcpOOMpxnGTax1XXHVVnpujWs1RT8xwm+q1V1/wAtPsUowimYv908c0mPLP8AWVDDvUELprq+l1BOxXgi/cg7D+7Mhe39NvmJ3zWQNeuzeeVtkwuOq16WKtkzWOtV7uFyBqN2EhqRPS+obUkAT1K2LvrDty87fvPYFj5lPK9jGlewNoVjAxhUxdnKRx+EllKU7x8iG6Dpwgbs8O0sHHIEwNgtjFAIXLQybg3MdWzPUVmw1cNUZxgjGwp+ySH8cU7szavlgljjCwxEqxD4/F3sc9m3Z6jolKjfHLuX5B984DKuPeoHs2Tuz2AWbIHd6+DBlWHvX7leNqqWvIIepcTDaDjL1XJvZql6eoCnk7LvcFj53TyyWCsmniskGeBxhbwh2C9o/P26iuwHENGWHtUY5+ywbx6tURcPicRSlRx4q00T3kQP3EXam/5aC1WqpPd+nGdIO1de79R86MdXVfUMlwfXmJJQo5f6mzvVoXOpyW+petx9LPmcdL6f5rG3MVnql/I/UqxjafX2FHgukcVjBY+8/XfU4q9kcIDHEY9Vcf8ALT7XGqyqGjc+oFe+LAwHi67Ye1TpXcP0OSwLrXNAzaL9yDsP7syF7f0/+4nfqLByO73alPN0D040svczdAFOVLEdO4OQHa7bXUmKtXZALUyOLKXBiphwuNNVxhAmxlPN0oFqDwmMu16NytZxGPyEKtjG3K4eo6NclAFnF5B8FKrKVOy/T/DbB1j1MaIFhDrVxlIaHafskh/HHtLpuxCJa9U+CHKiCrWoYcobb3rqN8cu5fkH31ZlGtbyd0060q1vGXQzs6s6u1mtVS13rf1JjR8WGGxlwdw2Rv0KWUo5U7tjaeaxpDBFicXkK1fJBN09Ts06Dhs9ofP2IABXZy1sKKvkj3oh6ZuAnOYaNc1auwjonvIgfuIu1R/y8FqtV9QGe5ho4Wv9P2enhpYWxqupencze64xGVq6rqjpvOB6iD1R09LB9WdV5mlaz7dP5f8AuQ+bX1HwWVzeNqAxnUnR+UBksZmumK5CEAMhdVbf8vPtcqhuVD1Dv9NcnKrHESzPQ8bJsfcw3TPRz4e9ay19F+5B2H92ZC9v6f8A3EWq1Wqs42hafyPWxlCq/kDVarVarVarXtqtVqtVqtVqtVP2SQ/jj+I3xy7m+Qa1WqkzSi8XEIQRsMJRCMNxmizRi0W1Wq1Wq1Wq1Wq1UPn/ABk95ED9xF2qv/wQWq1WZwz5GVaxXw2GfHSs2LGq1Wq1Wq1Wq1Wq1Vp/+Cf4y/cg7D+7Mhe39MmsCPJ92C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgpFg8XZQKNoRZ94a3hreGt4a3hqc2I3hDsaL/7ZtuwW7BbsFuwW7BbsFuwW7BbsFuwW7BbsFuwW7BbsFAkN15LeGt4a3hreGt4a3hqer+U3B+4i7Rlx22i8oK5QVygrlBXKCuUFcoK5QVygrlBXKCuUFcoK5QUewKYpRjzKy5lZcysuZWXMrLmVlGW8eE4of3ZkL2/wI3tQP3EX+UP7syF7f4EVtWX+gbMDSfKgZerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwE2VA6DDyNMjQbRv4E7aqYWknqRXDiuHFcOK4cVw4rhxXDiuHFcOK4cVw4rhxXDiuHFcOK4cVw4rhxXDiuHFcOK4cVw4pqkWUBNFM2n/wBB/8QASxAAAgEBAwYJCAcECAcAAAAAAQIDAAQREhATISKisQUxUWFikZKh0RQjMkFCUrLSIDAzU3FygkBDYMEGJERjcHOB8BUWJTSjs8L/2gAIAQEACT8A/wAHDRo0aNGjRo0aNGjRo0aNGjRo0aNGjR/gUBlN94OkeiahTsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqFOyPCtADsABzH6wFm47hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj0Dj1hUeg6eMVH3io+8VH3io+8VH3ilK3+vjGXTfoAHGaj7xUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUetdfdfUfeKj7xUfeKj7xUfeKj7xWi7jBrpfC2SIyYTcWvCi/8TVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVnuUcZxjwqDbFQbYqDbFQbYqDbFQbYpSjgX3H1jmyfeN8R+s6O79m5DurkG76XNvy9Ld+we5/P6fNurpfC2Tn3n6/m3j6fT3ZPvG+I/WdHdla5RoAGlmPuqKs4VF0YrgxH5nfzdWcOjaMVwUn8rp5umvXiZToZT7rCrsV2i/ivqNY5YbtC3+u8Nx+7dUaiEs6xuL7zhvK36btIWkVlcKZGN94vvZrrj93kF4jVnI5cIxUhjAYphJv4gD/PIodlKgK3FpN3qoBWlQMVHFeeT6XIa5BuyWeWazxNhktCDUBq+QT/Yoo1mP4dH2qiks1qUYs1KLiR0cnNvy9Ld9A3TS+bj5Rf6TfpWjfNF5uTlN3ot+pchuSNSzXcgqxIbMCcJbSTdz40xfoWo81aYftE9XJeL/hqMobObixIN+kr/APP0vc/nkNwGkk8lIwEYLBzdcwvw8VWeWaGE4ZZ0GqD/AL96mxRSC9Tk5t1dL4Wyc+85Mflub83m/tLrxnc1/e5nOZvp08rWIQSHhnEZTHpA8lznlH9qzwf0PYzlPKtiMEZ4GwmUR6AfKs35P/as8U9P2M3WPy3N+czn2l15zWd/vczm8506scVqe0wo6B8WMu8kkQRcDL92tf0cHZk+ehhYgFhyG7TRBB4iDeMkMc7TSmJhITcAFLewRyVoLKCR+Iy828ZGCRRqXkc6AFUYmY/gK4Ntg4JaTNLwiU82T/v2cec6FQy8IWy3LjstmswxMyHik/K3satQy2O32T/uLJOLnAvw3j9Wq2Tp7sn3jfEfrObdlBRIyUjjPsgH19NvaoBS4IMl191wBZtPtOzUAxQACS66+8Eq2j2kZaBdJCEkjHtAn1dNfZyaI5onkX/Vc9/7I2WtGKdjIeYlV+BHrSsZKIfxOBf/ABx1bXtNrJObWzgkA8l7rh7NSORZyXjIOnQhYIb79SixmQOioTqewynDy4qtDm1SFs0SdF66NfQT6Xu04klR1CuCWvXEt2IsFqaRrQkYaNbxgVAdCAXX+jTFpNZSx4zhYqL/APSpsEqaTFhVgw5satr1MTKTdhzcYuu48Wpq4alz03tyXBRfzKoXVychrkG6tA9dLB5EVZrTgIJ0XYsF2p6A1qiMgsZOKAm9iQwZttKs5szFblRjexW58TNxcrZObfl6W7LO4wjXgW4Ej3kN2K/o1K8pXixsWu7VSvEW48DFb+zU7nENSBriQPec3Yr+jRuEqlb+S/10i2izKSVUaw0m/QNSWrMLLa3VhKyAKzAm59bDiD4j7VM48lfzdx49Zl19GtxVbXmlLERxWcE4dJ1L3XBq07MsMZzYbjGJXvGxU7LDZ5b44hpvYYXZjl9z+eSTMpaj56bTqxD0wLvaf0acCCVFjs9wNxuCao7NQZy02jEJEUlguIYXZ2YnWw9mjidQS5HFexxG7ryc26ul8LZOfecqG0cB8IFR5So1rkxYG/zYs42ci/eexSGz8B8Hlh5Sw1rnw42/zZc2ubi/d+3kjEttSGA2aNvRaQTzZtW1k9JunXBNmjsjSotokW69YywErL/Wm0qnRq0PZ+DIFDTiM3Yjm/KHbkZsLLEmL0PTq0yvYbWxW0WeVgbwhTOK2BUVsSSeb1PNvVqayG0xokkwvOGPydHlwgEaWRcNStMkVpc5xgATjEkh0D81TtZuCrFHjhsYYq8oXCrXlfbk9KT3Ivs/vKULGgCooFwAGgAZObeMmDyRkZZ84QEwMML4y2jDhqOy/wDJ8RjeQWUjO3mQ4sDa8WbzrrrRr9p6dJZf+NrYUHBS2phnUjwHNo6qc7gUM+PB06jw/wBIJUDs8ZGZzXm2wxqPeVoXXW9Dp5OnuyfeN8R+s5t2Vb5f3sY426a9Koyc3cA5BPFoF+HXR1qMjOXgvcRx6Ddi13dqW6X9zGeNem3SyJjkUMji9V1eNfSK9KlxTwiMqt4F7DVfSdX2noZu0TFy2kEi8YF0rf8AmqyxgyMf60zC4AjD6tZveWo820wIRsSsDepT2GaoRHZpFciYMCcTYVA1T+qoFdGLYJgRoxcZVsS3frp2tNsdldsT33aRqq0h9FQKT+s5kJgvHpcmK/DS4JVLXreDxsSNKkjJGqyy3ZxwNJuy8hrkG7JbmisUxJeErfdfxjFiFTPA9mN8Uo0m86WxgYfSarQbVasOBGuwhRzZObfl6W76EZcyOzE8SjEb9ZuIVGUMbqwPGpwm/VbiORiucW4MPUeMHrqzpaI1JwOTfx6feRsP5quW0SggRrcbrzpJu/Lq1CHstpc4psQ0LezBsN9/tVZUkMhGG0swuA97jxYehUWtOhETBlIYgOvvauLH7VJgkMjNhvB0EL7pbky+7/PJGrkcRZQbuumUiUXJFgACEXaytf0fdrhNo3kN7ssdxJ49PnKnNpkBJMrC4m8/i2Tm3V0vhbJz7zliM/CXCUirY4xdoMLLPNIzuVWNUiVlxdOojBwlwbIy2yM3aTMzTwyK6FlkV4mVcXQyWfOWCyiATzY41w5uaSV9R3WRsKMvopkVZrWoC2izOQMVy5rFrMisjQ6jLjx+5VlTg/g2xHEIQwJbSGdVXFI+KXAis7YNSrP/ANMKYfKMacfk+Z+zx537TV+zqDPyxTF3XGiXLgZb75WQcdWdRbLMqJPZ1ZI182uFG12jRlaPzEut6FRmGVlBeEkMUYjWQshZGw9HJzbxkGKC0RtFKvFergo3ca4flPACvjFkzQx3YseDOY+XW9zHr5mra3Bdv4NhFms8qrnFMSgqkbqSvvtrbFW1uEeF7WMMloZcAC6pKqt7e4nYydPdk+8b4j9ZzbvoQI7e9dc3aW5qgRG9TXXt2mvb9h5DXIN30ubfl592XSCLj+BpAkY4lUXCkDxnjVheK0AC4fgPqvd/n9Pm3V0vhbJz7zltLWLhCxMz2W1IofDjGCVHifVkjkWrS1t4QtrK9qtTqExYBgiRIk1Y441+r5t4+n092T7xviP1g1Wu08l1HfR30d9HfR30d9HfR30d9HfR30d9HfR30d9HfR30d9HfR30d9HjFHSAOWm7jTdxpu403cabuNab+M+oZRfhvvH40aO+jvo76O+jvo76O+jvo76O+jvo76O+jvo6MN3fTdxpu403cabuNN3Gj3Ghdi4h+FdL4WyAgKTc1xuI46buNN3Gm7jTdxpu403cabuNN3Gm7jTdxpu403cabuNN3GmvJu9R5afuPhT9x8KfuPhT9x8KfuPhT9x8KBEcYOsRdeTo0ZPvG+I/wJ0vhb9q+8b4j/AgJC33gcekEVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qFwdiwv5zf/AooUKFChQoUKFChQoUKFChQoUKFChQ/xD//xAAUEQEAAAAAAAAAAAAAAAAAAACg/9oACAECAQE/ADBf/8QAFBEBAAAAAAAAAAAAAAAAAAAAoP/aAAgBAwEBPwAwX//Z"},11151:(A,e,s)=>{s.d(e,{Z:()=>l,a:()=>i});var n=s(67294);const o={},t=n.createContext(o);function i(A){const e=n.useContext(t);return n.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function l(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(o):A.components||o:i(A.components),n.createElement(t.Provider,{value:e},A.children)}}}]); \ No newline at end of file diff --git a/assets/js/1b7c4551.22d6edd6.js b/assets/js/1b7c4551.22d6edd6.js new file mode 100644 index 0000000000..dafbe8994e --- /dev/null +++ b/assets/js/1b7c4551.22d6edd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5944],{97290:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>l,frontMatter:()=>i,metadata:()=>n,toc:()=>h});var o=t(85893),a=t(11151);const i={title:"Week 9",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},r=void 0,n={id:"2023/rest/updates/samuel/2023-07-27",title:"Week 9",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-07-27.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-07-27",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-07-27.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 9",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 8",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-20"},next:{title:"Week 10",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-03"}},d={},h=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Get the PHP-Info for the dashboard overview API <code>/overview/info/php</code>",id:"1-get-the-php-info-for-the-dashboard-overview-api-overviewinfophp",level:4},{value:"2. Get the server jobs for the Admin Dashboard API <code>/jobs/dashboard</code>",id:"2-get-the-server-jobs-for-the-admin-dashboard-api-jobsdashboard",level:4},{value:"3. Get the summary statistics for all jobs API <code>/jobs/dashboard/statistics</code>",id:"3-get-the-summary-statistics-for-all-jobs-api-jobsdashboardstatistics",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function c(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["Added the REST API to get the PHP-Info for the dashboard overview: ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2535",children:"#2535"})]}),"\n",(0,o.jsxs)(s.li,{children:["Added the REST API to get the server jobs for the Admin Dashboard: ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2536",children:"#2536"})]}),"\n",(0,o.jsxs)(s.li,{children:["Added the REST API to get the summary statistics for all jobs: ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2537",children:"#2537"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,o.jsxs)(s.h4,{id:"1-get-the-php-info-for-the-dashboard-overview-api-overviewinfophp",children:["1. Get the PHP-Info for the dashboard overview API ",(0,o.jsx)(s.code,{children:"/overview/info/php"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"get-php-info",src:t(14689).Z+"",width:"1487",height:"670"})}),"\n",(0,o.jsxs)(s.h4,{id:"2-get-the-server-jobs-for-the-admin-dashboard-api-jobsdashboard",children:["2. Get the server jobs for the Admin Dashboard API ",(0,o.jsx)(s.code,{children:"/jobs/dashboard"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"get-server-jobs",src:t(41e3).Z+"",width:"1486",height:"688"})}),"\n",(0,o.jsxs)(s.h4,{id:"3-get-the-summary-statistics-for-all-jobs-api-jobsdashboardstatistics",children:["3. Get the summary statistics for all jobs API ",(0,o.jsx)(s.code,{children:"/jobs/dashboard/statistics"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"get-summary-statistics",src:t(6878).Z+"",width:"1513",height:"690"})}),"\n",(0,o.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"Add the REST API to retrieve all the scheduler options for a given operation."}),"\n",(0,o.jsx)(s.li,{children:"Add the REST API to run the scheduler based on the given operation."}),"\n",(0,o.jsx)(s.li,{children:"Add the REST API to get removable folder contents."}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},41e3:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/get_all_server_jobs-066859e86e6afc50974756f6b7598a46.png"},6878:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/get_jobs_summary_stat-a23f131146a7589448f34a893f966cba.png"},14689:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/get_php_info-bbe9e9fe8ed55c027824d6495ce92cb2.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>n,a:()=>r});var o=t(67294);const a={},i=o.createContext(a);function r(e){const s=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function n(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1bf58ced.3e6adf8f.js b/assets/js/1bf58ced.3e6adf8f.js new file mode 100644 index 0000000000..8725acafb2 --- /dev/null +++ b/assets/js/1bf58ced.3e6adf8f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[838],{93622:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=n(85893),s=n(11151);const r={title:"Week12",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},i=void 0,c={id:"2022/project/updates/2022-08-25",title:"Week12",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-08-25.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-08-25",permalink:"/gsoc/docs/2022/project/updates/2022-08-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-08-25.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week12",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week11",permalink:"/gsoc/docs/2022/project/updates/2022-08-18"},next:{title:"Week13",permalink:"/gsoc/docs/2022/project/updates/2022-09-01"}},a={},l=[{value:"Meeting 13",id:"meeting-13",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"meeting-13",children:"Meeting 13"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.em,{children:"(August 25th, 2022)"})}),"\n",(0,o.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,o.jsx)(t.p,{children:"There is no attendees list available."}),"\n",(0,o.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,o.jsx)(t.p,{children:"I have implemeted the function of BrowseProject.\nAlso, I have fixed the error in project deletion. For now, the whole progress of project - create, edit, upload and delete has worked."}),"\n",(0,o.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Since the project manage function has been finished. I will try to add a new report generation method to Fossology. In special, when user generates report in a folder view, the report will show every upload's license one by one. However, when user generates report in a project view, the report will just show every license existing in the project once."}),"\n",(0,o.jsx)(t.li,{children:"Before implementing the report part, I will try to push my codes about project manage to my github repo and let the mentors check it."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>i});var o=n(67294);const s={},r=o.createContext(s);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1ca4eec1.dd7fb21a.js b/assets/js/1ca4eec1.dd7fb21a.js new file mode 100644 index 0000000000..fe15c13834 --- /dev/null +++ b/assets/js/1ca4eec1.dd7fb21a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9130],{94202:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var s=t(85893),i=t(11151);const o={title:"Community Bonding",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},r=void 0,l={id:"2022/project/updates/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-06-02.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-06-02",permalink:"/gsoc/docs/2022/project/updates/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Community Bonding",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Introduction",permalink:"/gsoc/docs/2022/project/"},next:{title:"Week1",permalink:"/gsoc/docs/2022/project/updates/2022-06-09"}},c={},a=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 2nd, 2022)"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Katharina"}),"\n",(0,s.jsx)(n.li,{children:"Michael"}),"\n",(0,s.jsx)(n.li,{children:"Nicolas"}),"\n",(0,s.jsx)(n.li,{children:"Anupam"}),"\n",(0,s.jsx)(n.li,{children:"Gaurav"}),"\n",(0,s.jsx)(n.li,{children:"Shaheem"}),"\n",(0,s.jsx)(n.li,{children:"Kaushalendra"}),"\n",(0,s.jsx)(n.li,{children:"Ayush"}),"\n",(0,s.jsx)(n.li,{children:"Shruthi"}),"\n",(0,s.jsx)(n.li,{children:"Avinal"}),"\n",(0,s.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,s.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(n.li,{children:"Thanvi Lahari Pendyala"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Krishna Mahato"}),"\n",(0,s.jsx)(n.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(n.p,{children:"Discussion about the progress and the time of next weekly discussion"}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Was able to set up project. However, I didn't do much as i was busy with final exams."}),"\n",(0,s.jsx)(n.li,{children:"Will begin my work the next week"}),"\n",(0,s.jsx)(n.li,{children:"The time of weekly discussion is arranged on every thursday 5:00 pm to 5:30pm for me(in China), 2:00 pm to 2:30pm in India. # , 11:00 am to 11:30 am in Europe."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var s=t(67294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1d690242.ce74dbc4.js b/assets/js/1d690242.ce74dbc4.js new file mode 100644 index 0000000000..40a7200015 --- /dev/null +++ b/assets/js/1d690242.ce74dbc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1375],{64555:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>h,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var t=s(85893),i=s(11151);const r={sidebar_position:3,title:"Week 3"},h=void 0,l={id:"2022/minutes/16-06-2022",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/minutes/16-06-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/16-06-2022",permalink:"/gsoc/docs/2022/minutes/16-06-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/16-06-2022.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Week 3"},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/minutes/09-06-2022"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/minutes/23-06-2022"}},o={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 16-06-2022."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Discussion on UI. Proposes to show new UI pages."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Focusing on Modal training. Accuracy improved with some modifications. Atarashi needs to import modal as binary."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Just set up done was reading the documents, discussed how to add the project concept to FOSSology. Mentors need to share the requirement document with feng."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on comments by mentors. Noted that we should not add author to copyright so making the changes."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Created the basic UI for contribute back to clearly defined. I have added the fields like name, provider etc.. to post back to clearly defined."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Wanted to work on pages like create user, edit user, Rest does not exist so will create pages first and work on rest API."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Stared working on all jobs page finished it and created the PR. Mentors need to review. Looking forward to work on my recent jobs."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"I prefer to work on backend. Explored the flow just going to start working. Have some questions will post it in slack channel."}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>h});var t=s(67294);const i={},r=t.createContext(i);function h(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1dace55c.31729c4f.js b/assets/js/1dace55c.31729c4f.js new file mode 100644 index 0000000000..dfb6189746 --- /dev/null +++ b/assets/js/1dace55c.31729c4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6956],{55895:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var t=n(85893),i=n(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2022/project/"},c=void 0,l={id:"2022/project/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2022/project/index.md",sourceDirName:"2022/project",slug:"/2022/project/",permalink:"/gsoc/docs/2022/project/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2022/project/"},sidebar:"2022",previous:{title:"Week 12",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-30"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/project/updates/2022-06-02"}},r={},d=[{value:"Author",id:"author",level:3},{value:"Contact info",id:"contact-info",level:3},{value:"Code link",id:"code-link",level:3},{value:"Introduce concept of project in FOSSology",id:"introduce-concept-of-project-in-fossology",level:2}];function a(e){const o={a:"a",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h3,{id:"author",children:"Author"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:(0,t.jsx)(o.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n"]}),"\n",(0,t.jsx)(o.h3,{id:"contact-info",children:"Contact info"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:(0,t.jsx)(o.a,{href:"mailto:",children:"Email"})}),"\n",(0,t.jsx)(o.li,{children:(0,t.jsx)(o.a,{href:"https://linkedin.com/",children:"LinkedIn"})}),"\n"]}),"\n",(0,t.jsx)(o.h3,{id:"code-link",children:"Code link"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/pull/2315",children:"Pull Request 1"})}),"\n",(0,t.jsx)(o.li,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/pull/2316",children:"Pull Request 2"})}),"\n"]}),"\n",(0,t.jsx)(o.h2,{id:"introduce-concept-of-project-in-fossology",children:"Introduce concept of project in FOSSology"}),"\n",(0,t.jsx)(o.p,{children:"I would like to participate in the project \u201cIntroduce concept of project in\nFOSSology\u201d which can be founded in the idea list. The \u201cproject\u201d is defined by:"}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsx)(o.li,{children:"a project ID (as primary key)"}),"\n",(0,t.jsx)(o.li,{children:"a project name"}),"\n",(0,t.jsx)(o.li,{children:"a root folder in Fossology"}),"\n",(0,t.jsx)(o.li,{children:"one or more Group IDs and associated access."}),"\n",(0,t.jsx)(o.li,{children:"a URL / ID / Free field to link the project to an external tool"}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["The \u201cproject\u201d concept is put by Nicolas Toussaint in the issue\n",(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/issues/1738",children:"#1738"}),". As described, it\ncould be useful in many ways, such as gathering multiple uploads under the same\numbrella, and making bulk changes to all uploads / sub-directories that belong\nto a given project. This project is like a web project. I need to modify both\nback-end logic and front-end pages. And the product of this project will be a\nnew-version website that could support the operations on \u201cproject\u201d level."]})]})}function h(e={}){const{wrapper:o}={...(0,i.a)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,o,n)=>{n.d(o,{Z:()=>l,a:()=>c});var t=n(67294);const i={},s=t.createContext(i);function c(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1e466064.cac4c9fd.js b/assets/js/1e466064.cac4c9fd.js new file mode 100644 index 0000000000..62752b5eb5 --- /dev/null +++ b/assets/js/1e466064.cac4c9fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9132],{94690:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>h,default:()=>o,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=s(85893),t=s(11151);const r={title:"week-10",author:"Aaditya Singh"},h="Meeting 17",a={id:"2024/scheduler/updates/General/2024-07-11",title:"week-10",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/General/2024-07-11.md",sourceDirName:"2024/scheduler/updates/General",slug:"/2024/scheduler/updates/General/2024-07-11",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/General/2024-07-11.md",tags:[],version:"current",frontMatter:{title:"week-10",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-09",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-07-04"},next:{title:"week-04",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31"}},l={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Absent:",id:"absent",level:2},{value:"Discussions:",id:"discussions",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-17",children:"Meeting 17"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July 11, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"absent",children:"Absent:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentors:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Can you provide general updates on the project?"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Contributors:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Completed the Nomos Output, including passing flags in JSON and handling the allowance portion."}),"\n",(0,i.jsx)(n.li,{children:"Paused work on the License part to focus on actions, addressing edge cases."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Developed a mechanism for storing license expressions and worked on parts of the Cyclonex license."}),"\n",(0,i.jsx)(n.li,{children:"Completed the clearing portion and stored it in the clearing event."}),"\n",(0,i.jsx)(n.li,{children:"Began working on user decisions for license expressions, exploring both frontend and backend code."}),"\n",(0,i.jsx)(n.li,{children:"Discovered previous report generation code used for scanning-related expressions and decided to use the clearing license for report generation instead."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on endpoints for the upload job, including populating agent names for each child job."}),"\n",(0,i.jsx)(n.li,{children:"Wrote test cases for this functionality and fixed existing issues."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Completed the SPDX version 03 report for RDX, LDA, and JSON format for the software profile."}),"\n",(0,i.jsx)(n.li,{children:"Integrated versions 02 and 03."}),"\n",(0,i.jsx)(n.li,{children:"Started working on the licensing profile."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Implemented database connections using Go packages, utilizing interface concepts to build notification functionality as an abstraction to encapsulate SQL query statements."}),"\n",(0,i.jsx)(n.li,{children:"Working on handling the queue and integrating a load balancer."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on Semantic Search, using a truncating approach to achieve up to 95% matching accuracy."}),"\n",(0,i.jsx)(n.li,{children:"Need to construct test cases for obligation and acknowledgment functionalities."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>h});var i=s(67294);const t={},r=i.createContext(t);function h(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:h(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1e6a3c02.d8b15641.js b/assets/js/1e6a3c02.d8b15641.js new file mode 100644 index 0000000000..ef8ccc80a9 --- /dev/null +++ b/assets/js/1e6a3c02.d8b15641.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1570],{88016:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>a});var i=s(85893),l=s(11151);const t={title:"Week 5",author:"Aman Dwivedi"},d=void 0,o={id:"2021/ui/updates/aman/2021-07-13",title:"Week 5",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-07-13.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-07-13",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 4",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-06"},next:{title:"Week 6",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-20"}},r={},a=[{value:"Screenshots",id:"screenshots",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added create group page under admin dropdown"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added delete user page under admin dropdown"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added schedule analysis page under jobs dropdown"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Removed duplicate Api functions"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Logout user when token is revoked from backend"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added auth gaurd for admin pages (added admin layout)"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added prettier check to GitHub actions"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add storybook initial setup"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Fixed header on small screen size"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Integrated agent preference from local storage"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Updated folder navigation pull request to use ",(0,i.jsx)(n.code,{children:"react-virtualized-tree"})," and\n",(0,i.jsx)(n.code,{children:"array-to-tree"})," library"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Recreated the same design of folder navigation component using external library"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Fixed folder navigation component to be fully expanded on initial page load"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Created installation Guide Wiki to explain the process of installation and contributing to FOSSology UI"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Created Style Guide of the project elaborating the coding style guide and conventions followed. Also explained the tools used to enfore the style guide."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"create group page",src:s(10855).Z+"",width:"1912",height:"939"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"delete user page",src:s(76297).Z+"",width:"1920",height:"937"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"schedule analysis page",src:s(8667).Z+"",width:"1892",height:"922"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"small screen header page",src:s(54624).Z+"",width:"360",height:"440"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"folder navigation page",src:s(52651).Z+"",width:"634",height:"803"})}),"\n",(0,i.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/73",children:"feat(group): add create group page"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/75",children:"fix(service): remove duplicate api functions"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/76",children:"feat(user): add delete user page"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/79",children:"feat(jobs): add schedule analysis page"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/82",children:"fix(auth): logout user when token is revoked"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/84",children:"feat(layout): add admin layout for admin pages"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/87",children:"fix(test): add prettier check to github actions"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/80",children:"feat(storybook): add storybook initial setup"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/86",children:"fix(header): fix header on small screen size"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/92",children:"fix(agents): use agent preference from local storage"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},10855:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/CreateGroup-2b63cb829d0d92683a338206bf06f18f.png"},76297:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/DeleteUser-8342536033f4f074e150ca1cb20a1076.png"},52651:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/FolderNavigation-f73cab5340256a6e6aca7fe466dfabde.png"},54624:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/Header2-275d75eeb018559136a1fadd2844edb0.png"},8667:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/ScheduleAnalysis-686743349e001c1e4bdc49df0fbff3d0.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>d});var i=s(67294);const l={},t=i.createContext(l);function d(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f5250dc.d3aa49a4.js b/assets/js/1f5250dc.d3aa49a4.js new file mode 100644 index 0000000000..dacb85ca8a --- /dev/null +++ b/assets/js/1f5250dc.d3aa49a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3056],{59433:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var i=s(85893),t=s(11151);const r={title:"Week 4",author:"Rajul Jha",tags:["gsoc24","CI"]},c="Week 4",l={id:"2024/ci-scanner/updates/2024-06-27",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-06-27.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-06-27",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-06-27.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 4",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-20"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-04"}},a={},o=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Work Done",id:"work-done",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-4",children:"Week 4"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 21, 2024 - June 27, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 26, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Talked about how the differential scans need to work in detail, like:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Should they be triggered on ",(0,i.jsx)(n.code,{children:"release"})," only? As it makes sense to scan between two different versions when a new release it being published."]}),"\n",(0,i.jsxs)(n.li,{children:["Or should the user be able to scan between two different versions via any sort of trigger, like on ",(0,i.jsx)(n.code,{children:"push"})," or ",(0,i.jsx)(n.code,{children:"commit"})," as well?"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Talked about the current implementation of custom keyword functionality, and how it can be\nextrapolated similarly for different scanners also."}),"\n",(0,i.jsx)(n.li,{children:"We talked about fleshing out the design and implementation details first, then work on improving speed."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"work-done",children:"Work Done"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Completed custom keyword functionality. ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2769",children:"(#PR2769)"})," The details are as follows:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"User can now setup a GH Action or Gitlab CI pipeline and pass environment variables to scan for custom keywords however they want. This gives them immense control over what they wan't to scan."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Added some validity checks for the ",(0,i.jsx)(n.code,{children:"keyword.conf"})," file as during testing, I found out that the scanner breaks if an invalid file is passed to it."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Set up a test docker image ",(0,i.jsxs)(n.a,{href:"https://hub.docker.com/layers/rjknightmare/fo-ci-test/latest/images/sha256-ac72768b8c4383a4aca05a50cd53ae427db9645b42619ad82b53e38b3b876b38?context=repo",children:["(rjknightmare/fo-ci-test",":latest",")"]})," for testing.\nHere are the test results for the same:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"GH Actions:"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Screenshot",src:s(42672).Z+"",width:"1566",height:"878"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gitlab CI:"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Screenshot",src:s(63053).Z+"",width:"1916",height:"860"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Set up qemu emulator for the Github Actions environment to provide multiple architecture support, which also reduced the time for action execution significantly."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Screenshot",src:s(49565).Z+"",width:"1538",height:"868"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Studied about how we can implement differential (between two different versions) scans and explored these use cases:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Use Case I: On ",(0,i.jsx)(n.code,{children:"release"})]}),"\n",(0,i.jsxs)(n.li,{children:["Use Case II: On ",(0,i.jsx)(n.code,{children:"push"}),", ",(0,i.jsx)(n.code,{children:"commit"})," or any other event trigger."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Study further on above use cases and work out a plan for the same."}),"\n",(0,i.jsx)(n.li,{children:"Explore the GH Actions and Gitlab API's and use the best endpoints for our use cases."}),"\n",(0,i.jsx)(n.li,{children:"Then start working on implementation of differential scans."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},42672:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/GH_Actions_1-fcebcbf18c5abccdf78cc789294d79f0.png"},49565:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/GH_Actions_2-46d1ef2434b48f9c6bce09c634f572e7.png"},63053:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/Gitlab_1-1eac9e7caca7231123464596b00b13df.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>c});var i=s(67294);const t={},r=i.createContext(t);function c(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f716dd2.5c610a16.js b/assets/js/1f716dd2.5c610a16.js new file mode 100644 index 0000000000..3ad1daf5b8 --- /dev/null +++ b/assets/js/1f716dd2.5c610a16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7301],{8916:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var t=i(85893),a=i(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2024/pipeline/"},r=void 0,s={id:"2024/pipeline/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/pipeline/index.md",sourceDirName:"2024/pipeline",slug:"/2024/pipeline/",permalink:"/gsoc/docs/2024/pipeline/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/pipeline/"},sidebar:"2024",previous:{title:"Week 8",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-25"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/pipeline/updates/2024-05-07"}},l={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,t.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:gautamm.shreya@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://linkedin.com/in/shreyagautamm/",children:"LinkedIn"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,t.jsx)(n.p,{children:"Data Pipelining of Safaa"}),"\n",(0,t.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,t.jsx)(n.p,{children:"Currently, Safaa provides a strong framework designed to deal with copyright notices particularly focusing on the identification and reduction of false positives, as well as streamlining the decluttering procedure to remove unnecessary content. Key features of Safaa include:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Model Flexibility"}),"\n",(0,t.jsx)(n.li,{children:"Integration with scikit-learn"}),"\n",(0,t.jsx)(n.li,{children:"spaCy Integration"}),"\n",(0,t.jsx)(n.li,{children:"Preprocessing Tools\nDespite these strengths, the current process of data curation and handling is manual, which can be time-consuming and prone to human error. To address this, I am proposing a data pipeline project aimed at automating the entire workflow. This project will focus on developing an automated data pipeline that will streamline the collection, preprocessing, and preparation of data for model training. By automating these tasks, the project aims to enhance efficiency, scalability, and accuracy in Safaa's operations."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Additionally, the project will involve the creation of a dedicated library for Named Entity Recognition (NER) and Part-of-Speech (POS) tagging. This enhancement will further optimize the process of copyright notice analysis, making Safaa even more effective at reducing false positives."}),"\n",(0,t.jsx)(n.p,{children:"Ultimately, the project aims to refine and fine-tune Safaa's models post-deployment, using ongoing research and development to continuously improve its performance and capabilities in false positive detection and content management."}),"\n",(0,t.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,t.jsx)(n.p,{children:"Here are the key tasks planned for the project:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Data Pipeline Focus:"})," This pipeline will streamline the process of collecting, preprocessing, and preparing data for model training, enhancing efficiency and scalability in Safaa's operations. The project will commence with comprehensive data collection and ingestion from diverse sources. Then there will be robust data cleaning to rectify missing values and outliers, normalising values, and adding supplementary features or external data sources. EDA will be carried out to gain insights into data distribution, guiding further preprocessing strategies for optimal model training. Subsequently. The model training, validating and testing will be carried out."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"NER-POS Tagging Library:"})," I propose the development of a dedicated library for Named Entity Recognition (NER) and Part-of-Speech (POS) tagging, which will serve as a crucial component in Safaa's data pipeline. This library will leverage the capabilities of LLMs for accurately identifying and categorising entities within text data. By integrating this library into Safaa's data pipeline, I aim to automate and optimise the NER and POS tagging process, thereby enhancing the efficiency and effectiveness of copyright notice analysis."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Fine-tune the Model:"})," Post-deployment, I plan to fine-tune the model to further improve its performance. Rigorous model validation and testing techniques are pivotal. I plan on using hyperparameter tuning to fine-tune the model. Leveraging LLMs, I intend to conduct extensive research to enhance Safaa's capabilities and refine its false positive detection mechanisms. Once optimised, the models will be packaged and deployed into production environments. Furthermore, the ongoing model performance will be monitored and maintained including regular performance assessments. Periodically, the model will be retrained with new data."]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>s,a:()=>r});var t=i(67294);const a={},o=t.createContext(a);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1fe5bd65.74d0b244.js b/assets/js/1fe5bd65.74d0b244.js new file mode 100644 index 0000000000..9ea6b77c5e --- /dev/null +++ b/assets/js/1fe5bd65.74d0b244.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5473],{48673:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=s(85893),n=s(11151);const o={title:"Week 10",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,i={id:"2022/atarashi/updates/2022-08-16",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-08-16.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-08-16",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-08-16.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 10",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 9",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-09"},next:{title:"Week 11",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-23"}},c={},l=[{value:"Meeting 12",id:"meeting-12",level:2},{value:"Updates",id:"updates",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"meeting-12",children:"Meeting 12"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.em,{children:"(August 18th, 2022)"})}),"\n",(0,a.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,a.jsx)(t.h3,{id:"updates",children:"Updates"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Started working on transformer for implementation on ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"minerva dataset"})]}),"\n",(0,a.jsx)(t.li,{children:"Removed few errors and warnings that I was getting on previously trained models."}),"\n",(0,a.jsx)(t.li,{children:"Made few changes on my final report of the gsoc 2022 project and sync it with the progress of\nmy project."}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Will keep working on some optional part of my project and also keep the ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/gsoc",children:"gsoc"})," page updated."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>i,a:()=>r});var a=s(67294);const n={},o=a.createContext(n);function r(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/202295a4.5dddb9d0.js b/assets/js/202295a4.5dddb9d0.js new file mode 100644 index 0000000000..b43f95379c --- /dev/null +++ b/assets/js/202295a4.5dddb9d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[396],{96759:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var n=s(85893),l=s(11151);const i={sidebar_position:2,title:"Google Summer of Code Proposals 2024"},r=void 0,o={id:"2024/GSoC-projects",title:"Google Summer of Code Proposals 2024",description:"\x3c!--",source:"@site/docs/2024/GSoC-projects.md",sourceDirName:"2024",slug:"/2024/GSoC-projects",permalink:"/gsoc/docs/2024/GSoC-projects",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/GSoC-projects.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Google Summer of Code Proposals 2024"},sidebar:"2024",previous:{title:"GSoC'24 @ FOSSology",permalink:"/gsoc/docs/2024"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/scheduler/"}},d={},h=[{value:"Intro",id:"intro",level:2},{value:"Interested in Application? - Getting Grip",id:"interested-in-application---getting-grip",level:2},{value:"Examples from past programs",id:"examples-from-past-programs",level:2},{value:"Mentors",id:"mentors",level:2},{value:"Proposals so far:",id:"proposals-so-far",level:4},{value:"Topic Proposals",id:"topic-proposals",level:2},{value:"Topic Proposals from 2024",id:"topic-proposals-from-2024",level:2},{value:"Improving FOSSology CI scanner image",id:"improving-fossology-ci-scanner-image",level:3},{value:"Support text phrases and bulk based scanning for MONK a like agent",id:"support-text-phrases-and-bulk-based-scanning-for-monk-a-like-agent",level:3},{value:"SPDX license expression support",id:"spdx-license-expression-support",level:3},{value:"Overhauling scheduler design",id:"overhauling-scheduler-design",level:3},{value:"Debian packaging for Debian repository",id:"debian-packaging-for-debian-repository",level:3},{value:"REST API improvements",id:"rest-api-improvements",level:3},{value:"New Artificial Intelligence based copyright and license scanner agent",id:"new-artificial-intelligence-based-copyright-and-license-scanner-agent",level:3},{value:"Support SPDX 3.0 reports",id:"support-spdx-30-reports",level:3}];function c(e){const t={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Welcome to the main page for all GSoC 2024 related information."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Check ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2663",children:"https://github.com/fossology/fossology/discussions/2663"})]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,n.jsx)(t.p,{children:"We from the fossology project would like to apply for GSoC 2024. Please see two\nmain resources for finding out more FOSSology in general:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://www.fossology.org",children:"https://www.fossology.org"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://fossology.github.io/gsoc/",children:"https://fossology.github.io/gsoc/"})}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["Meetings: Checkout the ",(0,n.jsx)(t.a,{href:"/docs/2024#meetings-table",children:"Meetings table"})]}),"\n",(0,n.jsx)(t.h2,{id:"interested-in-application---getting-grip",children:"Interested in Application? - Getting Grip"}),"\n",(0,n.jsx)(t.p,{children:"If you are interested in an application - great! We encourage your application.\nSo the question is how to get started with the topic, just a few points:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Check ",(0,n.jsx)(t.a,{href:"/gsoc/docs/guidelines/",children:"our guidelines for GSoC"})]}),"\n",(0,n.jsxs)(t.li,{children:["Check ",(0,n.jsx)(t.a,{href:"https://www.fossology.org",children:"https://www.fossology.org"})," and these GitHub pages\n",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki",children:"https://github.com/fossology/fossology/wiki"})]}),"\n",(0,n.jsxs)(t.li,{children:["Maybe check some ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/New-at-FOSSology%2C-You-Could-...",children:"initial intro"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://youtu.be/TZqU5ZALI7U",children:"https://youtu.be/TZqU5ZALI7U"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://fossology.github.io/",children:"https://fossology.github.io/"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Try to install fossology, either using vagrant or docker","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/Install-from-Source",children:"https://github.com/fossology/fossology/wiki/Install-from-Source"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:"Read the proposed topics"}),"\n",(0,n.jsxs)(t.li,{children:["Use the mailing list ",(0,n.jsx)(t.a,{href:"mailto:fossology-devel@fossology.org",children:"fossology-devel@fossology.org"})," or contact proposed mentors\nfor further steps"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://join.slack.com/t/fossology/shared_invite/enQtNzI0OTEzMTk0MjYzLTYyZWQxNDc0N2JiZGU2YmI3YmI1NjE4NDVjOGYxMTVjNGY3Y2MzZmM1OGZmMWI5NTRjMzJlNjExZGU2N2I5NGY",children:"Slack invite link"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2663",children:"GitHub discussion"})}),"\n",(0,n.jsxs)(t.li,{children:["If you are interested in trying to make contributions, see out issues with the\nlabel ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/contribute",children:"good first issue"}),".\nMaybe you could sort out the workflow and make a first pull request."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"examples-from-past-programs",children:"Examples from past programs"}),"\n",(0,n.jsx)(t.p,{children:"In 2020, we were awarded seven slots, please see here what was the result of it:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Ayush and Kaushlendra's work on the\n",(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})," license scanner and\n",(0,n.jsx)(t.a,{href:"https://github.com/fossology/Nirjas",children:"Nirjas"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/hastagAB/GSoC-2020",children:"https://github.com/hastagAB/GSoC-2020"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Kaushl2208/GSoC-2020",children:"https://github.com/Kaushl2208/GSoC-2020"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Darshan's work on Dashboard: ",(0,n.jsx)(t.a,{href:"https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki",children:"https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki"})]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Also - very much fun - There are some YouTube videos created:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Ayush made a YouTube video / interview style of his experience:\n",(0,n.jsx)(t.a,{href:"https://youtu.be/C8f_etew-yc",children:"https://youtu.be/C8f_etew-yc"})]}),"\n",(0,n.jsxs)(t.li,{children:["Hypnos invited Darshan for an interview: ",(0,n.jsx)(t.a,{href:"https://youtu.be/_KbQ83JK7Q0",children:"https://youtu.be/_KbQ83JK7Q0"})]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["In 2021, the GSoC program awarded the fossology project with 7 slots. It was a\nlot bigger and a lot of fun for 2021, a dedicated page has been set up. Please\nsee the GSoC works ",(0,n.jsx)(t.a,{href:"/gsoc/docs/2021",children:"here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["From this page you can also get an idea about the work being carried out: check\nthe weekly reporting, ",(0,n.jsx)(t.a,{href:"../2021/ui",children:"for example for the UI project"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["You can check out our GSoC 2022 projects with 8 slots. The dedicated page can be\nfound ",(0,n.jsx)(t.a,{href:"/gsoc/docs/2022",children:"here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The recent participation in GSoC 2023 also came to an end. You can check out the\nprojects with 5 slots at the dedicated page for ",(0,n.jsx)(t.a,{href:"/gsoc/docs/2023",children:"GSoC 2023"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"mentors",children:"Mentors"}),"\n",(0,n.jsx)(t.p,{children:"Interested in becoming a mentor? Please reach out to us!"}),"\n",(0,n.jsx)(t.h4,{id:"proposals-so-far",children:"Proposals so far:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:"Katharina Ettinger"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"topic-proposals",children:"Topic Proposals"}),"\n",(0,n.jsx)(t.p,{children:"Please reach out to us to add more proposals for GSoC 2024."}),"\n",(0,n.jsxs)(t.p,{children:["Currently, discussion happening on\n",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2663",children:"https://github.com/fossology/fossology/discussions/2663"})]}),"\n",(0,n.jsx)(t.h2,{id:"topic-proposals-from-2024",children:"Topic Proposals from 2024"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#improving-fossology-ci-scanner-image",children:"Improving FOSSology CI scanner image"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#support-text-phrases-and-bulk-based-scanning-for-monk-a-like-agent",children:"Support text phrases and bulk based scanning for MONK a like\nagent"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#spdx-license-expression-support",children:"SPDX license expression support"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#overhauling-scheduler-design",children:"Overhauling scheduler design"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#debian-packaging-for-debian-repository",children:"Debian packaging for Debian\nrepository"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#rest-api-improvements",children:"REST API improvements"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#new-artificial-intelligence-based-copyright-and-license-scanner-agent",children:"New Artificial Intelligence based copyright and license scanner\nagent"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#support-spdx-30-reports",children:"Support SPDX 3.0 reports"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"improving-fossology-ci-scanner-image",children:"Improving FOSSology CI scanner image"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Enhancing current scanner image with new reports and features"]}),"\n",(0,n.jsx)(t.p,{children:"As a fun project, FOSSology started combining scanners in a simple and small\nDocker image which can be run on CI providers. The image is currently capable of\nunderstanding build environment (GitLab/GitHub Actions/Travis) and use their\nAPI's to fetch diff of a branch or scan the complete repo. The capabilities of\nimage include license scanning with Nomos and ojo scanners, copyright and\nkeyword scanning with respective scanners. The image makes use of a Python\nscript to perform all the tasks."}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"The integration with GitHub Actions can be improved by reporting line number\nwhere a license violation is found."}),"\n",(0,n.jsxs)(t.li,{children:["Allowing user to provide a different list of Keywords for scanning (currently\nstored at ",(0,n.jsx)(t.code,{children:"/usr/local/share/fossology/keyword/agent/keyword.conf"}),")."]}),"\n",(0,n.jsxs)(t.li,{children:["Improving on ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/FOSSology-scanners-in-CI#explanation",children:"whitelist format"}),"\nwith feature to provide it from other sources, currently it is read from a\nfile which is expected to be in the root of repo being scanned."]}),"\n",(0,n.jsx)(t.li,{children:"Ability to download a dependency for scan (path provided at pipeline\ntrigger)."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Additionally, the JSON output of nomos needs to be enhanced providing highlight\nand line information in the output."}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Docker, Python"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @shaheemazmalmmd"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"support-text-phrases-and-bulk-based-scanning-for-monk-a-like-agent",children:"Support text phrases and bulk based scanning for MONK a like agent"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Adding text phrases from UI to database and use existing bulk phrases\nand provide ability to scan them using MONK and identify files if the match is\n100%."]}),"\n",(0,n.jsx)(t.p,{children:"FLOW :"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Create a UI Where user can add multiple text phrases associated with license\n(FROM FOSSology License Database)."}),"\n",(0,n.jsx)(t.li,{children:"Use existing bulk phrases table from database."}),"\n",(0,n.jsx)(t.li,{children:"Create a new agent like existing MONK agent which not only identifies the\nmatches but also decides the files."}),"\n",(0,n.jsx)(t.li,{children:"Test cases needs to be provided as well."}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Medium"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"PHP, C++"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @shaheemazmalmmd"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"spdx-license-expression-support",children:"SPDX license expression support"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Support SPDX license expression detection and reporting"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Support SPDX license expressions in FOSSology such as\n",(0,n.jsx)(t.code,{children:"MIT AND (GPL-2.0-only OR BSD-2-Clause)"}),"."]}),"\n",(0,n.jsx)(t.li,{children:"Differentiate SPDX licenses with exceptions. FOSSology currently stores\nlicense exceptions as licenses."}),"\n",(0,n.jsx)(t.li,{children:"Scanning SPDX Expressions with ojo as step 1."}),"\n",(0,n.jsx)(t.li,{children:"UI components to create and see license expressions in file clearing page."}),"\n",(0,n.jsx)(t.li,{children:"Updating reports to export the expressions correctly."}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"PHP, C/C++"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @shaheemazmalmmd"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"overhauling-scheduler-design",children:"Overhauling scheduler design"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Improving FOSSology scheduler or replacing with OTS solution"]}),"\n",(0,n.jsx)(t.p,{children:"The existing scheduler design is causing new issues which need to be addressed.\nMoreover, existing scheduler design is not touched in years."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Concerning points"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"The scheduler is written in C which makes it next to impossible to find cause\nof a failure."}),"\n",(0,n.jsx)(t.li,{children:"The C language does not support exception handling out of the box. It makes\ncode less readable and prone to errors."}),"\n",(0,n.jsxs)(t.li,{children:["The linear queue design causes issue when there should be only one instance\nof an agent running for an upload, but overall the agent is not mutually\nexclusive.","\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"For example, if the monkbulk has a limit set to 1, it should be implied for\nonly single upload. But with linear queue, this monkbulk job will block all\nother agents from executing even when they are not effected by the results\nof monkbulk."}),"\n",(0,n.jsxs)(t.p,{children:["This essentially makes the agent mutually exclusive even though, there is a\nspecial flag EXCLUSIVE for the very same purpose:\n",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/Job-Scheduler#agentconfs",children:"https://github.com/fossology/fossology/wiki/Job-Scheduler#agentconfs"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"One idea on redesigning the queue, it can be broken into buckets per upload\neach maintaining its own priority queue. There can be another queue for\nglobal operations like maintenance, delagent, etc."}),"\n",(0,n.jsx)(t.li,{children:"Doing so, each bucket can be traversed in round-robin and pick first pending\njob and check against host limit. This will eliminate the scenario mentioned\nin point 3. Also, exclusive agents can be sent to global queue."}),"\n"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:" upload specific queue\n|-<upload_2> -> nomos, copyright, ojo, keyword\n|-<upload_3> -> monkbulk, decider, monkbulk, decider\n|-<upload_4> -> reuser, decider\n\nglobal queue\n-> delagent,\n"})}),"\n",(0,n.jsxs)(t.ol,{start:"4",children:["\n",(0,n.jsx)(t.li,{children:"Since the FOSSology is released, there can be number of new scheduling\nlibraries being released which needs to be explored. They can be a nice\naddition to the project."}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"C/C++, Go, any fast language"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @ag4ums @avinal"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"debian-packaging-for-debian-repository",children:"Debian packaging for Debian repository"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Improve Debian packaging and make it acceptable for APT"]}),"\n",(0,n.jsxs)(t.p,{children:["The existing effort to put FOSSology under Debian packaging list needs to be\ntaken forward. A repository under Debian Salsa was setup initially but not\nmaintained any more: ",(0,n.jsx)(t.a,{href:"https://salsa.debian.org/fossology-team/fossology",children:"https://salsa.debian.org/fossology-team/fossology"}),"\nIt is configured to use\n",(0,n.jsx)(t.a,{href:"https://honk.sigxcpu.org/piki/projects/git-buildpackage/",children:"gbp"}),"."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Blockers"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"The Debian building mechanism does not allow installation from sources other\nthan apt. The Composer packages need to be packed as Debian packages and\nshipped with FOSSology."}),"\n",(0,n.jsx)(t.li,{children:"Packaging and shipping other tools needs to satisfy their licensing terms."}),"\n",(0,n.jsx)(t.li,{children:"The versions of packages in APT and actual versions used are different."}),"\n",(0,n.jsx)(t.li,{children:"APT also provides JS libraries like JQuery and DataTables but RHL does not."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"See also"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2075",children:"https://github.com/fossology/fossology/pull/2075"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/PackagingWithGit",children:"https://wiki.debian.org/PackagingWithGit"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/SimplePackagingTutorial",children:"https://wiki.debian.org/SimplePackagingTutorial"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/Diagrams",children:"https://wiki.debian.org/Diagrams"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/PHP",children:"https://wiki.debian.org/PHP"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://peertube.debian.social/videos/watch/0fb2dbc4-f43d-477e-8b14-20c426f970de",children:"https://peertube.debian.social/videos/watch/0fb2dbc4-f43d-477e-8b14-20c426f970de"})}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Small"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Debian, APT, CMake"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @shaheemazmalmmd"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"rest-api-improvements",children:"REST API improvements"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Completing REST API implementation and migrate to v2"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Writing test cases for all the existing and new functionalities."}),"\n",(0,n.jsxs)(t.li,{children:["Improve REST API and expose more endpoints","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Update REST API to v2"}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2617",children:"https://github.com/fossology/fossology/pull/2617"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2633",children:"https://github.com/fossology/fossology/pull/2633"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2634",children:"https://github.com/fossology/fossology/pull/2634"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/orgs/fossology/projects/2/views/2",children:"https://github.com/orgs/fossology/projects/2/views/2"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"PHP, Slim framework"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @shaheemazmalmmd"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"new-artificial-intelligence-based-copyright-and-license-scanner-agent",children:"New Artificial Intelligence based copyright and license scanner agent"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Integrate new AI capabilities to improve the scanners"]}),"\n",(0,n.jsx)(t.p,{children:"A quick ChatGPT 3.5 test shows it's pretty good at spotting the correct licenses\nand expressing them as SPDX expressions."}),"\n",(0,n.jsx)(t.p,{children:"One idea would be integrate a similar technology into a FOSSology agent -\nhowever not by relying on external proprietary services but by building a\ndedicated LLM model based on existing open source solutions."}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@NicolasToussaint @ag4ums"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"support-spdx-30-reports",children:"Support SPDX 3.0 reports"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Support reading and generating SPDX 3.0 reports"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Support generation of SPDX 3.0 reports in different formats."}),"\n",(0,n.jsx)(t.li,{children:"Start with Core, Software and Licensing profiles. Increase if needed."}),"\n",(0,n.jsx)(t.li,{children:"Support generation of SPDX reports in JSON format."}),"\n",(0,n.jsx)(t.li,{children:"Support ingestion of SPDX 3.0 reports"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Refs:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/spdx/spdx-3-model/",children:"https://github.com/spdx/spdx-3-model/"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/tree/master/src/spdx2",children:"https://github.com/fossology/fossology/tree/master/src/spdx2"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/tree/master/src/reportImport",children:"https://github.com/fossology/fossology/tree/master/src/reportImport"})}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Skills needed"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"PHP, Twig"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Contact"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"@GMishx @shaheemazmalmmd"})]})]})]})]})}function a(e={}){const{wrapper:t}={...(0,l.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>r});var n=s(67294);const l={},i=n.createContext(l);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/204f1452.487b00ba.js b/assets/js/204f1452.487b00ba.js new file mode 100644 index 0000000000..75cb9d353f --- /dev/null +++ b/assets/js/204f1452.487b00ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9656],{85943:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>a});var t=n(85893),o=n(11151);const i={title:"Week 6",author:"Rajul Jha",tags:["gsoc24","CI"]},l="Week 6",r={id:"2024/ci-scanner/updates/2024-07-11",title:"Week 6",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-07-11.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-07-11",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-07-11.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 6",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-04"},next:{title:"Week 7",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-18"}},c={},a=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Work Done",id:"work-done",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-6",children:"Week 6"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 05, 2024 - July 11, 2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 10, 2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Mentioned about the progress and completion of ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2785",children:"#PR2785"})," which adds the relevant byte info the nomos scanner's JSON Output."]}),"\n",(0,t.jsxs)(s.li,{children:["Also got review from mentors regarding ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2784",children:"#PR2784"})," which allows for the user to pass a custom ",(0,t.jsx)(s.code,{children:"allowlist.json"})," file for whitelisting certain licenses or keywords."]}),"\n",(0,t.jsxs)(s.li,{children:["Gave a demo to the mentors on how the Github Action for Fossology Scanners works. I studied ",(0,t.jsx)(s.code,{children:"docker"})," actions as well as ",(0,t.jsx)(s.code,{children:"composite"})," actions and decided to go for the composite actions because:","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Emulation on our end"}),": Composite actions give us the flexibility to run multiple steps in our jobs which makes it easier for us to implement QEMU Emulator for cross platform image support de-facto."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Uploading Artifacts"}),": Using composite actions, the user does not need to set up a separate step of uploading the results as an artifact, as we can add this step into our action itself. User can just provide the ",(0,t.jsx)(s.code,{children:"report_format"})," key to tell the script which report to generate. Thus, it ensures less clout for the user."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"work-done",children:"Work Done"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Completed the allowlist functionality and sent a ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2784",children:"#PR2784"})," for the same."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["The user can now pass a ",(0,t.jsx)(s.code,{children:"allowlist.json"})," file in a particular ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/blob/master/utils/automation/allowlist.sample.json",children:"format"})," like this:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-yaml",children:'{\n"licenses": [\n "GPL-2.0-or-later",\n "GPL-2.0-only",\n "LGPL-2.1-or-later"\n ],\n "exclude": [\n "*/agent_tests/*",\n "src/vendor/*"\n ]\n}\n'})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["The script looks for the file allowlist file first. If not found here, then looks for ",(0,t.jsx)(s.code,{children:"allowlist.json"})," file in the root directory. If not found here then looks for ",(0,t.jsx)(s.code,{children:"whitelist.json"}),". If this is also not found, populates an empty dictionary with ",(0,t.jsx)(s.code,{children:"license"})," and ",(0,t.jsx)(s.code,{children:"exclude"})," keys.\nThe decision tree looks like this:"]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Screenshot",src:n(155).Z+"",width:"470",height:"475"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["As discussed and resolved in the previous meeting, the ",(0,t.jsx)(s.code,{children:"start"}),", ",(0,t.jsx)(s.code,{children:"end"}),", and ",(0,t.jsx)(s.code,{children:"len"})," information is updated into the nomos JSON output in this ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2785",children:"#PR2785"}),"."]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Screenshot",src:n(67242).Z+"",width:"2782",height:"1472"})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Started working on the line number part for ",(0,t.jsx)(s.code,{children:"nomos"})," and ",(0,t.jsx)(s.code,{children:"ojo"})," scanners."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Researched and understood the different Github Actions and decided to go with ",(0,t.jsxs)(s.a,{href:"https://docs.github.com/en/actions/creating-actions/creating-a-composite-action",children:[(0,t.jsx)(s.code,{children:"composite"})," actions"]})," as they allow us to customize our action in an easier manner."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Implemented a demo Github Action for testing and demo'd it to the mentors.\n",(0,t.jsx)(s.img,{alt:"Screenshot",src:n(66188).Z+"",width:"1554",height:"824"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Need to complete the action, test all cases and boundary conditions."}),"\n",(0,t.jsx)(s.li,{children:"Once the action is completed, we need to think about a name for it and publish it to the Github Marketplace."}),"\n",(0,t.jsxs)(s.li,{children:["After that, resume working on the line number part for the ",(0,t.jsx)(s.code,{children:"nomos"})," and ",(0,t.jsx)(s.code,{children:"ojo"})," scanners as well."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},67242:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/Nomos_json_output-032a276eb612ed5e6292dbf01a41502d.png"},155:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/Whitelist_decision_tree-4b89e68ecc7c1936e31eedd97f0068aa.png"},66188:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/foss-action-test-853f4c317ee136caa6f02eb615928660.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>l});var t=n(67294);const o={},i=t.createContext(o);function l(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2078f3e4.08939e02.js b/assets/js/2078f3e4.08939e02.js new file mode 100644 index 0000000000..28fba3405b --- /dev/null +++ b/assets/js/2078f3e4.08939e02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8746],{76846:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=t(85893),o=t(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2021/scancode/"},a=void 0,c={id:"2021/scancode/introduction",title:"Introduction",description:"\x3c!--",source:"@site/docs/2021/scancode/introduction.md",sourceDirName:"2021/scancode",slug:"/2021/scancode/",permalink:"/gsoc/docs/2021/scancode/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/introduction.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2021/scancode/"},sidebar:"2021",previous:{title:"Installation",permalink:"/gsoc/docs/2021/minerva/installation"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2021/scancode/updates/2021-05-28"}},r={},l=[{value:"Author",id:"author",level:3},{value:"Contact info",id:"contact-info",level:3},{value:"Integrating ScanCode to FOSSology",id:"integrating-scancode-to-fossology",level:3},{value:"Check out",id:"check-out",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h3,{id:"author",children:"Author"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:saritasingh.0425@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.linkedin.com/in/s-sarita/",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"integrating-scancode-to-fossology",children:"Integrating ScanCode to FOSSology"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Nomos"})," and ",(0,i.jsx)(n.strong,{children:"Monk"})," are the two leading scanners FOSSology uses for license detection and Copyright for scanning ",(0,i.jsx)(n.em,{children:(0,i.jsx)(n.code,{children:"copyright, URL, emails"})}),", and ",(0,i.jsx)(n.em,{children:(0,i.jsx)(n.code,{children:"holders"})})," name. FOSSology approach is to detect licenses with either a large (large: 2500 regexes) dataset of regex patterns (nomos) or a full string comparison against license full texts (large: ~400 texts) (monk). ",(0,i.jsx)(n.strong,{children:"Atarashi"})," license scanner implements multiple text statistics and information retrieval algorithms."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"ScanCode Toolkit"})," is a very established license scanner similar to Nomos or Monk. It is a simple python based command line scanner that runs on Windows, Linux, and Mac. It implements a number of different approaches and integrates these into one application for identifying and classifying license-relevant content in packages."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"basic idea"})," is to use the command line interface from the ScanCode package in order to be called right from the FOSSology application. FOSSology will pass a single file and take the result from the ScanCode command line call. Scan result will include license name, the SPDX key, Score, Copyright and Holder name, Emails, and URLs present in the given code and as requested by the user."]}),"\n",(0,i.jsx)(n.h3,{id:"check-out",children:"Check out"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://itssingh.github.io/gsoc-blog/timeline.html",children:"Proposed Timeline"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"installation",children:"Installation steps"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>a});var i=t(67294);const o={},s=i.createContext(o);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/21a8b2e2.683f749e.js b/assets/js/21a8b2e2.683f749e.js new file mode 100644 index 0000000000..ebd5190d33 --- /dev/null +++ b/assets/js/21a8b2e2.683f749e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3334],{15199:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var t=n(85893),i=n(11151);const r={title:"Week 0",author:"Shreya Singh"},o="Coding Week-0 Meeting",a={id:"2021/minerva/updates/2021-06-07",title:"Week 0",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-06-07.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-06-07",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-06-07.md",tags:[],version:"current",frontMatter:{title:"Week 0",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Introduction",permalink:"/gsoc/docs/2021/minerva/"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-15"}},l={},c=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 0 Progress",id:"week-0-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function h(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"coding-week-0-meeting",children:"Coding Week-0 Meeting"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:"Brainstormed on various ways through which dataset can be generated, and broke it down into different parts."}),"\n",(0,t.jsx)(s.li,{children:"Python library to be used in text generation using regex - Xeger/Intxeger"}),"\n",(0,t.jsxs)(s.li,{children:["To reuse ",(0,t.jsx)(s.a,{href:"https://github.com/hastagAB/SPDX-OSS-Dataset/blob/master/script.py",children:"Script"})," to n-gram the paragraphs of license texts and to generate different permutations and combinations of them."]}),"\n",(0,t.jsxs)(s.li,{children:["Regex of different licenses can be extracted from ",(0,t.jsx)(s.a,{href:"https://spdx.org/licenses/licenses.json",children:"licenses.json"}),", ",(0,t.jsx)(s.a,{href:"https://spdx.org/licenses/exceptions.json",children:"exceptions.json"}),", or ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/blob/master/src/nomos/agent/STRINGS.in",children:"STRINGS.in"})]}),"\n",(0,t.jsx)(s.li,{children:"Shifting the codebase of Atarashi to dask/vaex will boost the runtime. This to be done in parallel with the contribution. Results from few python files showed a significant boost to runtime."}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"week-0-progress",children:"Week 0 Progress"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:["I reused the ",(0,t.jsx)(s.a,{href:"https://github.com/hastagAB/SPDX-OSS-Dataset/blob/master/script.py",children:"script.py"})," file to split the files in different combinations of paras that will create its combinations: like para1+para3, para2+para4 after each traversal."]}),"\n",(0,t.jsx)(s.li,{children:"Different org licenses are 60-70% and the ones with different versions are 90% similar. So to the split files, keywords and regex of the specific license_header can be added."}),"\n",(0,t.jsxs)(s.li,{children:['Tested Intxeger performance on the regex from STRINGS.in file. We are able to generate "Nsamples", and add them to all the paras, the randomness could be minimized.\n',(0,t.jsx)("br",{}),(0,t.jsx)(s.code,{children:'x = intxeger.build(r"motosoto open source licen[cs]e =FEW= (v|version )0\\.?9\\.?1")'}),"\n",(0,t.jsx)("br",{}),(0,t.jsx)(s.code,{children:"print(x.sample(N=5))"}),"\n",(0,t.jsx)("br",{}),(0,t.jsx)(s.strong,{children:(0,t.jsx)(s.em,{children:"Output"})})," : ['motosoto open source license =FEW= version 0.9.1', 'motosoto open source licence =FEW= version 0.9.1', 'motosoto open source licence =FEW= v0.91', 'motosoto open source license =FEW= v0.91', 'motosoto open source license =FEW= v0.9.1']"]}),"\n",(0,t.jsx)(s.li,{children:"Generated statements in Nsamples were unique which will automatically make the generated text files unique."}),"\n",(0,t.jsx)(s.li,{children:"The number of datasets generated will depend on the number of paras + Nsamples."}),"\n",(0,t.jsxs)(s.li,{children:["Regex from SPDX released ",(0,t.jsx)(s.a,{href:"https://spdx.org/licenses/licenses.json",children:"licenses.json"})," and ",(0,t.jsx)(s.a,{href:"https://spdx.org/licenses/exceptions.json",children:"exceptions.json"})," can be extracted by redirecting to detailsUrl of JSON file -> standardLicenseTemplate (regex) -> licenseText (complete text)."]}),"\n",(0,t.jsxs)(s.li,{children:["Work Samples : ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/1Q49H5RhZ8Z6aG6EYQJlxbo4JOvAg8K0v?usp=sharing",children:"Texts-Intxeger.ipynb"}),", ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/1z6X27pGzDIO2dHdfwYnpWZy1kYhEK4Th?usp=sharing",children:"Texts-difflibraries.ipynb"})]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(s.p,{children:"Implementation of Intxeger on one of the licenses and generating files using it."})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>o});var t=n(67294);const i={},r=t.createContext(i);function o(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/21d6e7e7.3622ff29.js b/assets/js/21d6e7e7.3622ff29.js new file mode 100644 index 0000000000..d73ae0bdbf --- /dev/null +++ b/assets/js/21d6e7e7.3622ff29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9605],{65534:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>o});var n=t(85893),a=t(11151);const i={title:"Week 5",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},r=void 0,l={id:"2022/spasht/updates/2022-07-13",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/spasht/updates/2022-07-13.md",sourceDirName:"2022/spasht/updates",slug:"/2022/spasht/updates/2022-07-13",permalink:"/gsoc/docs/2022/spasht/updates/2022-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/updates/2022-07-13.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"spasht",permalink:"/gsoc/docs/tags/spasht"},{label:"clearlydefined",permalink:"/gsoc/docs/tags/clearlydefined"}],version:"current",frontMatter:{title:"Week 5",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/spasht/updates/2022-07-06"},next:{title:"Introduction",permalink:"/gsoc/docs/2022/ui/"}},c={},o=[{value:"Meeting 7",id:"meeting-7",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-7",children:"Meeting 7"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 13th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Implemented the API query and parsed the data from user into curations."}),"\n",(0,n.jsx)(s.li,{children:"Discussed about methods to get copyrights and main licenses."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Create a PR with current changes"}),"\n",(0,n.jsx)(s.li,{children:"Fetch main license, copyrights and file path."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>r});var n=t(67294);const a={},i=n.createContext(a);function r(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/21e38604.b38e2130.js b/assets/js/21e38604.b38e2130.js new file mode 100644 index 0000000000..5ecc4445ad --- /dev/null +++ b/assets/js/21e38604.b38e2130.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2503],{63386:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>t,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var s=n(85893),o=n(11151);const r={title:"Week 10",author:"Abdelrahman Jamal"},t=void 0,l={id:"2023/copyrights/updates/2023-08-02",title:"Week 10",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-08-02.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-08-02",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-08-02.md",tags:[],version:"current",frontMatter:{title:"Week 10",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 9",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-26"},next:{title:"Week 11",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-09"}},c={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Preprocessing Function Creation",id:"preprocessing-function-creation",level:3},{value:"Vectorization Methods",id:"vectorization-methods",level:3},{value:"Hyperparameter Tuning",id:"hyperparameter-tuning",level:3},{value:"Confidence Thresholding with <code>predict_proba</code>",id:"confidence-thresholding-with-predict_proba",level:3},{value:"Model Performance Without Threshold",id:"model-performance-without-threshold",level:3},{value:"Performance with 0.999 Threshold",id:"performance-with-0999-threshold",level:3},{value:"Performance with 0.99 Threshold",id:"performance-with-099-threshold",level:3},{value:"Performance with 0.95 Threshol",id:"performance-with-095-threshol",level:3},{value:"Choice of Threshold",id:"choice-of-threshold",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"TF-IDF Performance",id:"tf-idf-performance",level:3},{value:"RNN Model Exploration",id:"rnn-model-exploration",level:3},{value:"GitHub Repository",id:"github-repository",level:3},{value:"Language Detection",id:"language-detection",level:3}];function d(e){const i={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(August,02,2023)"})}),"\n",(0,s.jsx)(i.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsx)(i.h3,{id:"preprocessing-function-creation",children:"Preprocessing Function Creation"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["I devised a preprocessing function to test different text manipulations:","\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Convert all text to lowercase."}),"\n",(0,s.jsxs)(i.li,{children:["Replace ",(0,s.jsx)(i.code,{children:"(c)"}),", ",(0,s.jsx)(i.code,{children:"(C)"}),", and ",(0,s.jsx)(i.code,{children:"\xa9"})," with ",(0,s.jsx)(i.code,{children:"COPYRIGHT_SYMBOL"}),"."]}),"\n",(0,s.jsxs)(i.li,{children:["Tokenize text using the ",(0,s.jsx)(i.code,{children:"word_tokenize"})," function from the NLTK library."]}),"\n",(0,s.jsx)(i.li,{children:"Remove punctuation."}),"\n",(0,s.jsx)(i.li,{children:"Exclude stopwords."}),"\n",(0,s.jsx)(i.li,{children:"Lemmatize the text."}),"\n",(0,s.jsx)(i.li,{children:"Experiment with various combinations of the above steps."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"vectorization-methods",children:"Vectorization Methods"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Results using TF-IDF outperformed those from Bag-of-Words (BoW)."}),"\n",(0,s.jsx)(i.li,{children:"While the GloVe embeddings led to a 1-2% improvement, they still lagged behind TF-IDF."}),"\n",(0,s.jsx)(i.li,{children:"FastText yielded a modest performance boost compared to GloVe but remained suboptimal."}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"hyperparameter-tuning",children:"Hyperparameter Tuning"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Despite manually fine-tuning the parameters, I also tried applying GridSearch on the SVM and FastText parameters. Due to the combinatorial explosion in parameter space, it wasn't feasible."}),"\n"]}),"\n",(0,s.jsxs)(i.h3,{id:"confidence-thresholding-with-predict_proba",children:["Confidence Thresholding with ",(0,s.jsx)(i.code,{children:"predict_proba"})]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"I tested various confidence thresholds (0.999, 0.99, 0.95) and determined that 0.99 was generally the most optimal."}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"model-performance-without-threshold",children:"Model Performance Without Threshold"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 0: 145 out of 16079 (approx. 0.9% misclassified)"}),"\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 1: 81 out of 5691 (approx. 1.42% misclassified)"}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"performance-with-0999-threshold",children:"Performance with 0.999 Threshold"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 0: 6 out of 16079 (approx. 0.04% misclassified)"}),"\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 1: 4072 out of 5691 (approx. 71.55% misclassified)"}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"performance-with-099-threshold",children:"Performance with 0.99 Threshold"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 0: 27 out of 16079 (approx. 0.17% misclassified)"}),"\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 1: 721 out of 5691 (approx. 12.67% misclassified)"}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"performance-with-095-threshol",children:"Performance with 0.95 Threshol"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 0: 41 out of 16079 (approx. 0.25% misclassified)"}),"\n",(0,s.jsx)(i.li,{children:"Number of misclassifications in class 1: 387 out of 5691 (approx. 6.8% misclassified)"}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"choice-of-threshold",children:"Choice of Threshold"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Ultimately, we settled on the 0.99 threshold. By further enhancing model performance, we aim to reduce the error rate to around or below 0.1%, which equates to roughly 1 misclassification per 1000 actual copyrights."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,s.jsx)(i.h3,{id:"tf-idf-performance",children:"TF-IDF Performance"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["Focus on amplifying the TF-IDF's effectiveness:","\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Exploration of varying TF-IDF parameters holds promise for potential enhancements."}),"\n",(0,s.jsx)(i.li,{children:"Refinement opportunities exist within the preprocessing function, tailored to our copyright classification objectives."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"rnn-model-exploration",children:"RNN Model Exploration"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Intend to assess the performance of an RNN model combined with the improved preprocessing function."}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"github-repository",children:"GitHub Repository"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Transition from using gists to a full-fledged GitHub repository for enhanced documentation."}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"language-detection",children:"Language Detection"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Work on devising a language detection mechanism to address rows in languages other than English, aiming to further optimize classification."}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,o.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,i,n)=>{n.d(i,{Z:()=>l,a:()=>t});var s=n(67294);const o={},r=s.createContext(o);function t(e){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/227cd700.5c64ba95.js b/assets/js/227cd700.5c64ba95.js new file mode 100644 index 0000000000..beeb943ec2 --- /dev/null +++ b/assets/js/227cd700.5c64ba95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3545],{52983:s=>{s.exports=JSON.parse('{"tag":{"label":"cmake","permalink":"/gsoc/docs/tags/cmake","allTagsPath":"/gsoc/docs/tags","count":10,"items":[{"id":"2021/buildsystem/updates/2021-05-28","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-05-28"},{"id":"2021/buildsystem/updates/2021-06-11","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-11"},{"id":"2021/buildsystem/updates/2021-08-13","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-13"},{"id":"2021/buildsystem/updates/2021-06-18","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-18"},{"id":"2021/buildsystem/updates/2021-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-22"},{"id":"2021/buildsystem/updates/2021-06-29","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-29"},{"id":"2021/buildsystem/updates/2021-07-09","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-09"},{"id":"2021/buildsystem/updates/2021-07-23","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-23"},{"id":"2021/buildsystem/updates/2021-07-30","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-30"},{"id":"2021/buildsystem/updates/2021-08-06","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-06"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/234d7abe.85c39ab4.js b/assets/js/234d7abe.85c39ab4.js new file mode 100644 index 0000000000..96a29252bd --- /dev/null +++ b/assets/js/234d7abe.85c39ab4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[309],{44434:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>d,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>a});var t=n(85893),i=n(11151);const r={title:"Week 4",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"17th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 4"]},d=void 0,o={id:"2022/ui/updates/krishna/2022-07-11",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-07-11.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-07-11",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-07-11.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 4",permalink:"/gsoc/docs/tags/week-4"}],version:"current",frontMatter:{title:"Week 4",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"17th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 4"]},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-04"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-17"}},l={},a=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"Adding a user via REST API",id:"adding-a-user-via-rest-api",level:2},{value:"PR Link : feat(API): <code>users/</code> POST route for adding a new user #2256",id:"pr-link--featapi-users-post-route-for-adding-a-new-user-2256",level:3},{value:"Testing the PR",id:"testing-the-pr",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function h(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Sl. No."}),(0,t.jsx)(s.th,{children:"Initial Goals"}),(0,t.jsx)(s.th,{children:"Completed"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"1."}),(0,t.jsx)(s.td,{children:"Finish the implementation of REST API for adding a user"}),(0,t.jsx)(s.td,{children:"Done"})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"2."}),(0,t.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,t.jsx)(s.td,{children:"Partially"})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"3."}),(0,t.jsx)(s.td,{children:"Start the implementaion of REST API for modifying user Details"}),(0,t.jsx)(s.td,{children:"Not started"})]})]})]}),"\n",(0,t.jsx)(s.h2,{id:"adding-a-user-via-rest-api",children:"Adding a user via REST API"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["The API implementation of the ",(0,t.jsx)(s.code,{children:"/users"})," POST route to create a new user is done."]}),"\n",(0,t.jsxs)(s.li,{children:["This task included","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Creating a new POST route in the ",(0,t.jsx)(s.code,{children:"index.php"})," file inside ",(0,t.jsx)(s.code,{children:"www/ui/api"})," directory."]}),"\n",(0,t.jsxs)(s.li,{children:["Adding a new method ",(0,t.jsx)(s.code,{children:"AddUser"})," in the ",(0,t.jsx)(s.code,{children:"UserController"})," class."]}),"\n",(0,t.jsx)(s.li,{children:"Trying to re-use the methods that are already used in the static UI."}),"\n",(0,t.jsxs)(s.li,{children:["Testing the API via any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link--featapi-users-post-route-for-adding-a-new-user-2256",children:["PR Link : ",(0,t.jsxs)(s.a,{href:"https://github.com/fossology/fossology/pull/2256",children:["feat(API): ",(0,t.jsx)(s.code,{children:"users/"})," POST route for adding a new user #2256"]})]}),"\n",(0,t.jsx)(s.h2,{id:"testing-the-pr",children:"Testing the PR"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Pull the changes from the above ",(0,t.jsx)(s.strong,{children:"PR"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Use any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Provide the request body as following ----\n",(0,t.jsx)(s.img,{alt:"req-body-add-user",src:n(90095).Z+"",width:"450",height:"400"})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["You can expect a response like this\n",(0,t.jsx)(s.img,{alt:"req-body-add-user",src:n(61262).Z+"",width:"450",height:"208"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["After reviewing my PR, ",(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:(0,t.jsx)(s.strong,{children:"Gaurav"})})," sir pointed out few issues in the current contribution and code changes. Some of these were ----","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["There was duplication of code in the ",(0,t.jsx)(s.code,{children:"AddUser"})," method as there was no way to re-use the existing functions according to me."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Gaurav"})," sir cleared the misconception that I had, and suggested to ",(0,t.jsx)(s.strong,{children:(0,t.jsx)(s.em,{children:"patch"})})," the existing ",(0,t.jsx)(s.code,{children:"add-user"})," page to adapt the ",(0,t.jsx)(s.code,{children:"DefaultPlugin"})," rather than ",(0,t.jsx)(s.code,{children:"FO_Plugin"}),".","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Link to the discussion - ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2256#discussion_r920026585",children:"https://github.com/fossology/fossology/pull/2256#discussion_r920026585"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["Since there were errors while migrating the plugin from ",(0,t.jsx)(s.code,{children:"FO_Plugin"})," to ",(0,t.jsx)(s.code,{children:"DefaultPlugin"}),", It was decided in the ",(0,t.jsx)(s.strong,{children:"UI Meeting"})," that any further changes to this PR is paused for now untill we find a ",(0,t.jsx)(s.strong,{children:(0,t.jsx)(s.em,{children:"patch"})})," for this."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.li,{children:"So, next week I'll be picking up the implementaion of REST API for modifying user Details."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},90095:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/reqbodyAddUser-6e8feba5b1759a53c9ab66a7ceefbe16.png"},61262:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/resAddUser-5c1a5744f373265bb21bea66332241c7.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>d});var t=n(67294);const i={},r=t.createContext(i);function d(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/23cfc9f7.8c577a15.js b/assets/js/23cfc9f7.8c577a15.js new file mode 100644 index 0000000000..319b982c8e --- /dev/null +++ b/assets/js/23cfc9f7.8c577a15.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9803],{86163:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var s=i(85893),t=i(11151);const r={sidebar_position:1,title:"Community Bonding 1"},l=void 0,o={id:"2023/minutes/2023-05-11",title:"Community Bonding 1",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-05-11.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-05-11",permalink:"/gsoc/docs/2023/minutes/2023-05-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-05-11.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Community Bonding 1"},sidebar:"2023",previous:{title:"Week 11",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-08-10"},next:{title:"Community Bonding 2",permalink:"/gsoc/docs/2023/minutes/2023-05-18"}},h={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Questions",id:"questions",level:2},{value:"Meetings & Timings for individual projects",id:"meetings--timings-for-individual-projects",level:2}];function a(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2023."}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,s.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,s.jsx)(n.p,{children:"Welcome to the first updates meeting."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2023/",children:"GSoC repo"})," to track the updates.\nEvery student need to update the weekly progress.\nFor more details refer ",(0,s.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2022/",children:"GSoC 2022"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," explains about the repo."]}),"\n",(0,s.jsxs)(n.p,{children:["Check the ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/CONTRIBUTING.md",children:"contributing guidelines"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"questions",children:"Questions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["GSoC repo will be given access for?","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"No, contributors need to create PRs."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meetings--timings-for-individual-projects",children:"Meetings & Timings for individual projects"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Rest API - Weekly at Wednesday 12:00 UTC (17:30 IST)"}),"\n",(0,s.jsx)(n.li,{children:"Copyright - Weekly at Wednesday 11:30 UTC (17:00 IST)"}),"\n",(0,s.jsx)(n.li,{children:"LaaS - Weekly at Friday 10:30 UTC (16:00 IST)"}),"\n",(0,s.jsx)(n.li,{children:"CycloneDX - Weekly at Tuesday 10:30 UTC (16:00 IST)"}),"\n",(0,s.jsx)(n.li,{children:"Weekly meeting - Weekly at Thursday 13:00 UTC (18:30 IST)"}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>l});var s=i(67294);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/250dd90a.8c759143.js b/assets/js/250dd90a.8c759143.js new file mode 100644 index 0000000000..3bb08c658e --- /dev/null +++ b/assets/js/250dd90a.8c759143.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4795],{10656:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var t=n(85893),i=n(11151);const a={title:"Week 6 and 7",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},o=void 0,r={id:"2022/ui/updates/soham/2022-08-01",title:"Week 6 and 7",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-08-01.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-08-01",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-01",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-08-01.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 6 and 7",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-9"},next:{title:"Week 8 and 9",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-05"}},d={},l=[{value:"Clearing Decisions endpoint added and in progress",id:"clearing-decisions-endpoint-added-and-in-progress",level:2},{value:"PR link - feat(api): clearing status",id:"pr-link---featapi-clearing-status",level:3},{value:"License browser page updated",id:"license-browser-page-updated",level:2},{value:"PR link - fix(licenses): header fixed and limit for responses removed",id:"pr-link---fixlicenses-header-fixed-and-limit-for-responses-removed",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"clearing-decisions-endpoint-added-and-in-progress",children:"Clearing Decisions endpoint added and in progress"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(August 14th, 2022)"})}),"\n",(0,t.jsxs)(s.p,{children:["Working on the ",(0,t.jsx)(s.code,{children:"uploads/<uploadID>/licenses"})," endpoint to return the latest clearing decision for each and every filepath."]}),"\n",(0,t.jsx)(s.p,{children:"Was able to return the latest clearing status for each upload ID and return it in the api response:"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"api_res",src:n(27700).Z+"",width:"557",height:"270"})}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link---featapi-clearing-status",children:["PR link - ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2288",children:"feat(api): clearing status"})]}),"\n",(0,t.jsx)(s.h2,{id:"license-browser-page-updated",children:"License browser page updated"}),"\n",(0,t.jsxs)(s.p,{children:["Worked on the License Browser page and formatted the scanner results and the edited results response. Also modified to remove the limit on the page to view all the responses.",(0,t.jsx)("br",{}),"\nCurrent status of the License browser page:"]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"api_res",src:n(14726).Z+"",width:"1280",height:"720"})}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link---fixlicenses-header-fixed-and-limit-for-responses-removed",children:["PR link - ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/246",children:"fix(licenses): header fixed and limit for responses removed"})]}),"\n",(0,t.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Implementing the clearing decisions response on the UI."}),"\n",(0,t.jsxs)(s.li,{children:["Implementing the number of ",(0,t.jsx)(s.code,{children:"decisions to be cleared / open / total"})," response for the licenses endpoint."]}),"\n",(0,t.jsx)(s.li,{children:"Exploring and learing more about the database structure of the fossology project and implement the concepts to develop more API endpoints in the future."}),"\n"]})]})}function p(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},27700:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/api_clearing_decision-be4efb3e51aee7d6a3bb61e2714e969a.jpeg"},14726:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/licenses_edited-1518c54093386efe05a7190c7642b882.jpeg"},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>o});var t=n(67294);const i={},a=t.createContext(i);function o(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/263ec88a.52419891.js b/assets/js/263ec88a.52419891.js new file mode 100644 index 0000000000..03d00adb11 --- /dev/null +++ b/assets/js/263ec88a.52419891.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1401],{60174:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>h,toc:()=>o});var t=n(85893),i=n(11151);const a={title:"Week 5",author:"Shreya Singh"},r="Coding Week-5 Meeting",h={id:"2021/minerva/updates/2021-07-13",title:"Week 5",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-07-13.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-07-13",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Week 4",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-05"},next:{title:"Week 6",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-20"}},l={},o=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week-5 Progress",id:"week-5-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function d(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"coding-week-5-meeting",children:"Coding Week-5 Meeting"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:"Multiprocessing implementation to all the scripts to make the process fast."}),"\n",(0,t.jsx)(s.li,{children:"As in last week it was discussed to apply the generation part to all the licenses currently in fossology database, this part was done and the results of which were discussed."}),"\n",(0,t.jsx)(s.li,{children:"Research and implement other NLP algorithms that can be used either in data validation or generation."}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"week-5-progress",children:"Week-5 Progress"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:["Extracted license headers and their text of licenses present in Fossology database from ",(0,t.jsx)(s.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation/blob/main/Download-licenses-Script/database-foss.py",children:"JSON"})]}),"\n",(0,t.jsxs)(s.li,{children:["Implemented ",(0,t.jsx)(s.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation/blob/main/Download-licenses-Script/database-foss.py",children:"Script"})," to download the licenses."]}),"\n",(0,t.jsxs)(s.li,{children:["Created ",(0,t.jsx)(s.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation",children:"Minerva-Dataset"})," repo, and pushed all my progress so far in dataset generation and validation of licenses."]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(s.p,{children:"To discuss the nomos validated results with the mentors and proceed with Augly implementation."})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>h,a:()=>r});var t=n(67294);const i={},a=t.createContext(i);function r(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2669c513.b429e52f.js b/assets/js/2669c513.b429e52f.js new file mode 100644 index 0000000000..0b37932959 --- /dev/null +++ b/assets/js/2669c513.b429e52f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6216],{69117:(A,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var o=s(85893),n=s(11151);const t={sidebar_position:3,title:"Installation"},i=void 0,l={id:"2022/ui/installation",title:"Installation",description:"\x3c!--",source:"@site/docs/2022/ui/installation.md",sourceDirName:"2022/ui",slug:"/2022/ui/installation",permalink:"/gsoc/docs/2022/ui/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/installation.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Installation"},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-08"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/minutes/02-06-2022"}},r={},c=[{value:"Requirements \ud83d\udcdc",id:"requirements-scroll",level:2},{value:"Installation Steps :walking:",id:"installation-steps-walking",level:2},{value:"1. Fork it \ud83c\udf74",id:"1-fork-it-fork_and_knife",level:3},{value:"2. Clone it \ud83d\udc65",id:"2-clone-it-busts_in_silhouette",level:3},{value:"3. Set it up \u2b06\ufe0f",id:"3-set-it-up-arrow_up",level:3},{value:"4. Run it \ud83c\udfc1",id:"4-run-it-checkered_flag",level:3}];function a(A){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.a)(),...A.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.h2,{id:"requirements-scroll",children:["Requirements ","\ud83d\udcdc"]}),"\n",(0,o.jsxs)(e.ol,{children:["\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:["Your machine should have ",(0,o.jsx)(e.a,{href:"https://classic.yarnpkg.com/en/docs/install/#windows-stable",children:"Yarn"})," (preferable) or ",(0,o.jsx)(e.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Npm"})," or ",(0,o.jsx)(e.a,{href:"https://docs.docker.com/get-docker/",children:"Docker"})," installed."]}),"\n"]}),"\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:["A working ",(0,o.jsx)(e.a,{href:"https://github.com/fossology/fossology#installation",children:"FOSSology"})," setup."]}),"\n"]}),"\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsx)(e.p,{children:"Setup CORS in FOSSology"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsx)(e.li,{children:"Open FOSSology and go to Admin > Customize."}),"\n",(0,o.jsx)(e.li,{children:'Look out for "Allowed origins for REST API"'}),"\n",(0,o.jsxs)(e.li,{children:['Set the value to "',(0,o.jsx)(e.a,{href:"http://localhost:3000",children:"http://localhost:3000"}),'"']}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.img,{alt:"image",src:s(10936).Z+"",width:"1367",height:"249"})}),"\n",(0,o.jsx)(e.h2,{id:"installation-steps-walking",children:"Installation Steps :walking:"}),"\n",(0,o.jsxs)(e.h3,{id:"1-fork-it-fork_and_knife",children:["1. Fork it ","\ud83c\udf74"]}),"\n",(0,o.jsxs)(e.p,{children:["You can get your own fork/copy of ",(0,o.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI",children:"FOSSologyUI"})," by using the ",(0,o.jsx)("kbd",{children:(0,o.jsx)("b",{children:"Fork"})})," button."]}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI",children:(0,o.jsx)(e.img,{alt:"Fork Button",src:s(80406).Z+"",width:"745",height:"116"})})}),"\n",(0,o.jsxs)(e.h3,{id:"2-clone-it-busts_in_silhouette",children:["2. Clone it ","\ud83d\udc65"]}),"\n",(0,o.jsx)(e.p,{children:"You need to clone (download) it to a local machine using"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"git clone https://github.com/Your_Username/FOSSologyUI.git\n"})}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsx)(e.p,{children:"This makes a local copy of the repository in your machine."}),"\n"]}),"\n",(0,o.jsxs)(e.p,{children:["Once you have cloned the ",(0,o.jsx)(e.code,{children:"FOSSologyUI"})," repository in GitHub, move to that folder first using the change directory command."]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"# This will change directory to a folder FOSSologyUI\ncd FOSSologyUI\n"})}),"\n",(0,o.jsx)(e.p,{children:"Move to this folder for all other commands."}),"\n",(0,o.jsxs)(e.h3,{id:"3-set-it-up-arrow_up",children:["3. Set it up ","\u2b06\ufe0f"]}),"\n",(0,o.jsxs)(e.p,{children:["Run the following commands to see that ",(0,o.jsx)(e.em,{children:"your local copy"})," has a reference to ",(0,o.jsx)(e.em,{children:"your forked remote repository"})," in GitHub :octocat:"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"git remote -v\norigin https://github.com/Your_Username/FOSSologyUI.git (fetch)\norigin https://github.com/Your_Username/FOSSologyUI.git (push)\n"})}),"\n",(0,o.jsxs)(e.p,{children:["Now, add a reference to the original ",(0,o.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI",children:"FOSSologyUI"})," repository using"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"git remote add upstream https://github.com/fossology/FOSSologyUI.git\n"})}),"\n",(0,o.jsxs)(e.blockquote,{children:["\n",(0,o.jsxs)(e.p,{children:["This adds a new remote named ",(0,o.jsx)(e.strong,{children:(0,o.jsx)(e.em,{children:"upstream"})}),"."]}),"\n"]}),"\n",(0,o.jsx)(e.p,{children:"See the changes using"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"git remote -v\norigin https://github.com/Your_Username/FOSSologyUI.git (fetch)\norigin https://github.com/Your_Username/FOSSologyUI.git (push)\nupstream https://github.com/fossology/FOSSologyUI.git (fetch)\nupstream https://github.com/fossology/FOSSologyUI.git (push)\n"})}),"\n",(0,o.jsxs)(e.h3,{id:"4-run-it-checkered_flag",children:["4. Run it ","\ud83c\udfc1"]}),"\n",(0,o.jsx)(e.p,{children:"Using Yarn (preferable)"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"# To install all the dependencies\nyarn install\n\n# To start the application\nyarn start\n"})}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.strong,{children:"OR"})}),"\n",(0,o.jsx)(e.p,{children:"using NPM"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"# To install all the dependencies\nnpm install\n\n# To start the application\nnpm start\n"})}),"\n",(0,o.jsxs)(e.p,{children:["The React application will start on port 3000.\nGo to: ",(0,o.jsx)(e.a,{href:"http://localhost:3000",children:"http://localhost:3000"})]}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.strong,{children:"OR"})}),"\n",(0,o.jsx)(e.p,{children:"using Docker"}),"\n",(0,o.jsx)(e.p,{children:"FOSSology comes with a Dockerfile allowing the containerized execution."}),"\n",(0,o.jsx)(e.p,{children:"Run the following commands inside the project directory."}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:'docker build \\\n-t fossologyui:react1.0 \\\n--build-arg REACT_APP_SERVER_URL="localhost/repo/api/v1" \\\n--build-arg REACT_APP_HTTPS="false" .\n'})}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-sh",children:"docker run -p 3000:3000 fossologyui:react1.0\n"})}),"\n",(0,o.jsx)(e.p,{children:"The UI can then be accessed at http://IP_OF_DOCKER_HOST:3000/, user fossy password fossy."})]})}function h(A={}){const{wrapper:e}={...(0,n.a)(),...A.components};return e?(0,o.jsx)(e,{...A,children:(0,o.jsx)(a,{...A})}):a(A)}},10936:(A,e,s)=>{s.d(e,{Z:()=>o});const o=s.p+"assets/images/CorsSetup-51d5913c490a7078e954b9baba674f72.png"},80406:(A,e,s)=>{s.d(e,{Z:()=>o});const o="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwcIBwoICAoPCggKDxINCgoNEhQQEBIQEBQRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBCwwMFRMVIhgYIhQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/CABEIAHQC6QMBEQACEQEDEQH/xAAbAAEAAgMBAQAAAAAAAAAAAAAAAwUBAgQGB//aAAgBAQAAAAD7MAAAAAAAAAAwwAAAGWQAAAAAAAAAAa8vNgAAANurpyAAAAAAAAAAEVfYYAAADNdZ7gDTUAAAZAka6AADINK+35gADWQG0tNayACLcAAA122CORFuAAaSg5uG35JwAEHWCCemtZABDu5/PPQz1MM9tpzdnFL0BrvtSdWLKORFsVizj8/Y72AaTYrILaXm4bfinqfMPT+f5Pf5z5n0myDt08RcbeggnprWQAQ7PA36g995bksq7ozr08l7t5r18uN80PHn1UciLKo8a9lY+d6uHSaP1rWak4Z7Xt5uG34Z3yh9X+VXtbwt9Pq20HdB879L576PBPTWsgAg2ee5nR6Khm2r+jSDs6JLCKViTND1LWORDk+fvoEND0xQyd1oxNHwcNz0c3Db187yz1Phvc+G4bKTg95JBYQ+FtZPTwT01rIAIMnNjqAAGJdgjkQmNW2QDE4Obht66ZVrQAQ2IIJ6a1kAEGoAABiXIYlRRgACUEXDb1mQAEfeDXpprWQAAAAAAAAAAIq23AAAAprWQAAAAAAAAAAI6+bAAAAZhsdwAAAAAAAAAAxDDgAAAMzy5AAAAAAAAAAAwAAABkAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oACAECEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8QAMxAAAQQBAwMDAgUDBAMAAAAAAwABAgQFERMUBhASFTIzBzQgJDA1YBYXQCEiI0MxUHD/2gAIAQEAAQgA/wDfasvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJl5MvJlq38Dk+jI1hop7zM657Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnsuey57Lnso3md0E7STPq38CM+jIbtO6OEuLVXEqriVVxKq4lVcSquJVXEqriVVxKq4lVcSquJVXEqriVVxKq4lVcSquJVXEqriVVxKq4lVcSquLWb/wKelgsWG/+n6cyeL+LbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VbhVuFW4VOQrM7uxCOzO3mReZF5kXmReZFuOzs0+05tBtX3CrcKtwq3CrcKtwq3CrcKtwq3CrcKtwq3CrcKtwqYs/LxXmReZF5kXmReZF5kRJNKLuwP3EXaVqTylEO/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aW/aRLdgcHnPdsrdsrdsrdsrdsrdsoZ/OTwkh/dmQvb+nH5if4xPjkh/HH8RvjfuT5R/4DfP+MnvIgfuIu1H7WC1Wq1Wq1Wq1Wq1Wq1Wq1WqvP+Vn+Mv3IOw/uzIXt/Tj8xO969Wogc9j17N5Ccmxvrubx84tkqN+teAx68tfF/HCZg2QmcR6PUJLOWelKzlzwzIcaHVkcrBAQz4vIwyNZ7ENWWXvToUZ2R0bL2aYbE/wk9kkP449jdT14TJtWs3Tr0xWlj80K4eVYiN8cu5PlH+DqDIcLHzePT+Q5uPg8lYOOuAhyDzWfts56WGzDZGJIEx+WHesWAR1btq3dvn7O7RZ5Pjc5XyNkoAn6mrjIRhVrIbQIWAonvIgfuIu1J/y0FquqfUX6fvNjOnCYSfUFN+k+oyYSHUFx+rOlvUW6fotk+r+tsthc5WxOO/q36iIcpOOMpxnGTax1XXHVVnpujWs1RT8xwm+q1V1/wAtPsUowimYv908c0mPLP8AWVDDvUELprq+l1BOxXgi/cg7D+7Mhe39NvmJ3zWQNeuzeeVtkwuOq16WKtkzWOtV7uFyBqN2EhqRPS+obUkAT1K2LvrDty87fvPYFj5lPK9jGlewNoVjAxhUxdnKRx+EllKU7x8iG6Dpwgbs8O0sHHIEwNgtjFAIXLQybg3MdWzPUVmw1cNUZxgjGwp+ySH8cU7szavlgljjCwxEqxD4/F3sc9m3Z6jolKjfHLuX5B984DKuPeoHs2Tuz2AWbIHd6+DBlWHvX7leNqqWvIIepcTDaDjL1XJvZql6eoCnk7LvcFj53TyyWCsmniskGeBxhbwh2C9o/P26iuwHENGWHtUY5+ywbx6tURcPicRSlRx4q00T3kQP3EXam/5aC1WqpPd+nGdIO1de79R86MdXVfUMlwfXmJJQo5f6mzvVoXOpyW+petx9LPmcdL6f5rG3MVnql/I/UqxjafX2FHgukcVjBY+8/XfU4q9kcIDHEY9Vcf8ALT7XGqyqGjc+oFe+LAwHi67Ye1TpXcP0OSwLrXNAzaL9yDsP7syF7f0/+4nfqLByO73alPN0D040svczdAFOVLEdO4OQHa7bXUmKtXZALUyOLKXBiphwuNNVxhAmxlPN0oFqDwmMu16NytZxGPyEKtjG3K4eo6NclAFnF5B8FKrKVOy/T/DbB1j1MaIFhDrVxlIaHafskh/HHtLpuxCJa9U+CHKiCrWoYcobb3rqN8cu5fkH31ZlGtbyd0060q1vGXQzs6s6u1mtVS13rf1JjR8WGGxlwdw2Rv0KWUo5U7tjaeaxpDBFicXkK1fJBN09Ts06Dhs9ofP2IABXZy1sKKvkj3oh6ZuAnOYaNc1auwjonvIgfuIu1R/y8FqtV9QGe5ho4Wv9P2enhpYWxqupencze64xGVq6rqjpvOB6iD1R09LB9WdV5mlaz7dP5f8AuQ+bX1HwWVzeNqAxnUnR+UBksZmumK5CEAMhdVbf8vPtcqhuVD1Dv9NcnKrHESzPQ8bJsfcw3TPRz4e9ay19F+5B2H92ZC9v6f8A3EWq1Wqs42hafyPWxlCq/kDVarVarVarXtqtVqtVqtVqtVP2SQ/jj+I3xy7m+Qa1WqkzSi8XEIQRsMJRCMNxmizRi0W1Wq1Wq1Wq1Wq1UPn/ABk95ED9xF2qv/wQWq1WZwz5GVaxXw2GfHSs2LGq1Wq1Wq1Wq1Wq1Vp/+Cf4y/cg7D+7Mhe39MmsCPJ92C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgt2C3YLdgpFg8XZQKNoRZ94a3hreGt4a3hqc2I3hDsaL/7ZtuwW7BbsFuwW7BbsFuwW7BbsFuwW7BbsFuwW7BbsFAkN15LeGt4a3hreGt4a3hqer+U3B+4i7Rlx22i8oK5QVygrlBXKCuUFcoK5QVygrlBXKCuUFcoK5QUewKYpRjzKy5lZcysuZWXMrLmVlGW8eE4of3ZkL2/wI3tQP3EX+UP7syF7f4EVtWX+gbMDSfKgZerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwF6sBerAXqwE2VA6DDyNMjQbRv4E7aqYWknqRXDiuHFcOK4cVw4rhxXDiuHFcOK4cVw4rhxXDiuHFcOK4cVw4rhxXDiuHFcOK4cVw4pqkWUBNFM2n/wBB/8QASxAAAgEBAwYJCAcECAcAAAAAAQIDAAQREhATISKisQUxUWFikZKh0RQjMkFCUrLSIDAzU3FygkBDYMEGJERjcHOB8BUWJTSjs8L/2gAIAQEACT8A/wAHDRo0aNGjRo0aNGjRo0aNGjRo0aNGjR/gUBlN94OkeiahTsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqGPsjwqFOyPCtADsABzH6wFm47hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj0Dj1hUeg6eMVH3io+8VH3io+8VH3ilK3+vjGXTfoAHGaj7xUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUe0Kj2hUetdfdfUfeKj7xUfeKj7xUfeKj7xWi7jBrpfC2SIyYTcWvCi/8TVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVm2xVnuUcZxjwqDbFQbYqDbFQbYqDbFQbYpSjgX3H1jmyfeN8R+s6O79m5DurkG76XNvy9Ld+we5/P6fNurpfC2Tn3n6/m3j6fT3ZPvG+I/WdHdla5RoAGlmPuqKs4VF0YrgxH5nfzdWcOjaMVwUn8rp5umvXiZToZT7rCrsV2i/ivqNY5YbtC3+u8Nx+7dUaiEs6xuL7zhvK36btIWkVlcKZGN94vvZrrj93kF4jVnI5cIxUhjAYphJv4gD/PIodlKgK3FpN3qoBWlQMVHFeeT6XIa5BuyWeWazxNhktCDUBq+QT/Yoo1mP4dH2qiks1qUYs1KLiR0cnNvy9Ld9A3TS+bj5Rf6TfpWjfNF5uTlN3ot+pchuSNSzXcgqxIbMCcJbSTdz40xfoWo81aYftE9XJeL/hqMobObixIN+kr/APP0vc/nkNwGkk8lIwEYLBzdcwvw8VWeWaGE4ZZ0GqD/AL96mxRSC9Tk5t1dL4Wyc+85Mflub83m/tLrxnc1/e5nOZvp08rWIQSHhnEZTHpA8lznlH9qzwf0PYzlPKtiMEZ4GwmUR6AfKs35P/as8U9P2M3WPy3N+czn2l15zWd/vczm8506scVqe0wo6B8WMu8kkQRcDL92tf0cHZk+ehhYgFhyG7TRBB4iDeMkMc7TSmJhITcAFLewRyVoLKCR+Iy828ZGCRRqXkc6AFUYmY/gK4Ntg4JaTNLwiU82T/v2cec6FQy8IWy3LjstmswxMyHik/K3satQy2O32T/uLJOLnAvw3j9Wq2Tp7sn3jfEfrObdlBRIyUjjPsgH19NvaoBS4IMl191wBZtPtOzUAxQACS66+8Eq2j2kZaBdJCEkjHtAn1dNfZyaI5onkX/Vc9/7I2WtGKdjIeYlV+BHrSsZKIfxOBf/ABx1bXtNrJObWzgkA8l7rh7NSORZyXjIOnQhYIb79SixmQOioTqewynDy4qtDm1SFs0SdF66NfQT6Xu04klR1CuCWvXEt2IsFqaRrQkYaNbxgVAdCAXX+jTFpNZSx4zhYqL/APSpsEqaTFhVgw5satr1MTKTdhzcYuu48Wpq4alz03tyXBRfzKoXVychrkG6tA9dLB5EVZrTgIJ0XYsF2p6A1qiMgsZOKAm9iQwZttKs5szFblRjexW58TNxcrZObfl6W7LO4wjXgW4Ej3kN2K/o1K8pXixsWu7VSvEW48DFb+zU7nENSBriQPec3Yr+jRuEqlb+S/10i2izKSVUaw0m/QNSWrMLLa3VhKyAKzAm59bDiD4j7VM48lfzdx49Zl19GtxVbXmlLERxWcE4dJ1L3XBq07MsMZzYbjGJXvGxU7LDZ5b44hpvYYXZjl9z+eSTMpaj56bTqxD0wLvaf0acCCVFjs9wNxuCao7NQZy02jEJEUlguIYXZ2YnWw9mjidQS5HFexxG7ryc26ul8LZOfecqG0cB8IFR5So1rkxYG/zYs42ci/eexSGz8B8Hlh5Sw1rnw42/zZc2ubi/d+3kjEttSGA2aNvRaQTzZtW1k9JunXBNmjsjSotokW69YywErL/Wm0qnRq0PZ+DIFDTiM3Yjm/KHbkZsLLEmL0PTq0yvYbWxW0WeVgbwhTOK2BUVsSSeb1PNvVqayG0xokkwvOGPydHlwgEaWRcNStMkVpc5xgATjEkh0D81TtZuCrFHjhsYYq8oXCrXlfbk9KT3Ivs/vKULGgCooFwAGgAZObeMmDyRkZZ84QEwMML4y2jDhqOy/wDJ8RjeQWUjO3mQ4sDa8WbzrrrRr9p6dJZf+NrYUHBS2phnUjwHNo6qc7gUM+PB06jw/wBIJUDs8ZGZzXm2wxqPeVoXXW9Dp5OnuyfeN8R+s5t2Vb5f3sY426a9Koyc3cA5BPFoF+HXR1qMjOXgvcRx6Ddi13dqW6X9zGeNem3SyJjkUMji9V1eNfSK9KlxTwiMqt4F7DVfSdX2noZu0TFy2kEi8YF0rf8AmqyxgyMf60zC4AjD6tZveWo820wIRsSsDepT2GaoRHZpFciYMCcTYVA1T+qoFdGLYJgRoxcZVsS3frp2tNsdldsT33aRqq0h9FQKT+s5kJgvHpcmK/DS4JVLXreDxsSNKkjJGqyy3ZxwNJuy8hrkG7JbmisUxJeErfdfxjFiFTPA9mN8Uo0m86WxgYfSarQbVasOBGuwhRzZObfl6W76EZcyOzE8SjEb9ZuIVGUMbqwPGpwm/VbiORiucW4MPUeMHrqzpaI1JwOTfx6feRsP5quW0SggRrcbrzpJu/Lq1CHstpc4psQ0LezBsN9/tVZUkMhGG0swuA97jxYehUWtOhETBlIYgOvvauLH7VJgkMjNhvB0EL7pbky+7/PJGrkcRZQbuumUiUXJFgACEXaytf0fdrhNo3kN7ssdxJ49PnKnNpkBJMrC4m8/i2Tm3V0vhbJz7zliM/CXCUirY4xdoMLLPNIzuVWNUiVlxdOojBwlwbIy2yM3aTMzTwyK6FlkV4mVcXQyWfOWCyiATzY41w5uaSV9R3WRsKMvopkVZrWoC2izOQMVy5rFrMisjQ6jLjx+5VlTg/g2xHEIQwJbSGdVXFI+KXAis7YNSrP/ANMKYfKMacfk+Z+zx537TV+zqDPyxTF3XGiXLgZb75WQcdWdRbLMqJPZ1ZI182uFG12jRlaPzEut6FRmGVlBeEkMUYjWQshZGw9HJzbxkGKC0RtFKvFergo3ca4flPACvjFkzQx3YseDOY+XW9zHr5mra3Bdv4NhFms8qrnFMSgqkbqSvvtrbFW1uEeF7WMMloZcAC6pKqt7e4nYydPdk+8b4j9ZzbvoQI7e9dc3aW5qgRG9TXXt2mvb9h5DXIN30ubfl592XSCLj+BpAkY4lUXCkDxnjVheK0AC4fgPqvd/n9Pm3V0vhbJz7zltLWLhCxMz2W1IofDjGCVHifVkjkWrS1t4QtrK9qtTqExYBgiRIk1Y441+r5t4+n092T7xviP1g1Wu08l1HfR30d9HfR30d9HfR30d9HfR30d9HfR30d9HfR30d9HfR30d9HjFHSAOWm7jTdxpu403cabuNab+M+oZRfhvvH40aO+jvo76O+jvo76O+jvo76O+jvo76O+jvo6MN3fTdxpu403cabuNN3Gj3Ghdi4h+FdL4WyAgKTc1xuI46buNN3Gm7jTdxpu403cabuNN3Gm7jTdxpu403cabuNN3GmvJu9R5afuPhT9x8KfuPhT9x8KfuPhT9x8KBEcYOsRdeTo0ZPvG+I/wJ0vhb9q+8b4j/AgJC33gcekEVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qjk6h81RydQ+ao5OofNUcnUPmqOTqHzVHJ1D5qFwdiwv5zf/AooUKFChQoUKFChQoUKFChQoUKFChQ/xD//xAAUEQEAAAAAAAAAAAAAAAAAAACg/9oACAECAQE/ADBf/8QAFBEBAAAAAAAAAAAAAAAAAAAAoP/aAAgBAwEBPwAwX//Z"},11151:(A,e,s)=>{s.d(e,{Z:()=>l,a:()=>i});var o=s(67294);const n={},t=o.createContext(n);function i(A){const e=o.useContext(t);return o.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function l(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(n):A.components||n:i(A.components),o.createElement(t.Provider,{value:e},A.children)}}}]); \ No newline at end of file diff --git a/assets/js/26c67a4b.46d905db.js b/assets/js/26c67a4b.46d905db.js new file mode 100644 index 0000000000..ce274f4a9f --- /dev/null +++ b/assets/js/26c67a4b.46d905db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1992],{89550:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=i(85893),t=i(11151);const o={title:"week-01",author:"Aaditya Singh"},c="Community Bonding Report",r={id:"2024/scheduler/updates/2024-05-09",title:"week-01",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/2024-05-09.md",sourceDirName:"2024/scheduler/updates",slug:"/2024/scheduler/updates/2024-05-09",permalink:"/gsoc/docs/2024/scheduler/updates/2024-05-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/2024-05-09.md",tags:[],version:"current",frontMatter:{title:"week-01",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"Community bonding",permalink:"/gsoc/docs/2024/scheduler/updates/2023-05-30"},next:{title:"week-03",permalink:"/gsoc/docs/2024/scheduler/updates/2024-05-23"}},d={},l=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Discussion:",id:"discussion",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Discussion:",id:"discussion-1",level:3},{value:"Week 1 Activities",id:"week-1-activities",level:2}];function u(e){const n={em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"community-bonding-report",children:"Community Bonding Report"}),"\n",(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 7, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Mentors and contributors introduced themselves."}),"\n",(0,s.jsx)(n.li,{children:"Agreed on the time and platform for general weekly meetings."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 9, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-1",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Mentors emphasized the importance of communication in open source."}),"\n",(0,s.jsx)(n.li,{children:"Held a general Q&A session."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"week-1-activities",children:"Week 1 Activities"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 9, 2024 - May 15, 2024)"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Explored parts of the codebase related to the project and UI."}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>c});var s=i(67294);const t={},o=s.createContext(t);function c(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/273188cf.27be473a.js b/assets/js/273188cf.27be473a.js new file mode 100644 index 0000000000..280e098626 --- /dev/null +++ b/assets/js/273188cf.27be473a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[808],{53034:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var i=t(85893),s=t(11151);const r={title:"Week 6",author:"Kaushlendra"},a="Coding Week 6 Meeting",o={id:"2021/copyrights/updates/2021-07-13",title:"Week 6",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-07-13.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-07-13",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 4 & 5",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-06"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-20"}},c={},l=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 6 Progress",id:"week-6-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={h1:"h1",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"coding-week-6-meeting",children:"Coding Week 6 Meeting"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,i.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,i.jsx)(n.li,{children:"Vasudev"}),"\n",(0,i.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,i.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,i.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Checking results manually and understanding the edge cases."}),"\n",(0,i.jsx)(n.li,{children:"Implementation of the edge cases like Differentiating between ['Date'] and ['Cardinal]."}),"\n",(0,i.jsx)(n.li,{children:"Figuring out the solutions for the DATE and CARDINAL anomaly."}),"\n",(0,i.jsx)(n.li,{children:"Go through different manually checked copyright CSV provided and The final CSV provided by Michael."}),"\n",(0,i.jsx)(n.li,{children:"Generating the Accuracy score for true positives."}),"\n",(0,i.jsx)(n.li,{children:"Thoughts for implementing our own NER model and creating an entity-based table according to our copyrights."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-6-progress",children:"Week 6 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"[Date] needed to be an important entity for copyright recognition. Various solutions have been implemented to get more and more accurate about it."}),"\n",(0,i.jsx)(n.li,{children:"Solution was: ['Cardinal'] --\x3e was included into the NER list and then a python date format check has been implemented which will check whether the date is present in the NER[\"Entity\"] list. (This is reducing the accuracy that means it is not working)"}),"\n",(0,i.jsx)(n.li,{children:"I am working on another solution using regex which will help in removing one more kind of edge case."}),"\n",(0,i.jsx)(n.li,{children:"Divided the datasets into chunks of 10,000 and will traverse through it and check the ideal results on all over it."}),"\n",(0,i.jsxs)(n.li,{children:["Accuracy Score for True Positives was calculated: ",(0,i.jsx)(n.strong,{children:"87.6%"})," which will further increase after removing few more edge cases."]}),"\n",(0,i.jsx)(n.li,{children:"The dataset also contains human errors and it is impacting our accuracy score for TP as well."}),"\n",(0,i.jsx)(n.li,{children:"Wiki has been Updated"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsx)(n.p,{children:"Understanding the edge cases and calculating the accuracy score for statements more than 50 thousand statements."})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>a});var i=t(67294);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2766d498.08017b19.js b/assets/js/2766d498.08017b19.js new file mode 100644 index 0000000000..f1df5479c6 --- /dev/null +++ b/assets/js/2766d498.08017b19.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6690],{5465:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var s=n(85893),i=n(11151);const o={title:"week-03",author:"Aaditya Singh"},r="Community Bonding Report",c={id:"2024/scheduler/updates/2024-05-23",title:"week-03",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/2024-05-23.md",sourceDirName:"2024/scheduler/updates",slug:"/2024/scheduler/updates/2024-05-23",permalink:"/gsoc/docs/2024/scheduler/updates/2024-05-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/2024-05-23.md",tags:[],version:"current",frontMatter:{title:"week-03",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-01",permalink:"/gsoc/docs/2024/scheduler/updates/2024-05-09"},next:{title:"Weekly Updates (Community Bonding)",permalink:"/gsoc/docs/2024/scheduler/updates/2024-06-06"}},d={},u=[{value:"Meeting 4",id:"meeting-4",level:2},{value:"Discussion:",id:"discussion",level:3}];function l(e){const t={em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"community-bonding-report",children:"Community Bonding Report"}),"\n",(0,s.jsx)(t.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(May 23, 2024)"})}),"\n",(0,s.jsx)(t.h3,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Contributors shared their progress."}),"\n",(0,s.jsx)(t.li,{children:"Mentors encouraged making small contributions to gain a better understanding of the project."}),"\n",(0,s.jsx)(t.li,{children:"Finalized timings for project-specific weekly meetings."}),"\n"]})]})}function a(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>r});var s=n(67294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2768a744.9e584e69.js b/assets/js/2768a744.9e584e69.js new file mode 100644 index 0000000000..a744d6d13e --- /dev/null +++ b/assets/js/2768a744.9e584e69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3067],{84071:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>r,toc:()=>c});var s=t(85893),i=t(11151);const d={sidebar_position:5,title:"Final Evaluation"},l=void 0,r={id:"2021/buildsystem/final-evaluation",title:"Final Evaluation",description:"\x3c!--",source:"@site/docs/2021/buildsystem/final-evaluation.md",sourceDirName:"2021/buildsystem",slug:"/2021/buildsystem/final-evaluation",permalink:"/gsoc/docs/2021/buildsystem/final-evaluation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/final-evaluation.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Final Evaluation"},sidebar:"2021",previous:{title:"First Evaluation",permalink:"/gsoc/docs/2021/buildsystem/first-evaluation"},next:{title:"Introduction",permalink:"/gsoc/docs/2021/copyrights/"}},o={},c=[{value:"The CMake Build system",id:"the-cmake-build-system",level:2},{value:"GitHub Actions CI/CD",id:"github-actions-cicd",level:2},{value:"Improvements over previous build system and CI",id:"improvements-over-previous-build-system-and-ci",level:3},{value:"Deliverables",id:"deliverables",level:3},{value:"How it works and how to use it?",id:"how-it-works-and-how-to-use-it",level:2},{value:"Known Issues and Drawbacks",id:"known-issues-and-drawbacks",level:3},{value:"Challenges Faced",id:"challenges-faced",level:3},{value:"Related Resources and Links",id:"related-resources-and-links",level:3},{value:"Future Development Plans",id:"future-development-plans",level:2},{value:"What did I learn from this project?",id:"what-did-i-learn-from-this-project",level:2},{value:"Acknowledgments",id:"acknowledgments",level:2}];function a(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"the-cmake-build-system",children:"The CMake Build system"}),"\n",(0,s.jsxs)(n.p,{children:["FOSSology is quite an old and mature project. The project has been using\nbare metal ",(0,s.jsx)(n.strong,{children:"Makefiles"}),". As the project is growing with new agents and\nmodernization it was required to have a modern build system."]}),"\n",(0,s.jsx)(n.p,{children:"The FOSSology is a suite of well-integrated and synchronized subprojects\n(called agents) written in C, C++, and PHP. Most of the major agents are\nin C, C++ and that made CMake an obvious choice for a new build system\nfor FOSSology. CMake is a versatile set of build, test, and packaging\ntools and is the most popular choice of C/C++ developers. CMake can be\nextended to create a build system for other languages too via custom\nscripts."}),"\n",(0,s.jsx)(n.h2,{id:"github-actions-cicd",children:"GitHub Actions CI/CD"}),"\n",(0,s.jsx)(n.p,{children:"Since the FOSSology project moved on Github, it has used only the free\nTravis CI service for OSS projects. At the time of writing the Travis CI\nhas reduced its free tier CI services. GitHub Actions provides faster\nbuilds. Since GitHub Actions is a fully managed service by GitHub, we\ndon't need to know how to scale and operate the infrastructure to run\nit."}),"\n",(0,s.jsx)(n.p,{children:"It is straightforward to use with GitHub because when we fork a\nrepository, the actions automatically get forked. This allows you to\ntest and build projects very efficiently and even run them closer to the\ndeveloper. Also, you have readily available access to the GitHub API,\nmaking it more popular among developers."}),"\n",(0,s.jsx)(n.h3,{id:"improvements-over-previous-build-system-and-ci",children:"Improvements over previous build system and CI"}),"\n",(0,s.jsx)(n.p,{children:"The new build system and CI brings a lot of improvements and features.\nThe list below describes them."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"CMake enforces out-of-source builds. This was already possible with\nthe previous build system but not a strict requirement. This feature\nkeeps the source code clean and makes cleaning the build artifacts\neasy. (Just remove the build folder :)"}),"\n",(0,s.jsx)(n.li,{children:"One of the major improvements over the previous build system is\nfaster build times. CMake generates parallel build-enabled\nconfigurations for all generators. In our tests, the new build\nsystem is at least twice as fast as the previous one. With further\nimprovement in configuration, we will be able to further cut the\nbuild times."}),"\n",(0,s.jsxs)(n.li,{children:["Previously FOSSology can only be built using ",(0,s.jsx)(n.em,{children:"Unix Makefiles"}),". With\nCMake, we can now use many other popular generators such as ",(0,s.jsx)(n.em,{children:"Ninja"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Now it is also very flexible to choose different compilers. This\nwill help support more platforms and architecture in the future. As\nof now, we are experimenting with Clang compilers."}),"\n",(0,s.jsx)(n.li,{children:"FOSSology is quite an old project and a lot of agent testing code\nwas written in the last decade. Initially, none of them were\ncompatible with the new build system, but we were able to hack most\nof the test code using better-improved methods. Test times have also\nimproved."}),"\n",(0,s.jsx)(n.li,{children:"Migrating from Travis CI to GitHub Actions was another big move and\nfor the most part, it removes the dependency on a third-party CI\nservice. Along with that GitHub Actions provides better build times,\ntons of new features, and better integration with other GitHub\nservices."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"deliverables",children:"Deliverables"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Final Pull Request - ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2075",children:"#2075"})]}),"\n",(0,s.jsxs)(n.li,{children:["Pull Request Branch - ",(0,s.jsx)(n.a,{href:"https://github.com/avinal/fossology/tree/avinal/feat/buildsystem",children:"avinal/feat/buildsystem"})]}),"\n",(0,s.jsxs)(n.li,{children:["Working Branch (individual commits)","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal/fossology/tree/avinal/feat/cmake-buildsystem%22",children:"avinal/feat/cmake-buildsystem"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal/fossology/tree/avinal/feat/testing%22",children:"avinal/feat/testing"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Project Issue - ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/issues/1913",children:"#1913"})]}),"\n",(0,s.jsxs)(n.li,{children:["Project Discussion - ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/discussions/1931",children:"#1931"})]}),"\n",(0,s.jsxs)(n.li,{children:["Weekly Reports","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://gsoc.avinal.space%22",children:"Personal Blog"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2021/buildsystem/%22",children:"FOSSology Official Blog"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"CMake Build System Tasks"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"#"}),(0,s.jsx)(n.th,{children:"Agents"}),(0,s.jsx)(n.th,{children:"Build"}),(0,s.jsx)(n.th,{children:"Install"}),(0,s.jsx)(n.th,{children:"Testing"}),(0,s.jsx)(n.th,{children:"Packaging"}),(0,s.jsx)(n.th,{children:"Remarks"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"adj2nest"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"buckets"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"cli"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"copyright"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"debug"}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"decider"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"deciderjob"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"delagent"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"9"}),(0,s.jsx)(n.td,{children:"demomod"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"(Not Used)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"10"}),(0,s.jsx)(n.td,{children:"example_wc_agent"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"(Not Used)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"11"}),(0,s.jsx)(n.td,{children:"clib"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"cpplib"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"13"}),(0,s.jsx)(n.td,{children:"phplib"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"1 functional test needs fix"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"14"}),(0,s.jsx)(n.td,{children:"maintagent"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"15"}),(0,s.jsx)(n.td,{children:"mimetype"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"monk"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"17"}),(0,s.jsx)(n.td,{children:"ninka"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"(Deprecated)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"18"}),(0,s.jsx)(n.td,{children:"nomos"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"19"}),(0,s.jsx)(n.td,{children:"ojo"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"1 functional test needs fix"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"20"}),(0,s.jsx)(n.td,{children:"pkgagent"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"21"}),(0,s.jsx)(n.td,{children:"readmeoss"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"22"}),(0,s.jsx)(n.td,{children:"regexscan"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"(Deprecated)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"23"}),(0,s.jsx)(n.td,{children:"reportImport"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"24"}),(0,s.jsx)(n.td,{children:"reuser"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"25"}),(0,s.jsx)(n.td,{children:"reso"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"26"}),(0,s.jsx)(n.td,{children:"scheduler"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Tests needs fix"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"27"}),(0,s.jsx)(n.td,{children:"softwareHeritage"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"28"}),(0,s.jsx)(n.td,{children:"spasht"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"29"}),(0,s.jsx)(n.td,{children:"spdx2"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"1 Test failing in CI"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"30"}),(0,s.jsx)(n.td,{children:"unifiedreport"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"31"}),(0,s.jsx)(n.td,{children:"ununpack"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Unit tests needs fix"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"32"}),(0,s.jsx)(n.td,{children:"wget_agent"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"Functional, Unit"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"32"}),(0,s.jsx)(n.td,{children:"www"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"NO"}),(0,s.jsx)(n.td,{children:"YES"}),(0,s.jsx)(n.td,{children:"-"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"GitHub Actions CI Tasks"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"#"}),(0,s.jsx)(n.th,{children:"CI Tasks"}),(0,s.jsx)(n.th,{children:"Status"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"build"}),(0,s.jsx)(n.td,{children:"Added Ubuntu 20.04 GCC 8, 9 and Clang, GCC 7 not working"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"c/cpp unit test"}),(0,s.jsx)(n.td,{children:"Added, delagent, scheduler and ununpack test not working"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"phpunit tests"}),(0,s.jsx)(n.td,{children:"Added, delagent and scheduler test not working"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"workflow cahching"}),(0,s.jsx)(n.td,{children:"Not implemented"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"source install"}),(0,s.jsx)(n.td,{children:"Not implemented"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"how-it-works-and-how-to-use-it",children:"How it works and how to use it?"}),"\n",(0,s.jsxs)(n.p,{children:["The new build system retains the modular and hierarchical structure of\nthe previous build system. On the other hand, the new build system\nprovides several new flags to control the build. The new build system\nforces out-of-source build instead of the previous in-source builds.\nThis keeps the source clutter-free and reduces the chance of\naccidentally deleting source files. ",(0,s.jsx)(n.em,{children:"Testing still needs some in-source\nartifacts, this will be solved once all the tests are fixed according to\nthe new build system."})]}),"\n",(0,s.jsx)(n.p,{children:"Each agent is a complete CMake sub-project with its independent\nconfiguration for building, installing, and testing. That means a single\nagent can be built and installed separately and even removed from the\ndefault build without breaking other builds. The directory structure is\nas below."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:".\n\u251c\u2500\u2500 build # temporary directory for build artifacts\n\u251c\u2500\u2500 cmake # CMake modules for FOSSology\n\u2502 \u251c\u2500\u2500 FoPackaging.cmake # CMake Packaging configurations\n\u2502 \u251c\u2500\u2500 FoUtilities.cmake # Custom CMake utilities\n\u2502 \u251c\u2500\u2500 FoVersionFile.cmake # VERSION version.php CMake template file\n\u2502 \u251c\u2500\u2500 SetDefaults.cmake # CMake defaults for this project\n\u2502 \u251c\u2500\u2500 TestInstall.make.in # Template makefile for install during tests\n\u2502 \u2514\u2500\u2500 VERSION.in # VERSION file template\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 agent-1 # Agent sub-project\n\u2502 \u2502 \u251c\u2500\u2500 agent # Agent's source code directory\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 agent-source-code\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 CMakeLists.txt\n\u2502 \u2502 \u251c\u2500\u2500 agent_tests # Agent's test directory\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 Unit\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 Functional\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 CMakeLists.txt\n\u2502 \u2502 \u251c\u2500\u2500 ui # Agent's UI source code\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 templates\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 agent-ui-code\n\u2502 \u2502 \u2514\u2500\u2500 CMakeLists.txt # Agent's top-level CMake configuration\n: :\n\u2502 \u251c\u2500\u2500 other agents\n: :\n\u2502 \u2514\u2500\u2500 CMakeLists.txt # Source intermediate CMake configuration\n:\n\u251c\u2500\u2500 other directories and files\n:\n\u2514\u2500\u2500 CMakeLists.txt # FOSSology Top-level CMake configuration\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"cmake"})," directory contains customized CMake modules and\ntemplates for FOSSology. This directory is required for all the\noperations. The general workflow of the new build system as well as how\nto use it as described below."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Since the new build system is still in review. You must fork\nFOSSology and pull the\n",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2075",children:"#2075"})," pull\nrequest branch. Once you are in FOSSology root, run these commands."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git fetch https://github.com/avinal/fossology avinal/feat/buildsystem:buildsystem\ngit checkout buildsystem\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["The first step towards building is to create a temporary directory\nfor storing intermediate files and build artifacts. By convention we\nuse a directory named ",(0,s.jsx)(n.code,{children:"build"}),", but you can use any\nname. (",(0,s.jsx)(n.strong,{children:"NOTE: For testing do not use other names"}),")"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"mkdir build\ncd build\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"In the next steps, we will configure the CMake project and generate\nthe required configurations. You can use several flags to control\nthe build. Given below are the flags available for this project."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"CMake Flags"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Default"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"-DCMAKE_INSTALL_PREFIX=<path>"})}),(0,s.jsx)(n.td,{children:"Sets the install prefix."}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"/usr/local"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:'-DAGENTS="agent1;agent2..."'})}),(0,s.jsx)(n.td,{children:"Only configure these agents."}),(0,s.jsx)(n.td,{children:"ALL AGENTS"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"-DOFFLINE=<ON/OFF>"})}),(0,s.jsx)(n.td,{children:"Controls vendor generation, ON=NO"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"OFF"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"-DCMAKE_BUILD_TYPE=<type>"})}),(0,s.jsxs)(n.td,{children:["- ",(0,s.jsx)(n.code,{children:"Debug"}),", ",(0,s.jsx)(n.code,{children:"Release"}),", ",(0,s.jsx)(n.code,{children:"RelWithDebInfo"}),",",(0,s.jsx)(n.code,{children:"MinSizeRel"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Debug"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"-DTESTING=<ON/OFF>"})}),(0,s.jsx)(n.td,{children:"Controls testing config generation"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"OFF"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"-DMONOPACK=<ON/OFF>"})}),(0,s.jsx)(n.td,{children:"Package adj2nest and ununpack seperately"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"OFF"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"-GNinja"})}),(0,s.jsx)(n.td,{children:"Use Ninja instead of Unix Makefiles"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"Unix MakeFiles"})})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["There are lots of inbuilt CMake command-line options you can see them in the official ",(0,s.jsx)(n.a,{href:"https://cmake.org/cmake/help/v3.10/manual/cmake.1.html",children:"documentation"}),". Once you have chosen your flags we can now configure the project using the following commands."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# From build folder\ncd <name-of-build-directory>\ncmake <flags> ..\n"})}),"\n",(0,s.jsxs)(n.p,{children:["4 . The next step is to build the project. You can use parallel jobs to build faster. For more options you can type ",(0,s.jsx)(n.code,{children:"cmake --help"})," or ",(0,s.jsx)(n.code,{children:"make --help"})," or ",(0,s.jsx)(n.code,{children:"ninja --help"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Common build command for all generators,\n# Default number of parallel builds depends on generator used\ncmake --build . --parallel <no-of-processes>\n\n# For Unix Makefiles, no parallel build by default\nmake -j <no-of-processes>\n\n# For Ninja, 8+ parallel build by default (depends on system)\nninja -j <no-of-processes>\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"5",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Installing is also as easy as building. You can choose to install\nonly certain components even if you have built the whole project. If\nyou directly invoke the install command without building the\nproject, it will automatically build the project first."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# For Unix Makefiles\nmake install\n\n# For Ninja\nninja install\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["While testing has some issues, but most of the testing is working\nfine. For now, you must build and run any test from the FOSSology\nroot directory only. You can choose to configure a single agent if\nyou want to test one agent only. See ",(0,s.jsx)(n.code,{children:"ctest --help"})," for\ncontrolling test runs."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Common testing command\nctest --parallel <no-of-processes>\n\n# For Unix Makefiles\nmake test\n\n# For Ninja\nninja test\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["You can package FOSSology, the packaging currently lacks copyright\nand conf files. But for testing purposes, you can use the following\ncommands. Similar to installing, if you run the package command\nwithout building the project, it will automatically build the\nproject first. See ",(0,s.jsx)(n.code,{children:"cpack --help"})," for more packaging\noptions."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Common testing command\ncpack\n\n# For Unix Makefiles\nmake package\n\n# For Ninja\nninja package\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"known-issues-and-drawbacks",children:"Known Issues and Drawbacks"}),"\n",(0,s.jsx)(n.p,{children:"Although the transition from Makefiles to CMake and Travis CI to GitHub\nActions is almost complete and working as expected. But it is not free\nof drawbacks and issues. This section outlines the known issues at the\ntime of writing."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Coverage builds may fail with linking errors."}),"\n",(0,s.jsx)(n.li,{children:"Packaging prefix is the same as the install prefix. This requires\nthe developer to set the install prefix manually before packaging to\nproduce packages with the correct directory structure."}),"\n",(0,s.jsx)(n.li,{children:"Testing and packaging must be used from the FOSSology root\ndirectory. Not doing so may or may not configure the project as\nintended."}),"\n",(0,s.jsx)(n.li,{children:"Previously tests were written hardcoded for the Makefiles. But new\nbuild system requires all artifacts to be generated in a separate\ndirectory. This required me to add symbolic links wherever a\ngenerated script or file is expected. Tests can still leave some\nartifacts inside source folders."}),"\n",(0,s.jsx)(n.li,{children:"There is no easy way to install a particular agent from the\nFOSSology root directory."}),"\n",(0,s.jsxs)(n.li,{children:["Packages don't contain copyright, readme, and license files. CMake\ndoesn't provide a way to include these files. This is being tracked\nby issue\n",(0,s.jsx)(n.a,{href:"https://gitlab.kitware.com/cmake/cmake/-/issues/21832",children:"#21832"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"While packaging the symbolic links may or may not be dereferenced\nand hence results in copying the folder too in the target directory."}),"\n",(0,s.jsxs)(n.li,{children:["Running tests locally may require switching to ",(0,s.jsx)(n.code,{children:"fossy"}),"\nuser."]}),"\n",(0,s.jsx)(n.li,{children:"While configured for testing, it may give permission errors."}),"\n",(0,s.jsxs)(n.li,{children:["Scheduler, Ununpack, and Delagent unit and functional tests are not\nworking. I have added an issue\n",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/issues/2084",children:"#2084"})," to\ntrack the progress on fixing these tests."]}),"\n",(0,s.jsxs)(n.li,{children:["CMake doesn't generates uninstall targets. The closest thing to\nuninstall is ",(0,s.jsx)(n.a,{href:"https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake",children:"this\nsnippet"}),".\nThis will be later added to the FOSSology."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"challenges-faced",children:"Challenges Faced"}),"\n",(0,s.jsx)(n.p,{children:"While this whole project was challenging, some aspects of it were\nunforeseen and more challenging. When I decided to go on with this\nproject I just had enough CMake knowledge to write a configuration for a\nvery small project. I had never used CMake on this big scale. On the\nother side, the FOSSology community is largely unknown to CMake so for\nall of us it was learn, practice, and implement. With support from\nmentors, I was able to overcome this challenge with flying colors."}),"\n",(0,s.jsx)(n.p,{children:"The other challenge was to understand the old build system, how they are\nall connected and what is the flow. The complexity can be imagined by\nthe fact that the most of code and configurations were written in the\ndecade before the last decade and haven't changed much since then."}),"\n",(0,s.jsx)(n.p,{children:"The most challenging task was to make tests work with the new build\nsystem. Since tests were mostly hardcoded and the new build system\nrefactored many of the files and directory, the tests were failing\ninitially. The testing part took me the most time. All thanks to my\nmentor Gaurav and my friend Sarita I was able to hack them to suit the\nnew build system."}),"\n",(0,s.jsx)(n.h3,{id:"related-resources-and-links",children:"Related Resources and Links"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fix FOSSology agent tests issue\n",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/issues/2084",children:"#2084"})]}),"\n",(0,s.jsxs)(n.li,{children:["feat(CI): Migrate API docs generation and deployment to GitHub\nActions pull request\n",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/1917",children:"#1917"})]}),"\n",(0,s.jsxs)(n.li,{children:["feat(CI): Migrate Static Checks and Analysis to GitHub Actions from\nTravis CI ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/1919",children:"#1919"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"future-development-plans",children:"Future Development Plans"}),"\n",(0,s.jsx)(n.p,{children:"There is a lot to do with the new build system and CI and it will\nprobably take a year or to reach a maturity point. I was able to meet\nmost of the goals but some of them are remaining."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Fix the tests, probably renovate them from the ground up."}),"\n",(0,s.jsx)(n.li,{children:"Find a hack for packaging problems."}),"\n",(0,s.jsx)(n.li,{children:"Improve and optimize the build."}),"\n",(0,s.jsx)(n.li,{children:"Modernise the source code, remove old, bloated code and replace them\naccording to new standards."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"what-did-i-learn-from-this-project",children:"What did I learn from this project?"}),"\n",(0,s.jsx)(n.p,{children:"This Google Summer of Code was the busiest time of my life for all good\nreasons. I learned a lot about license compliance and how it all works\nin the software industry. The next big thing is CMake. As I mentioned I\nwas just a novice user of CMake. Now I am confident that given any other\nlarge project I will be able to migrate it/improve it. I got to learn\nPHP, of which I did not know a single word before GSoC. And finally, I\nlearned about packing and testing. I had these courses but implementing\nthem myself and fixing them was a wholesome experience."}),"\n",(0,s.jsx)(n.p,{children:"Other than that I improved on my communication and presentation skills.\nCollaborating with fellow participants was one of the great things that\nhappened during GSoC."}),"\n",(0,s.jsx)(n.h2,{id:"acknowledgments",children:"Acknowledgments"}),"\n",(0,s.jsx)(n.p,{children:"Google Summer of Code is the best thing that has happened to me this\nyear so far. Although there are numerous people to say thanks to, I want\nto mention key people who were my motivation and support during this\nperiod."}),"\n",(0,s.jsxs)(n.p,{children:["First of all, I want to thank and appreciate my mentors ",(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),", ",(0,s.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"}),", ",(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"}),", and ",(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),". Without the help and support from them, all this would not have been possible. They are very polite, knowledgeable, and helpful."]}),"\n",(0,s.jsxs)(n.p,{children:["I want to thank my friend and fellow participant ",(0,s.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita"}),". Thank you for being a collaborator, support, and motivation for attempting GSoC."]}),"\n",(0,s.jsx)(n.p,{children:"Finally, I want to thanks, my family and friends. I got to meet many awesome developers as my fellow participants from around the world, I wish we will do more collaboration in the future."})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>l});var s=t(67294);const i={},d=s.createContext(i);function l(e){const n=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/276db9af.ac7a366b.js b/assets/js/276db9af.ac7a366b.js new file mode 100644 index 0000000000..74a71744b7 --- /dev/null +++ b/assets/js/276db9af.ac7a366b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2801],{83404:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var t=n(85893),o=n(11151);const a={title:"Week 3",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},i=void 0,r={id:"2022/ui/updates/soham/2022-07-7",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-07-7.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-07-7",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-7",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-07-7.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 3",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-3"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-8"}},l={},c=[{value:"Horizontal Pagination implementation in browse page",id:"horizontal-pagination-implementation-in-browse-page",level:2},{value:"PR link - feat(ui): Pagination in Browse page",id:"pr-link---featui-pagination-in-browse-page",level:3},{value:"/jobs API",id:"jobs-api",level:2},{value:"PR link - feat(API): /jobs returns only logged in user's jobs",id:"pr-link---featapi-jobs-returns-only-logged-in-users-jobs",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"horizontal-pagination-implementation-in-browse-page",children:"Horizontal Pagination implementation in browse page"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 3rd, 2022)"})}),"\n",(0,t.jsx)(s.p,{children:"Implementation of the horizontal page navigator in the browse page. The pagination module fetches the data from the API on page basis thus reducing the response time of the API in the browse page. This was implemented earlier in the allRecentJobs page."}),"\n",(0,t.jsxs)(s.p,{children:["The Browse page with the new Pagination module: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(s.img,{alt:"pagination",src:n(74289).Z+"",width:"1920",height:"997"})]}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link---featui-pagination-in-browse-page",children:["PR link - ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/237",children:"feat(ui): Pagination in Browse page"})]}),"\n",(0,t.jsx)(s.h2,{id:"jobs-api",children:"/jobs API"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.code,{children:"/jobs"})," endpoint now sends only the jobs created by the logged in user. This API can be called by both the Admin and other users."]}),"\n",(0,t.jsxs)(s.p,{children:["Fossy user Page: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(s.img,{alt:"jobs_res",src:n(74156).Z+"",width:"1920",height:"994"})]}),"\n",(0,t.jsxs)(s.p,{children:["Another user's Page: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(s.img,{alt:"jobs_res",src:n(53757).Z+"",width:"1920",height:"1002"})]}),"\n",(0,t.jsx)(s.p,{children:"Mentors asked to create an flag to get all the jobs irrespective of the user which will only be used by the Admin user."}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link---featapi-jobs-returns-only-logged-in-users-jobs",children:["PR link - ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2252",children:"feat(API): /jobs returns only logged in user's jobs"})]}),"\n",(0,t.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Implementing the neccesary flags proposed by the mentors in the API."}),"\n",(0,t.jsx)(s.li,{children:"Create any missing API endpoint related to the Jobs module."}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},74289:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/browse_pagination-3e2ff79b59e617faaa35bc8a5b1471ca.png"},53757:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/buggy_response-2236d90eaa295bf17c2d9b754026152d.png"},74156:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/fossy_response-5cad91f1257d7fde183ebfe90812d3a6.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>i});var t=n(67294);const o={},a=t.createContext(o);function i(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/27a55f2d.e5dfa28a.js b/assets/js/27a55f2d.e5dfa28a.js new file mode 100644 index 0000000000..5a5fe744be --- /dev/null +++ b/assets/js/27a55f2d.e5dfa28a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8905],{60928:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var s=i(85893),o=i(11151);const t={title:"Community bonding",author:"Rajul Jha"},d=void 0,l={id:"2024/ci-scanner/updates/2024-05-07",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-05-07.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-05-07",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-05-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-05-07.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Rajul Jha"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/ci-scanner/"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-06"}},r={},c=[{value:"Meeting 1",id:"meeting-1",level:3},{value:"Discussion:",id:"discussion",level:3},{value:"Meeting 2",id:"meeting-2",level:3},{value:"Discussion:",id:"discussion-1",level:3},{value:"Work Done:",id:"work-done",level:3},{value:"Meeting 3",id:"meeting-3",level:3},{value:"Discussion:",id:"discussion-2",level:3},{value:"Work Done:",id:"work-done-1",level:3},{value:"Meeting 4",id:"meeting-4",level:3},{value:"Discussion:",id:"discussion-3",level:3},{value:"Work Done:",id:"work-done-2",level:3},{value:"Meeting 5",id:"meeting-5",level:3}];function a(e){const n={a:"a",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h3,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 7, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Could not attend due to family emergency."}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"community-bonding-week-1",children:"Community Bonding Week 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 9, 2024 - May 15, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 9, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-1",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I gave my introduction in the meeting."}),"\n",(0,s.jsx)(n.li,{children:"Got to know my mentors and colleagues."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"work-done",children:"Work Done:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Tried to setup the coding environment."}),"\n",(0,s.jsxs)(n.li,{children:["Set up a Virtual Machine because fossology does not work on Mac.","\ud83d\ude14"]}),"\n",(0,s.jsxs)(n.li,{children:["Faced challenges installing some python packages which were not available for aarch64 architecture.\nWorked around the issue by commenting ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/6e6b00c2ded6a1db7647d0da9e97c78ed9ffddf8/install/fo-postinstall.in#L261-L263",children:"this out"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"community-bonding-week-2",children:"Community Bonding Week 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 16, 2024 - May 23, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 16, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-2",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Contributors shared their weekly updates."}),"\n",(0,s.jsx)(n.li,{children:"Discussed and decided time for weekly project specific meetings."}),"\n",(0,s.jsx)(n.li,{children:"Mentors talked about the importance of open communication in open source."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"work-done-1",children:"Work Done:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Played around with fossology and scanned a few repositories."}),"\n",(0,s.jsx)(n.li,{children:"Tried to understand how scanners work internally."}),"\n",(0,s.jsx)(n.li,{children:"Talked with other contributors about the project."}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"community-bonding-week-3",children:"Community Bonding Week 3"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 23, 2024 - May 30, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 23, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-3",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Had final discussions on projects."}),"\n",(0,s.jsx)(n.li,{children:"Finalized any changes to the project milestones."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"work-done-2",children:"Work Done:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Tried building the fossology scanner image locally."}),"\n",(0,s.jsx)(n.li,{children:"Played around a while with the image, trying to understand what it does."}),"\n",(0,s.jsxs)(n.li,{children:["Faced an issue of UI freezing in the VM. Solved it by using ",(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/docs/remote/ssh",children:"SSH Remote Tunneling"})]}),"\n",(0,s.jsx)(n.li,{children:"Started to theorize how the line number algorithm would work."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 30, 2024)"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Discussed the project updates from the mentors and contributors."}),"\n",(0,s.jsx)(n.li,{children:"Got clear understanding of how to document our progress during the whole program."}),"\n",(0,s.jsx)(n.li,{children:"Had discussions with the mentors about how to approach the algorithm for line numbers."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:(0,s.jsx)(n.strong,{children:"This summarizes my community bonding period at Fossology"})})})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>d});var s=i(67294);const o={},t=s.createContext(o);function d(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/27ad8414.dbaa8c0a.js b/assets/js/27ad8414.dbaa8c0a.js new file mode 100644 index 0000000000..8e3afcdb3a --- /dev/null +++ b/assets/js/27ad8414.dbaa8c0a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4930],{5528:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>o,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var i=s(85893),h=s(11151);const r={title:"Week-08",author:"Aaditya Singh"},t="Meeting 15",a={id:"2024/scheduler/updates/General/2024-06-27",title:"Week-08",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/General/2024-06-27.md",sourceDirName:"2024/scheduler/updates/General",slug:"/2024/scheduler/updates/General/2024-06-27",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/General/2024-06-27.md",tags:[],version:"current",frontMatter:{title:"Week-08",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-07",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-20"},next:{title:"week-09",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-07-04"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2}];function c(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,h.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-15",children:"Meeting 15"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 27,2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:(0,i.jsx)(n.strong,{children:"Shaheem Azmal M MD"})}),": Addressed general updates, reviewed pull requests, and resolved issues. Focused on developing the License Database UI and backend REST API."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:(0,i.jsx)(n.strong,{children:"Akash Sah"})}),": Completed the report generation for SPDX, handling tag values and License expressions. Currently enhancing the main license codebase, delving into the codebase, and clarifying aspects in the application report."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:(0,i.jsx)(n.strong,{children:"Rajul Jha"})}),": Concluded work on custom keywords functionality, which aids in directing scanner operations to specified locations and keys as requested by the user.\r\nContinued development on the differential scan design, utilizing the ",(0,i.jsx)(n.code,{children:"GitHub API"})," and ",(0,i.jsx)(n.code,{children:"GitLab API"})," to implement distinct tagging strategies discussed in the previous meeting, which assist in distinguishing scan types."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:(0,i.jsx)(n.strong,{children:"Gaurav Mishra"})}),": Discussed the architecture of differential scanning, which requires two inputs per your suggestions. Several methods were considered, inspired by Git's differential scanning mechanisms in pull requests and merging capabilities. Identified four modes of execution:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Based on Pull Request"}),"\n",(0,i.jsx)(n.li,{children:"Scanning of a repo"}),"\n",(0,i.jsx)(n.li,{children:"User-defined Tags"}),"\n",(0,i.jsx)(n.li,{children:"Current release vs. Pre-release"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:(0,i.jsx)(n.strong,{children:"Abhishek Kumar"})}),": Spent the past week working on the validation of JSON Schema. Successfully generated a tag value report."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:(0,i.jsx)(n.strong,{children:"Shaheem Azmal M MD"})}),": Inquired about the validation of the JSON report."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:(0,i.jsx)(n.strong,{children:"Aaditya Singh"})}),": Based on discussions from the previous week, proposed solutions to encountered problems, including:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Deadlock Handling"}),"\n",(0,i.jsx)(n.li,{children:"Heartbeat Mechanism"}),"\n",(0,i.jsx)(n.li,{children:"Load based on User"}),"\n",(0,i.jsx)(n.li,{children:"Synchronization between Semaphores.\r\nExplained how the Golang Scheduler functions."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:(0,i.jsx)(n.strong,{children:"Gaurav Mishra"})}),": Advised on organizing PRs based on commits to track weekly progress rather than batching all commits into one PR."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:(0,i.jsx)(n.strong,{children:"Divij Sharma"})}),":"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:(0,i.jsx)(n.strong,{children:"Abdelrahman Jamal"})}),": Worked on integrating semantic search with LLM models."]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,h.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>t});var i=s(67294);const h={},r=i.createContext(h);function t(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(h):e.components||h:t(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/27bed139.e20e4078.js b/assets/js/27bed139.e20e4078.js new file mode 100644 index 0000000000..f022b080b2 --- /dev/null +++ b/assets/js/27bed139.e20e4078.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[783],{26219:a=>{a.exports=JSON.parse('{"tag":{"label":"atarashi","permalink":"/gsoc/docs/tags/atarashi","allTagsPath":"/gsoc/docs/tags","count":13,"items":[{"id":"2022/atarashi/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-02"},{"id":"2022/atarashi/updates/2022-06-13","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-13"},{"id":"2022/atarashi/updates/2022-08-16","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-16"},{"id":"2022/atarashi/updates/2022-08-23","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-23"},{"id":"2022/atarashi/updates/2022-08-30","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-30"},{"id":"2022/atarashi/updates/2022-06-20","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-20"},{"id":"2022/atarashi/updates/2022-06-27","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-27"},{"id":"2022/atarashi/updates/2022-07-04","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-04"},{"id":"2022/atarashi/updates/2022-07-11","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-11"},{"id":"2022/atarashi/updates/2022-07-19","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-19"},{"id":"2022/atarashi/updates/2022-07-26","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-26"},{"id":"2022/atarashi/updates/2022-08-02","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-02"},{"id":"2022/atarashi/updates/2022-08-09","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-09"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/28315084.586f7ef1.js b/assets/js/28315084.586f7ef1.js new file mode 100644 index 0000000000..9e0a2eb4f7 --- /dev/null +++ b/assets/js/28315084.586f7ef1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1989],{54979:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var s=i(85893),t=i(11151);const r={title:"Week 1",author:"Divij Sharma",tags:["gsoc24","rest"]},o="Week 1 meeting and activities",a={id:"2024/rest/updates/Divij/2024-05-30",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-05-30.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-05-30",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-05-30.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 1",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Community bonding",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-05-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-06"}},l={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"week-1-meeting-and-activities",children:"Week 1 meeting and activities"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 30,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Who should be doing what?"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Discussed project responsibilities with my colleague ",(0,s.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens"})," and mentors."]}),"\n",(0,s.jsx)(n.li,{children:"We decided that currently I will focus on the REST API Version 2 upgrade and OAuth 2.0 implementation, while Valens would work on adding test cases for the current REST API implementation."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"REST API Version 2 updates"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I mentioned that the work on the REST API Version 2 upgrade is almost complete and suggested we can start looking for any further improvements."}),"\n",(0,s.jsxs)(n.li,{children:["Mentors suggested I should review the code and look for any possible improvements based on my proposed guidelines. ",(0,s.jsx)(n.a,{href:"/gsoc/docs/2024/rest/API-guidelines",children:"(REST API Guidelines)"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"OAuth 2.0 architecture discussion and needs"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})," explained the various modes of authentication we aim to have in the FOSSology project. These are:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Token based authentication"}),"\n",(0,s.jsx)(n.li,{children:"Authorization Code Grant (Web Application)"}),"\n",(0,s.jsx)(n.li,{children:"Client Credentials Grant (Machine to Machine)"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["I cleared my doubts regarding the OAuth 2.0 implementation and its significance in the project. I also got a rough vision of what needs to be implemented and what is already implemented. ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/wiki/OpenID-Connect-authentication-configuration",children:"(Reference Material)"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"activities",children:"Activities"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Tested the REST API Version 2 on a local instance and noted down the improvements that can be made."}),"\n",(0,s.jsx)(n.li,{children:"Researched on OAuth 2.0 and how it can be implemented in the project."}),"\n",(0,s.jsxs)(n.li,{children:["Did minor improvements in the following PR:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2711",children:"feat(api): Upgrade User & Group APIs to Version 2 "})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>o});var s=i(67294);const t={},r=s.createContext(t);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/28550c33.7d0fafce.js b/assets/js/28550c33.7d0fafce.js new file mode 100644 index 0000000000..6ad58dd84a --- /dev/null +++ b/assets/js/28550c33.7d0fafce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9365],{32827:s=>{s.exports=JSON.parse('{"tag":{"label":"ui","permalink":"/gsoc/docs/tags/ui","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/ayush/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/ayush/2022-06-02"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/29499316.ce47457a.js b/assets/js/29499316.ce47457a.js new file mode 100644 index 0000000000..68187f84dd --- /dev/null +++ b/assets/js/29499316.ce47457a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4784],{23208:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var n=t(85893),i=t(11151);const o={title:"Week 6",author:"Abdelrahman Jamal"},a=void 0,r={id:"2023/copyrights/updates/2023-07-05",title:"Week 6",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-07-05.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-07-05",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-05",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-07-05.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 5",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-28"},next:{title:"Week 7",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-12"}},l={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Mentor Feedback",id:"mentor-feedback",level:3},{value:"Repository Clearing",id:"repository-clearing",level:3},{value:"Scancodes Tool",id:"scancodes-tool",level:3},{value:"Cleared Copyrights List",id:"cleared-copyrights-list",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Scancodes Familiarization",id:"scancodes-familiarization",level:3},{value:"Script Development",id:"script-development",level:3},{value:"Dataset Labeling",id:"dataset-labeling",level:3}];function d(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July,05,2023)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"updates",children:"Updates:"}),"\n",(0,n.jsx)(s.h3,{id:"mentor-feedback",children:"Mentor Feedback"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Presented my partially cleared dataset of copyrights to my mentors and sought clarification on ambiguous statements. The context in which a statement appears plays a crucial role in its interpretation."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"repository-clearing",children:"Repository Clearing"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Completed the review of copyrights from the TensorFlow and Kubernetes repositories. The cleared copyrights from TensorFlow can be accessed ",(0,n.jsx)(s.a,{href:"https://docs.google.com/spreadsheets/d/1wlenesocWRfWlz1nZjcNjwRCjBhS2s0NlvHoEwoIIMg/edit?usp=sharing",children:"here"})," and those from Kubernetes are available ",(0,n.jsx)(s.a,{href:"https://docs.google.com/spreadsheets/d/1g8Xap3nZfb0gRJp4QPi9skpxKmFIL4ZJElYhO_s6MaI/edit?usp=sharing",children:"here"}),"."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"scancodes-tool",children:"Scancodes Tool"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Anupam recommended using ",(0,n.jsx)(s.a,{href:"https://scancode-toolkit.readthedocs.io/en/latest/index.html",children:"scancodes"})," to first retrieve copyrights. The subsequent step would be to develop a script to compare copyrights discovered by scancodes with those identified by Fossology. The advantage of scancodes is its accuracy, even though it might not capture every copyright."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"cleared-copyrights-list",children:"Cleared Copyrights List"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Gaurav indicated the possibility of obtaining a list of pre-cleared copyrights, although its preparation might necessitate some time."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,n.jsx)(s.h3,{id:"scancodes-familiarization",children:"Scancodes Familiarization"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Delve into scancodes to understand the options pertinent to copyrights."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"script-development",children:"Script Development"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Develop a script to harness scancodes for retrieving copyrights."}),"\n",(0,n.jsx)(s.li,{children:"Design a script that juxtaposes copyrights detected by scancodes with those by Fossology to assist in dataset clearing."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"dataset-labeling",children:"Dataset Labeling"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Persist in annotating the copyrights dataset."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>r,a:()=>a});var n=t(67294);const i={},o=n.createContext(i);function a(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2a0a0a98.8df4eb1b.js b/assets/js/2a0a0a98.8df4eb1b.js new file mode 100644 index 0000000000..63698a1e6e --- /dev/null +++ b/assets/js/2a0a0a98.8df4eb1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6867],{30462:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>o});var t=s(85893),i=s(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 10",d={id:"2023/laas/updates/2023-08-04",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-08-04.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-08-04",permalink:"/gsoc/docs/2023/laas/updates/2023-08-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-08-04.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-28"},next:{title:"Final Evaluation",permalink:"/gsoc/docs/2023/laas/finalevaluation"}},c={},o=[{value:"Attendees",id:"attendees",level:2},{value:"Updates",id:"updates",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Conclusion and Future Plan",id:"conclusion-and-future-plan",level:2}];function r(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"week-10",children:"Week 10"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June, 04, 2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates",children:"Updates"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Added Audit endpoints:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"/api/audit: to get all the audit"}),"\n",(0,t.jsx)(n.li,{children:"/api/audit/:audit_id: to get the audit log by its id"}),"\n",(0,t.jsxs)(n.li,{children:["/api/audit/",":audit_id","/changes: to get all the change log of a particular audit"]}),"\n",(0,t.jsxs)(n.li,{children:["/api/audit/",":audit_id","/changes/","\ud83c\udd94"," to get change of a particular change log"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Add the datacomponents of change log."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"We need to add the candidate license."}),"\n",(0,t.jsx)(n.li,{children:"All the licenses created will be a part of candidate licenses database."}),"\n",(0,t.jsx)(n.li,{children:"Update the names of structs of ChangeLog and ChangeHistory as Audit and ChangeLog respectively."}),"\n",(0,t.jsx)(n.li,{children:"Add the schema diagram of all the fields of structs and how the tables are connected."}),"\n",(0,t.jsx)(n.li,{children:"Update the documentation and update the readme of the project."}),"\n",(0,t.jsx)(n.li,{children:"Next we have to work on Obligation."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and Future Plan"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Work on the suggestions on audit pr."}),"\n",(0,t.jsx)(n.li,{children:"Open a new pull request for Updated Readme."}),"\n",(0,t.jsx)(n.li,{children:"Add the endpoints related for candidate licenses."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(r,{...e})}):r(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>l});var t=s(67294);const i={},a=t.createContext(i);function l(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2a2d99b8.0269b2d4.js b/assets/js/2a2d99b8.0269b2d4.js new file mode 100644 index 0000000000..a9ca9c0445 --- /dev/null +++ b/assets/js/2a2d99b8.0269b2d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2367],{38456:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>a});var o=i(85893),t=i(11151);const r={sidebar_position:1,title:"Introduction",slug:"/2021/microservice/"},s="Author",c={id:"2021/microservice/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2021/microservice/index.md",sourceDirName:"2021/microservice",slug:"/2021/microservice/",permalink:"/gsoc/docs/2021/microservice/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2021/microservice/"},sidebar:"2021",previous:{title:"Setup",permalink:"/gsoc/docs/2021/copyrights/setup"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-07"}},l={},a=[{value:"Current Draw backs of installing FOSSology in cluster mode",id:"current-draw-backs-of-installing-fossology-in-cluster-mode",level:2},{value:"Project Goal",id:"project-goal",level:2}];function d(e){const n={a:"a",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"author",children:"Author"}),"\n",(0,o.jsx)(n.p,{children:"Omar AbdelSamea"}),"\n",(0,o.jsx)(n.h1,{id:"contact-info",children:"Contact Info"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"mailto:omarmohamed168@gmail.com",children:"Email"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://www.linkedin.com/in/omarmohamed1999/",children:"Linked In"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"GitHub"})}),"\n"]}),"\n",(0,o.jsx)(n.h1,{id:"project-description",children:"Project Description"}),"\n",(0,o.jsx)(n.p,{children:"FOSSology is designed in modular fashion but it certainly does not follow micro-service architecture. If there is a change in an agent's logic, the whole source code has to be built again and installed. Whereas in micro-service architecture, only this agent needs to be built and installed/deployed."}),"\n",(0,o.jsx)(n.h2,{id:"current-draw-backs-of-installing-fossology-in-cluster-mode",children:"Current Draw backs of installing FOSSology in cluster mode"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"When adding or removing a node, scheduler needs to be restarted."}),"\n",(0,o.jsx)(n.li,{children:"Every node needs to have same set of agents."}),"\n",(0,o.jsx)(n.li,{children:"Because of the current version check mechanism on scheduler, for a single change, the whole code base needs to be redeployed to get new version string."}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"project-goal",children:"Project Goal"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Ability to add one agent to each node for easier updating and scaling."}),"\n",(0,o.jsx)(n.li,{children:"Dynamically adding new nodes without the need to restart or stop the scheduler"}),"\n",(0,o.jsx)(n.li,{children:"Kubernetes deployment for easy scaling in or out"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>s});var o=i(67294);const t={},r=o.createContext(t);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2a92eb23.de431f76.js b/assets/js/2a92eb23.de431f76.js new file mode 100644 index 0000000000..185110fac6 --- /dev/null +++ b/assets/js/2a92eb23.de431f76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9158],{9086:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var n=i(85893),t=i(11151);const r={title:"Week 2",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},d="Week 2 Meeting and Activities",o={id:"2024/spdx-expression/updates/2024-06-04",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/updates/2024-06-04.md",sourceDirName:"2024/spdx-expression/updates",slug:"/2024/spdx-expression/updates/2024-06-04",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/updates/2024-06-04.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx-expression",permalink:"/gsoc/docs/tags/spdx-expression"}],version:"current",frontMatter:{title:"Week 2",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-05-28"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-11"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Schema Presentation",id:"schema-presentation",level:3},{value:"Activities",id:"activities",level:2},{value:"ScreenShots",id:"screenshots",level:2},{value:"License Expression Table",id:"license-expression-table",level:3},{value:"License Expression Schema",id:"license-expression-schema",level:3},{value:"Edit Expression Modal",id:"edit-expression-modal",level:3}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-2-meeting-and-activities",children:"Week 2 Meeting and Activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 4, 2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsx)(s.h3,{id:"schema-presentation",children:"Schema Presentation"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Presented the two schemas for storing license expressions."}),"\n",(0,n.jsx)(s.li,{children:"Mentors suggested that storing AST in JSONB was the better idea and to move forward with it."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Modified the OJO code base to scan expressions using regex and store expressions as AST in the database."}),"\n",(0,n.jsx)(s.li,{children:"Worked on creating UI components to display and edit expressions."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"screenshots",children:"ScreenShots"}),"\n",(0,n.jsx)(s.h3,{id:"license-expression-table",children:"License Expression Table"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"License Expression Table",src:i(18061).Z+"",width:"1850",height:"224"})}),"\n",(0,n.jsx)(s.h3,{id:"license-expression-schema",children:"License Expression Schema"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"License Expression Schema",src:i(71925).Z+"",width:"854",height:"102"})}),"\n",(0,n.jsx)(s.h3,{id:"edit-expression-modal",children:"Edit Expression Modal"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Edit Expression Modal",src:i(59288).Z+"",width:"505",height:"419"})})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},59288:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/editExpressionModal-fc64ff8211bd386519d14c447ed2099c.png"},71925:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/licenseExpressionSchema-84688775724d0e3451fba3eeacb0df61.png"},18061:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/licenseExpressionTable-1e76fdd7916d29d95e6ebc458216f99b.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>o,a:()=>d});var n=i(67294);const t={},r=n.createContext(t);function d(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2ae875ed.b0646dc4.js b/assets/js/2ae875ed.b0646dc4.js new file mode 100644 index 0000000000..105e6ec0e8 --- /dev/null +++ b/assets/js/2ae875ed.b0646dc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5593],{69870:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>o});var s=n(85893),t=n(11151);const a={title:"Final Evaluation",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l=void 0,r={id:"2023/laas/finalevaluation",title:"Final Evaluation",description:"\x3c!--",source:"@site/docs/2023/laas/finalevaluation.md",sourceDirName:"2023/laas",slug:"/2023/laas/finalevaluation",permalink:"/gsoc/docs/2023/laas/finalevaluation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/finalevaluation.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Final Evaluation",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-08-04"},next:{title:"Introduction",permalink:"/gsoc/docs/2023/cyclonedx/"}},d={},o=[{value:"License as a Service",id:"license-as-a-service",level:2},{value:"What I did",id:"what-i-did",level:2},{value:"Project Structure",id:"project-structure",level:3},{value:"Database",id:"database",level:3},{value:"APIs",id:"apis",level:3},{value:"API endpoints",id:"api-endpoints",level:3},{value:"Deliverables",id:"deliverables",level:2},{value:"How to use this project",id:"how-to-use-this-project",level:2},{value:"Prerequisite",id:"prerequisite",level:3},{value:"Build and install",id:"build-and-install",level:3},{value:"What I have learned",id:"what-i-have-learned",level:2},{value:"Acknowledgement",id:"acknowledgement",level:2}];function c(e){const i={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"license-as-a-service",children:"License as a Service"}),"\n",(0,s.jsx)(i.p,{children:"FOSSology is an open-source license compliance software system and toolkit. You\ncan run license, copyright, and export control scans from the command line as a\ntoolkit. We can also use it online where we can upload files or upload through a URL\nwhere we can get a license from the repository or file."}),"\n",(0,s.jsx)(i.p,{children:"License as a service provides a convenient and effective way for organizations to\nmanage their use of open-source licenses. With the growing popularity of open-source\nsoftware, organizations are finding it more difficult to keep track of the various\nlicenses and terms under which they are permitted to use open-source components.\nOpen-source licenses can be complicated, making it difficult to understand how they\napply to a specific piece of software or interact with other licenses. It can be\nused for various purposes by organizations and tools like FOSSology and SW360 like\nlicense identification, filtering, and managing licenses. There are benefits of this\nservice such as increasing flexibility, a faster time-to-access, and managing the database."}),"\n",(0,s.jsx)(i.h2,{id:"what-i-did",children:"What I did"}),"\n",(0,s.jsx)(i.h3,{id:"project-structure",children:"Project Structure"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-bash",children:".\n\u251c\u2500\u2500 pkg \n\u2502 \u251c\u2500\u2500 utils # folder for basic utilities of project\n\u2502 \u251c\u2500\u2500 models # folder has a file that contains all the structs required in the project\n\u2502 \u251c\u2500\u2500 db # It has a file that connects and migerates the database\n\u2502 \u251c\u2500\u2500 auth # It has all the functions related to authentication and users\n\u2502 \u2514\u2500\u2500 api # It contains all the functions related to API endpoints.\n\u2514\u2500\u2500 cmd # This is the entry point of project \n \u2514\u2500\u2500 laas \n \u2514\u2500\u2500 main.go # This function contains code to migrate db and run router function\n"})}),"\n",(0,s.jsx)(i.h3,{id:"database",children:"Database"}),"\n",(0,s.jsx)(i.p,{children:"I have made a database that has licenses, obligations, obligation map, users, their audits\nand changes."}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"License table has list of licenses and all the data related to the licenses."}),"\n",(0,s.jsx)(i.li,{children:"Obligations table has the list of obligations that are related to the licenses."}),"\n",(0,s.jsx)(i.li,{children:"Obligation map table that maps obligations to their respective licenses."}),"\n",(0,s.jsx)(i.li,{children:"User table has the user that are associated with the licenses."}),"\n",(0,s.jsx)(i.li,{children:"Audit table has the data of audits that are done in obligations or licenses"}),"\n",(0,s.jsx)(i.li,{children:"Change log table has all the change history of a particular audit."}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"alt text",src:n(44307).Z+"",width:"570",height:"711"})}),"\n",(0,s.jsx)(i.h3,{id:"apis",children:"APIs"}),"\n",(0,s.jsx)(i.p,{children:"There are various API endpoints that are of licenses, obligations, user and audit\nendpoints."}),"\n",(0,s.jsx)(i.h3,{id:"api-endpoints",children:"API endpoints"}),"\n",(0,s.jsxs)(i.table,{children:[(0,s.jsx)(i.thead,{children:(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.th,{children:"#"}),(0,s.jsx)(i.th,{children:"Method"}),(0,s.jsx)(i.th,{children:"API Endpoints"}),(0,s.jsx)(i.th,{children:"Examples"}),(0,s.jsx)(i.th,{children:"Descriptions"})]})}),(0,s.jsxs)(i.tbody,{children:[(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"1"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/licenses/:shortname"})}),(0,s.jsx)(i.td,{children:"/api/licenses/MIT"}),(0,s.jsx)(i.td,{children:"Gets all data related to licenses by their shortname"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"2"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/licenses/"})}),(0,s.jsx)(i.td,{children:'/api/licenses/copyleft="t"&active="t"'}),(0,s.jsx)(i.td,{children:"Get filter the licenses as per the filters"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"3"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"POST"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/licenses"})}),(0,s.jsx)(i.td,{children:"/api/licenses"}),(0,s.jsx)(i.td,{children:"Create a license with unique shortname"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"4"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"POST"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/licenses/search"})}),(0,s.jsx)(i.td,{children:"/api/licenses/search"}),(0,s.jsx)(i.td,{children:"Get the licenses with the post request where we put field, search term and type"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"5"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"PATCH"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/licenses/:shortname"})}),(0,s.jsx)(i.td,{children:"/api/licenses/MIT"}),(0,s.jsx)(i.td,{children:"It updates the particular fields as requested of the license with shortname"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"6"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/users"})}),(0,s.jsx)(i.td,{children:"/api/users"}),(0,s.jsx)(i.td,{children:"Get all the users and their data"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"7"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/users/:id"})}),(0,s.jsx)(i.td,{children:"/api/users/1"}),(0,s.jsx)(i.td,{children:"Get data relate to user by its id"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"8"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"POST"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/users"})}),(0,s.jsx)(i.td,{children:"/api/users"}),(0,s.jsx)(i.td,{children:"Create a user with unique data"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"9"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/obligations"})}),(0,s.jsx)(i.td,{children:"/api/obligations"}),(0,s.jsx)(i.td,{children:"Get all the obligations"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"10"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/obligation/:topic"})}),(0,s.jsx)(i.td,{children:"/api/obligation/topic"}),(0,s.jsx)(i.td,{children:"Gets all data related to obligations by their topic"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"11"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"POST"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/obligations"})}),(0,s.jsx)(i.td,{children:"/api/obligations"}),(0,s.jsx)(i.td,{children:"Create an obligation as well as add it to obligation map"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"12"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"PATCH"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/obligations/:topic"})}),(0,s.jsx)(i.td,{children:"/api/obligations"}),(0,s.jsx)(i.td,{children:"It updates the particular fields as requested of the obligation with topic"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"13"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/audit"})}),(0,s.jsx)(i.td,{children:"/api/audit"}),(0,s.jsx)(i.td,{children:"Get the audit history of all the licenses and obligations"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"14"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/audit/:audit_id"})}),(0,s.jsx)(i.td,{children:"/api/audit/1"}),(0,s.jsx)(i.td,{children:"Get the data of a particular audit by its id"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"15"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/audit/:audit_id/changes"})}),(0,s.jsx)(i.td,{children:"/api/audit/1/changes"}),(0,s.jsx)(i.td,{children:"Get the change logs of the particular audit id"})]}),(0,s.jsxs)(i.tr,{children:[(0,s.jsx)(i.td,{children:"16"}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.strong,{children:"GET"})}),(0,s.jsx)(i.td,{children:(0,s.jsx)(i.code,{children:"/api/audit/:audit_id/changes/:id"})}),(0,s.jsx)(i.td,{children:"/api/audit/1/changes/2"}),(0,s.jsx)(i.td,{children:"Get a particular change log of the particular audit id"})]})]})]}),"\n",(0,s.jsx)(i.h2,{id:"deliverables",children:"Deliverables"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["The project in which I was working is under FOSSology organization the repository is ",(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb",children:"LicenseDb"})]}),"\n",(0,s.jsxs)(i.li,{children:["Pull requests that I got merged are:","\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/2",children:"Basic project structure is made."})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/4",children:"chores: Added README.md and basic CI."})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/9",children:"feat: added GET endpoints"})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/11",children:"feat: added create and update endpoints."})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/12",children:"feat: added authentication in API and search endpoint."})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["Pull requests I am working on:","\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/13",children:"feat: updated project structure and added basic test cases to project"})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/pull/14",children:"feat: created audit and added change history."})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["Issues that I have worked on:","\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/issues/5",children:"Add migration code for populating database from json file."})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/issues/3",children:"Create basic CI and add the compilation instruction."})}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://github.com/fossology/LicenseDb/issues/1",children:"Basic endpoint requirements"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.li,{children:(0,s.jsx)(i.a,{href:"https://fossology.github.io/gsoc/docs/2023/laas",children:"Weekly reports"})}),"\n",(0,s.jsx)(i.li,{children:"All the proposed goals have been completed as well as I have also attempted the stretch goals."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"how-to-use-this-project",children:"How to use this project"}),"\n",(0,s.jsx)(i.h3,{id:"prerequisite",children:"Prerequisite"}),"\n",(0,s.jsxs)(i.p,{children:["Please ",(0,s.jsx)(i.a,{href:"https://go.dev/doc/install",children:"install and set-up Golang"})," on your system\nin advance."]}),"\n",(0,s.jsx)(i.h3,{id:"build-and-install",children:"Build and install"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Clone this Project and Navigate to the folder."}),"\n"]}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-bash",children:"git clone https://github.com/fossology/LicenseDb.git\ncd LicenseDb\n"})}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Build the project using following command."}),"\n"]}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-bash",children:"go build ./cmd/laas\n"})}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Run the executable."}),"\n"]}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-bash",children:"./laas\n"})}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"You can directly run it by the following command."}),"\n"]}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-bash",children:"go run ./cmd/laas\n"})}),"\n",(0,s.jsx)(i.h2,{id:"what-i-have-learned",children:"What I have learned"}),"\n",(0,s.jsx)(i.p,{children:"During my participation in the Google Summer of Code (GSoC), I've gained valuable experience\nin open-source development and collaboration. I've honed my coding skills, learned to work with\nversion control systems like Git, and become proficient in communicating with mentors and\nthe wider developer community. Through tackling real-world coding challenges, I've\ndeepened my understanding of software development best practices and gained insights\ninto project management."}),"\n",(0,s.jsx)(i.p,{children:"The projects as whole was challenging as I have worked with basic APIs and have basic\nknowledge databases. Then working with the database was much newer for me. As well as\nWorking with complex APIs and creating various endpoints was a difficult task as well."}),"\n",(0,s.jsx)(i.p,{children:"Learned about database queries, different searches, authentication, complex API endpoints\nand much more. Overall it was a great experience and lots of learning during the project."}),"\n",(0,s.jsx)(i.h2,{id:"acknowledgement",children:"Acknowledgement"}),"\n",(0,s.jsx)(i.p,{children:"Google Summer of Code has been an incredibly transformative experience for me this year.\nAs I reflect on this journey, I am overwhelmed with gratitude for the people who\nhave been instrumental in my success and growth during this period."}),"\n",(0,s.jsxs)(i.p,{children:["First and foremost, I extend my heartfelt appreciation to my mentors: ",(0,s.jsx)(i.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),",\n",(0,s.jsx)(i.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"}),", ",(0,s.jsx)(i.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),",\nand ",(0,s.jsx)(i.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"}),". Without their unwavering guidance, support,\nand expertise, I truly believe that I would not have been able to achieve what I have.\nTheir patience, deep knowledge, and willingness to help have been the pillars upon which\nI've built my progress. Their mentorship has not only imparted technical skills but\nhas also instilled in me a sense of confidence and direction."]}),"\n",(0,s.jsxs)(i.p,{children:["A special mention goes to my college senior, ",(0,s.jsx)(i.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),". Your consistent motivation\nand belief in my abilities have been a driving force throughout this journey. Your insights\nand encouragement have been invaluable, and I am grateful for your role in shaping my path."]}),"\n",(0,s.jsx)(i.p,{children:"The connections I've made with incredible developers from around the world have expanded my horizons,\nand I look forward to the possibility of future collaborations. In all, Google Summer of Code\nhas been a transformative chapter in my life, and I am truly grateful for the collective\nefforts of these outstanding individuals who have made it possible."})]})}function h(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},44307:(e,i,n)=>{n.d(i,{Z:()=>s});const s=n.p+"assets/images/fossy-f73de2963edcd49e642260bd71293424.png"},11151:(e,i,n)=>{n.d(i,{Z:()=>r,a:()=>l});var s=n(67294);const t={},a=s.createContext(t);function l(e){const i=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2ba61d9f.1ebfa5a8.js b/assets/js/2ba61d9f.1ebfa5a8.js new file mode 100644 index 0000000000..4b9e8c87b5 --- /dev/null +++ b/assets/js/2ba61d9f.1ebfa5a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[422],{93169:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 11","permalink":"/gsoc/docs/tags/week-11","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-08-28","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-28"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/2c2af5ec.c3753b4e.js b/assets/js/2c2af5ec.c3753b4e.js new file mode 100644 index 0000000000..2685e6e95f --- /dev/null +++ b/assets/js/2c2af5ec.c3753b4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9704],{43993:e=>{e.exports=JSON.parse('{"tag":{"label":"rest","permalink":"/gsoc/docs/tags/rest","allTagsPath":"/gsoc/docs/tags","count":33,"items":[{"id":"2024/rest/API-guidelines","title":"REST API Guidelines","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/API-guidelines"},{"id":"2023/rest/updates/samuel/2023-06-01","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-01"},{"id":"2023/rest/updates/soham/2023-06-01","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-06-01"},{"id":"2024/rest/updates/Divij/2024-05-30","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-05-30"},{"id":"2024/rest/updates/valens/2024-05-30","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-05-30"},{"id":"2023/rest/updates/samuel/2023-08-03","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-08-03"},{"id":"2023/rest/updates/samuel/2023-08-10","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-08-10"},{"id":"2023/rest/updates/samuel/2023-08-17","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-08-17"},{"id":"2023/rest/updates/samuel/2023-06-08","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-08"},{"id":"2024/rest/updates/Divij/2024-06-06","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-06"},{"id":"2024/rest/updates/valens/2024-06-13","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-06-13"},{"id":"2023/rest/updates/soham/2023-06-08","title":"Week 2 & 3","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-06-08"},{"id":"2023/rest/updates/samuel/2023-06-15","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-15"},{"id":"2024/rest/updates/Divij/2024-06-11","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-11"},{"id":"2024/rest/updates/valens/2024-06-20","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-06-20"},{"id":"2023/rest/updates/samuel/2023-06-22","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-22"},{"id":"2023/rest/updates/soham/2023-06-27","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-06-27"},{"id":"2024/rest/updates/Divij/2024-06-18","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-18"},{"id":"2024/rest/updates/valens/2024-06-27","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-06-27"},{"id":"2023/rest/updates/samuel/2023-06-29","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-29"},{"id":"2023/rest/updates/soham/2023-07-05","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-07-05"},{"id":"2024/rest/updates/Divij/2024-06-25","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-25"},{"id":"2024/rest/updates/valens/2024-07-04","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-07-04"},{"id":"2023/rest/updates/samuel/2023-07-06","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-06"},{"id":"2023/rest/updates/soham/2023-07-16","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-07-16"},{"id":"2024/rest/updates/Divij/2024-07-02","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-07-02"},{"id":"2023/rest/updates/samuel/2023-07-13","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-13"},{"id":"2023/rest/updates/soham/2023-07-28","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-07-28"},{"id":"2024/rest/updates/Divij/2024-07-09","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-07-09"},{"id":"2023/rest/updates/samuel/2023-07-20","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-20"},{"id":"2023/rest/updates/soham/2023-08-05","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-08-05"},{"id":"2024/rest/updates/Divij/2024-07-16","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-07-16"},{"id":"2023/rest/updates/samuel/2023-07-27","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-27"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/2cb3fda1.726d5768.js b/assets/js/2cb3fda1.726d5768.js new file mode 100644 index 0000000000..bf316fb7d3 --- /dev/null +++ b/assets/js/2cb3fda1.726d5768.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7981],{75980:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>a});var s=t(85893),i=t(11151);const r={title:"Week 7",author:"Kaushlendra"},o="Coding Week 7 Meeting",c={id:"2021/copyrights/updates/2021-07-20",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-07-20.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-07-20",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 6",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-13"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/copyrights/updates/2021-08-03"}},d={},a=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 7 Progress",id:"week-7-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function l(e){const n={h1:"h1",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-7-meeting",children:"Coding Week 7 Meeting"}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Checking results manually and understanding the edge cases."}),"\n",(0,s.jsx)(n.li,{children:"Implementation of the edge cases like no ['DATE'] and only ['ORG'] or ['PERSON'] is present."}),"\n",(0,s.jsx)(n.li,{children:"Setting up the next target for the remaining weeks."}),"\n",(0,s.jsx)(n.li,{children:"Checking up the REGEX on the copyrights to check the validity of the code."}),"\n",(0,s.jsx)(n.li,{children:"Generating the Accuracy score for TP, FP, FN and TN."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"week-7-progress",children:"Week 7 Progress"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"[Date] needed to be an important entity for copyright recognition but another check for no dates has been implemented to filter across wider results."}),"\n",(0,s.jsx)(n.li,{children:"Ran the algorithm over 100 thousand copyrights and the time period of 21 mints were scored."}),"\n",(0,s.jsx)(n.li,{children:"REGEX validity was checked and it can be used for future clutter removal maybe."}),"\n",(0,s.jsx)(n.li,{children:"Divided the datasets into chunks of 50 and 100 thousand to calculate wider expected results."}),"\n",(0,s.jsx)(n.li,{children:"More reduction and updation to code was done by removing redundancy of (copyright copyright happening in the statements)"}),"\n",(0,s.jsx)(n.li,{children:"The dataset also contains human errors and it is impacting our accuracy score for TP as well."}),"\n",(0,s.jsx)(n.li,{children:"Wiki has been Updated"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsx)(n.p,{children:"The filter of the copyrights needed to be more secured."})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2cb88a4b.ee2f06fc.js b/assets/js/2cb88a4b.ee2f06fc.js new file mode 100644 index 0000000000..f826f7dd87 --- /dev/null +++ b/assets/js/2cb88a4b.ee2f06fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5949],{12213:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>o,frontMatter:()=>h,metadata:()=>r,toc:()=>c});var s=i(85893),t=i(11151);const h={title:"Community Bonding",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},a=void 0,r={id:"2022/atarashi/updates/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-06-02.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-06-02",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Community Bonding",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Introduction",permalink:"/gsoc/docs/2022/atarashi/"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-13"}},l={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 2nd, 2022)"})}),"\n",(0,s.jsx)(n.p,{children:"GSOC 2022 weekly update"}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael c Jaeger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Project setup done."}),"\n",(0,s.jsx)(n.li,{children:"Since it was the first meeting of community bonding period, we were introduced to every mentors and contributers."}),"\n",(0,s.jsx)(n.li,{children:"Deciding upon two ideas to import dataset."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Compatible meeting timing was decided"}),"\n",(0,s.jsx)(n.li,{children:"Need to keep gsoc page updated"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 9th, 2022)"})}),"\n",(0,s.jsx)(n.p,{children:"GSOC 2022 weekly update"}),"\n",(0,s.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Created one ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/atarashi/pull/99",children:"pr"})," and get it merged"]}),"\n",(0,s.jsx)(n.li,{children:"Had a discussion on logistic regression model and we are going to implement it"}),"\n",(0,s.jsxs)(n.li,{children:["Created a collab ",(0,s.jsx)(n.a,{href:"https://colab.research.google.com/drive/1VTyCtR3c-1XiFNbD1WPXERgVuRLYJRTV?usp=sharing",children:"notebook"})," for simple implementation of lr model and get it tested on atarashi agent locally"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Will try to optimize the model parameters"}),"\n",(0,s.jsxs)(n.li,{children:["Learn and try out different ways of using the trained model:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Either training part can be done in ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/atarashi",children:"atarashi"})," itself"]}),"\n",(0,s.jsx)(n.li,{children:"Or we can use separate repo for training purpose"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Discuss different models with mentors"}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>a});var s=i(67294);const t={},h=s.createContext(t);function a(e){const n=s.useContext(h);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2d1b92cb.62a9dd0b.js b/assets/js/2d1b92cb.62a9dd0b.js new file mode 100644 index 0000000000..bef4d288fa --- /dev/null +++ b/assets/js/2d1b92cb.62a9dd0b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9706],{84076:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var n=s(85893),i=s(11151);const o={title:"Week 9",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},l=void 0,a={id:"2022/ui/updates/samuel/2022-08-18",title:"Week 9",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-08-18.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-08-18",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-08-18.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 9",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 8",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-11"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-25"}},d={},c=[{value:"THIS WEEK'S CONTRIBUTIONS",id:"this-weeks-contributions",level:2},{value:"FRONTEND:",id:"frontend",level:3},{value:"BACKEND:",id:"backend",level:3},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3},{value:"1. Integrated Fossology Maintenance Page.",id:"1-integrated-fossology-maintenance-page",level:4},{value:"2. Added get Admin license candidate API.",id:"2-added-get-admin-license-candidate-api",level:4},{value:"3. Import CSV-license file.",id:"3-import-csv-license-file",level:4},{value:"NEXT WEEK'S EXPECTATION:",id:"next-weeks-expectation",level:2},{value:"1. BACKEND:",id:"1-backend",level:3},{value:"1. COMPLETE REMAINING APIS ON THE LICENSE ADMINISTRATION MODULE",id:"1-complete-remaining-apis-on-the-license-administration-module",level:4},{value:"2. FRONTEND:",id:"2-frontend",level:3},{value:"i. COMPLETE THE REMAINING PAGES ON THE LICENSE ADMINISTRATION MODULE",id:"i-complete-the-remaining-pages-on-the-license-administration-module",level:4},{value:"ii. UPDATING MY PRs ACCORDING TO MY MENTORS SUGGESTIONS.",id:"ii-updating-my-prs-according-to-my-mentors-suggestions",level:4}];function r(e){const t={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",p:"p",strong:"strong",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"this-weeks-contributions",children:"THIS WEEK'S CONTRIBUTIONS"}),"\n",(0,n.jsx)(t.h3,{id:"frontend",children:"FRONTEND:"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"1. Integrated Fossology Maintenance Page."}),"(",(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/252",children:"https://github.com/fossology/FOSSologyUI/pull/252"}),")"]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"2. Added UI tests for UPLOAD functionality (#249)"})," (",(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/249",children:"https://github.com/fossology/FOSSologyUI/pull/249"}),")"]}),"\n",(0,n.jsx)(t.h3,{id:"backend",children:"BACKEND:"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"1. Added get Admin-license candidates API. (#2295)"})," (",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2295",children:"https://github.com/fossology/fossology/pull/2295"}),")"]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"2. Added A REST API TO import a csv-license file. (#2292)"})," (",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2292",children:"https://github.com/fossology/fossology/pull/2292"}),")"]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"3. Added all the requested changes to the API to initiate Fossology Maintenance. (#2290)"})," (",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2290",children:"https://github.com/fossology/fossology/pull/2290"}),")"]}),"\n",(0,n.jsx)(t.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,n.jsx)(t.h4,{id:"1-integrated-fossology-maintenance-page",children:"1. Integrated Fossology Maintenance Page."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://user-images.githubusercontent.com/66276301/184678066-360fc503-8dd6-4746-8848-68f90f31d615.mp4",children:"https://user-images.githubusercontent.com/66276301/184678066-360fc503-8dd6-4746-8848-68f90f31d615.mp4"})}),"\n",(0,n.jsx)(t.h4,{id:"2-added-get-admin-license-candidate-api",children:"2. Added get Admin license candidate API."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"get-admin-license-candidates",src:s(74507).Z+"",width:"1887",height:"621"})}),"\n",(0,n.jsx)(t.h4,{id:"3-import-csv-license-file",children:"3. Import CSV-license file."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"FIRST-CASE"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"import-csv-license-file1",src:s(77914).Z+"",width:"1920",height:"649"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"SECOND-CASE"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"import-csv-license-file2",src:s(39715).Z+"",width:"1863",height:"582"})}),"\n",(0,n.jsx)(t.h2,{id:"next-weeks-expectation",children:"NEXT WEEK'S EXPECTATION:"}),"\n",(0,n.jsx)(t.h3,{id:"1-backend",children:"1. BACKEND:"}),"\n",(0,n.jsx)(t.h4,{id:"1-complete-remaining-apis-on-the-license-administration-module",children:"1. COMPLETE REMAINING APIS ON THE LICENSE ADMINISTRATION MODULE"}),"\n",(0,n.jsx)(t.p,{children:"i. REST-API to select License according to the user specifications."}),"\n",(0,n.jsx)(t.p,{children:"ii. REST-API to add the admin-standard-license comment."}),"\n",(0,n.jsx)(t.p,{children:"iii. REST-API To list the paginated admin-standard-license comments."}),"\n",(0,n.jsx)(t.h3,{id:"2-frontend",children:"2. FRONTEND:"}),"\n",(0,n.jsx)(t.h4,{id:"i-complete-the-remaining-pages-on-the-license-administration-module",children:"i. COMPLETE THE REMAINING PAGES ON THE LICENSE ADMINISTRATION MODULE"}),"\n",(0,n.jsx)(t.p,{children:"i. Integrate The add license page. (The UI is there currently but not integrated to the respective REST-API)."}),"\n",(0,n.jsx)(t.p,{children:"ii. Implement and Integrate the Page to import the CSV license."}),"\n",(0,n.jsx)(t.p,{children:"iii. Implement and Integrate the Page to list the admin-license-candidates."}),"\n",(0,n.jsx)(t.p,{children:"iv. Implement and Integrate the Page to select the license."}),"\n",(0,n.jsx)(t.p,{children:"v. Implement and Integrate the Page to Add and list paginated admin-standard-license comments."}),"\n",(0,n.jsx)(t.h4,{id:"ii-updating-my-prs-according-to-my-mentors-suggestions",children:"ii. UPDATING MY PRs ACCORDING TO MY MENTORS SUGGESTIONS."})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},74507:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/get_candidates-21d5016c4c46e78b551b8cd2f1ac24ed.png"},77914:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/import_csv_license_file_1-9305356652a996de48bafcec5b4276e2.png"},39715:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/import_csv_license_file_2-69397c3be72ca8a78b199ea33eeea542.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>l});var n=s(67294);const i={},o=n.createContext(i);function l(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2d9862c4.16f7e680.js b/assets/js/2d9862c4.16f7e680.js new file mode 100644 index 0000000000..32333539cd --- /dev/null +++ b/assets/js/2d9862c4.16f7e680.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8424],{190:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>h});var t=s(85893),i=s(11151);const l={sidebar_position:5,title:"Week 2"},r=void 0,o={id:"2023/minutes/2023-06-08",title:"Week 2",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-06-08.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-06-08",permalink:"/gsoc/docs/2023/minutes/2023-06-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-06-08.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Week 2"},sidebar:"2023",previous:{title:"Week 1",permalink:"/gsoc/docs/2023/minutes/2023-06-01"},next:{title:"Week 3",permalink:"/gsoc/docs/2023/minutes/2023-06-15"}},a={},h=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2023 at FOSSology 08-06-2023."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent(Network issues on contributors end)."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Worked on refactoring of the existing code created a PR(",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2458",children:"https://github.com/fossology/fossology/pull/2458"}),")"]}),"\n",(0,t.jsx)(n.li,{children:"Will have more updates in future thats it for now."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["I was working on this pull request(",(0,t.jsx)(n.a,{href:"https://github.com/fossology/LicenseDb/pull/6",children:"https://github.com/fossology/LicenseDb/pull/6"}),") where"]}),"\n",(0,t.jsx)(n.li,{children:"I wrote a basic code to add the auto migration json data to the data base"}),"\n",(0,t.jsx)(n.li,{children:"Added the command line argument for the database connection as well as for the license file."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent(Have exams till 14th june)."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Last week i was working on licenses part. Worked on API to remove/add license, also worked on"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"adding the decisions to file i will be working on next license parts next week."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Demo on getting file contents."}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>r});var t=s(67294);const i={},l=t.createContext(i);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2e5c4e94.33b9601d.js b/assets/js/2e5c4e94.33b9601d.js new file mode 100644 index 0000000000..24a0c32e9b --- /dev/null +++ b/assets/js/2e5c4e94.33b9601d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8973],{84337:e=>{e.exports=JSON.parse('{"tag":{"label":"gsoc23","permalink":"/gsoc/docs/tags/gsoc-23","allTagsPath":"/gsoc/docs/tags","count":19,"items":[{"id":"2023/rest/updates/samuel/2023-06-01","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-01"},{"id":"2023/rest/updates/soham/2023-06-01","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-06-01"},{"id":"2023/rest/updates/samuel/2023-08-03","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-08-03"},{"id":"2023/rest/updates/samuel/2023-08-10","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-08-10"},{"id":"2023/rest/updates/samuel/2023-08-17","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-08-17"},{"id":"2023/rest/updates/samuel/2023-06-08","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-08"},{"id":"2023/rest/updates/soham/2023-06-08","title":"Week 2 & 3","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-06-08"},{"id":"2023/rest/updates/samuel/2023-06-15","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-15"},{"id":"2023/rest/updates/samuel/2023-06-22","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-22"},{"id":"2023/rest/updates/soham/2023-06-27","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-06-27"},{"id":"2023/rest/updates/samuel/2023-06-29","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-06-29"},{"id":"2023/rest/updates/soham/2023-07-05","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-07-05"},{"id":"2023/rest/updates/samuel/2023-07-06","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-06"},{"id":"2023/rest/updates/soham/2023-07-16","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-07-16"},{"id":"2023/rest/updates/samuel/2023-07-13","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-13"},{"id":"2023/rest/updates/soham/2023-07-28","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-07-28"},{"id":"2023/rest/updates/samuel/2023-07-20","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-20"},{"id":"2023/rest/updates/soham/2023-08-05","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/soham/2023-08-05"},{"id":"2023/rest/updates/samuel/2023-07-27","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2023/rest/updates/samuel/2023-07-27"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/2e7d2cd8.71b0832a.js b/assets/js/2e7d2cd8.71b0832a.js new file mode 100644 index 0000000000..10700824b6 --- /dev/null +++ b/assets/js/2e7d2cd8.71b0832a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5819],{16571:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var t=n(85893),i=n(11151);const a={title:"Week 1",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},r="Week 1 meeting and activities",l={id:"2024/rest/updates/valens/2024-05-30",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/rest/updates/valens/2024-05-30.md",sourceDirName:"2024/rest/updates/valens",slug:"/2024/rest/updates/valens/2024-05-30",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/valens/2024-05-30.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 1",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Community bonding",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-05-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-13"}},o={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2}];function h(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-1-meeting-and-activities",children:"Week 1 meeting and activities"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(May 30,2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Who should be doing what?"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["I had discussion with mentors and my colleague ",(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:["Divided responsibilities with my colleague ",(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"}),"."]}),"\n",(0,t.jsx)(s.li,{children:"We took a decision that I will be focusing on adding test cases for the current REST API implementation while Sharma would focus on REST API version 2 upgrade and OAuth 2.0 implementation."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>r});var t=n(67294);const i={},a=t.createContext(i);function r(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2f73850d.232897e5.js b/assets/js/2f73850d.232897e5.js new file mode 100644 index 0000000000..fadd476d35 --- /dev/null +++ b/assets/js/2f73850d.232897e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2855],{93630:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>n,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>r});var a=s(85893),o=s(11151);const i={title:"Week 6 & 7",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},n=void 0,u={id:"2022/ui/updates/samuel/2022-08-02",title:"Week 6 & 7",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-08-02.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-08-02",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-08-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 6 & 7",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-21"},next:{title:"Week 8",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-11"}},c={},r=[{value:"Activities",id:"activities",level:2},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3}];function l(e){const t={h2:"h2",h3:"h3",img:"img",p:"p",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,a.jsx)(t.p,{children:"Added the confirmation popup before making delete group action."}),"\n",(0,a.jsx)(t.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"delete-group-popup1",src:s(2179).Z+"",width:"1920",height:"873"})})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},2179:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/delete_group_popup-04d6b5d953c020b08977a1da0ecfd94a.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>u,a:()=>n});var a=s(67294);const o={},i=a.createContext(o);function n(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2fd5aa2e.e7f18e2f.js b/assets/js/2fd5aa2e.e7f18e2f.js new file mode 100644 index 0000000000..257c15e6cc --- /dev/null +++ b/assets/js/2fd5aa2e.e7f18e2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2037],{58483:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var i=t(85893),s=t(11151);const o={title:"Community bonding",author:"Samuel Dushimimana"},r="Community Bonding",d={id:"2023/rest/updates/samuel/2023-05-11",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-05-11.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-05-11",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-05-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-05-11.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Samuel Dushimimana"},sidebar:"2023",previous:{title:"Introduction",permalink:"/gsoc/docs/2023/rest/"},next:{title:"Week 1",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-01"}},l={},a=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Minutes of Meeting",id:"minutes-of-meeting",level:3},{value:"During week 1",id:"during-week-1",level:2},{value:"Meeting 2",id:"meeting-2",level:2},{value:"During week 2",id:"during-week-2",level:2},{value:"Meeting 3",id:"meeting-3",level:2},{value:"Minutes of Meeting",id:"minutes-of-meeting-1",level:3}];function u(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May,11,2023)"})}),"\n",(0,i.jsx)(n.p,{children:"This was the first meeting of community bonding period in GSoC'23. In this the\nMentors and the contributors were introduced."}),"\n",(0,i.jsx)(n.h3,{id:"minutes-of-meeting",children:"Minutes of Meeting"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Documentation and its\n",(0,i.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2023/",children:"repository"})," was explained to\ntrack the updates. For reference we can look upon previous year documentation."]}),"\n",(0,i.jsx)(n.li,{children:"Timings of the each of the project meet and weekly meet was decided."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"during-week-1",children:"During week 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 12,2023- May 17,2023)"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Passed through the task list of the REST APIs that need implementation."}),"\n",(0,i.jsxs)(n.li,{children:["I had a discussion with my colleague ",(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"soham4abc"})," about how we shall manage our tasks using Trello."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 18,2023)"})}),"\n",(0,i.jsx)(n.p,{children:"Basic discussion about the project previous week work and general updates."}),"\n",(0,i.jsx)(n.h2,{id:"during-week-2",children:"During week 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 19,2023- May 24,2023)"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Implemented the aliases for running the project easier and simpler for development."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 25,2023)"})}),"\n",(0,i.jsx)(n.h3,{id:"minutes-of-meeting-1",children:"Minutes of Meeting"}),"\n",(0,i.jsx)(n.p,{children:"Basic discussion about the project previous week work and general updates."})]})}function c(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var i=t(67294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/302dc6c1.14f7d53a.js b/assets/js/302dc6c1.14f7d53a.js new file mode 100644 index 0000000000..f435326d72 --- /dev/null +++ b/assets/js/302dc6c1.14f7d53a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9496],{4424:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>h,toc:()=>c});var s=n(85893),a=n(11151);const r={title:"Week 8",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},i=void 0,h={id:"2022/atarashi/updates/2022-08-02",title:"Week 8",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-08-02.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-08-02",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-08-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 8",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 7",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-26"},next:{title:"Week 9",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-09"}},o={},c=[{value:"Meeting 10",id:"meeting-10",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Updates",id:"updates",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function l(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-10",children:"Meeting 10"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(August 4th, 2022)"})}),"\n",(0,s.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"updates",children:"Updates"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://radimrehurek.com/gensim/models/doc2vec.html",children:"Doc2vec Model"})," requires tagged document for training the model,\nsuch that it can make a vector for each document that can be further use to calculate cosine similarity for the\nlicense statement. Due to lack of memory in my computer I was not able to tag whole ",(0,s.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"dataset"}),".\nSo currently for checking the working of model, this week I have trained a smaller part of dataset on\n",(0,s.jsx)(t.a,{href:"https://radimrehurek.com/gensim/models/doc2vec.html",children:"Doc2vec Model"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Created agent for the same trained model on ",(0,s.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"atarashi"}),"\nand got the accuracy score of ",(0,s.jsx)(t.strong,{children:"8"})," percent."]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:" Total files scanned = 100\n Successfully matched = 8\n\n ++++++++++++++++++ Result ++++++++++++++++++\n ++++++++++++++++++++++++++++++++++++++++++++\n ---\x3e Total time elapsed: 13.02 Seconds <---\n ---\x3e Accuracy: 8.0% <---\n ++++++++++++++++++++++++++++++++++++++++++++\n ++++++++++++++++++++++++++++++++++++++++++++\n"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Working of agent is shown below:"}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-json",children:'{\n "file": "/home/shushant/check.py",\n "results": [\n {\n "description": "",\n "shortname": "BSD-1-Clause",\n "sim_score": 0.5472090244293213,\n "sim_type": "semanticTextSim"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Trainig has been done on a smaller part of ",(0,s.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"dataset"}),". Will train\n",(0,s.jsx)(t.a,{href:"https://radimrehurek.com/gensim/models/doc2vec.html",children:"Doc2vec Model"})," on whole dataset and see if any further improvement is\nneeded or not."]}),"\n",(0,s.jsx)(t.li,{children:"Will start working on the documentation for final evalutation."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>h,a:()=>i});var s=n(67294);const a={},r=s.createContext(a);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3065bd84.bd0b4d0d.js b/assets/js/3065bd84.bd0b4d0d.js new file mode 100644 index 0000000000..0f761b60bd --- /dev/null +++ b/assets/js/3065bd84.bd0b4d0d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7616],{46542:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>h,toc:()=>a});var n=t(85893),i=t(11151);const o={title:"Week 7",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},r=void 0,h={id:"2022/reuse/updates/2022-07-25",title:"Week 7",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-07-25.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-07-25",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-07-25.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 7",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 6",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-18"},next:{title:"Week 8",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-02"}},d={},a=[{value:"Meeting 16",id:"meeting-16",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 17",id:"meeting-17",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3}];function l(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-16",children:"Meeting 16"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 26th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Published 2 blog posts on Medium.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://medium.com/@rohit-pandey/gsoc22-community-bonding-period-with-fossology-babbeb7025b8",children:"GSoC\u201922 Community Bonding period with Fossology"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://medium.com/@rohit-pandey/accepted-for-gsoc22-with-fossology-eddebf25f8ee",children:"Accepted for Google Summer of Code with Fossology"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"Worked on SPDX-FileCopyright keyword detection in copyright agent."}),"\n",(0,n.jsx)(s.li,{children:"Updated Github repository with new look and content for the GSoC project update and shown it to the mentors for their feedback."}),"\n",(0,n.jsx)(s.li,{children:"Clarified few doubts on copyright agent."}),"\n",(0,n.jsx)(s.li,{children:"Mentors suggested raising pull request for the recent changes in the copyright agent as work in progress."}),"\n",(0,n.jsxs)(s.li,{children:["In the ",(0,n.jsx)(s.code,{children:"README.md"})," file of Fossology, I proposed adding the REUSE compliance status. Mentors gave the go-ahead."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"meeting-17",children:"Meeting 17"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 28th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Last week I worked on the second part of the REUSE standard implementation and raised a pull request ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2276",children:"#2276"})," for the detection of SPDX copyright keyword in the copyright agent."]}),"\n",(0,n.jsx)(s.li,{children:"Few more task is in progress in the above-mentined pull request. I am working on it."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>h,a:()=>r});var n=t(67294);const i={},o=n.createContext(i);function r(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/30d50cc3.8268e047.js b/assets/js/30d50cc3.8268e047.js new file mode 100644 index 0000000000..92f78d60e7 --- /dev/null +++ b/assets/js/30d50cc3.8268e047.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6914],{51105:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>d,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>r});var i=s(85893),n=s(11151);const o={title:"Week 3",author:"Shruti Agarwal"},d=void 0,l={id:"2021/ui/updates/shruti/2021-06-29",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-06-29.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-06-29",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-06-29.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-22"},next:{title:"Week 4",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-06"}},h={},r=[{value:"Screenshots",id:"screenshots",level:2},{value:"Dark Theme",id:"dark-theme",level:3},{value:"Light Theme",id:"light-theme",level:3},{value:"Header Sub Dropdown",id:"header-sub-dropdown",level:3},{value:"About",id:"about",level:3},{value:"Report Import",id:"report-import",level:3},{value:"Contributions",id:"contributions",level:2}];function a(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Added the fonts and helper classes for font and updated the existing code classes with the new font style."}),"\n",(0,i.jsx)(t.li,{children:"Fixed the routes for all the pages , previously the pages were getting refreshed on changing of route."}),"\n",(0,i.jsx)(t.li,{children:"Added the meta tags, that will describes and summarizes the content of our page."}),"\n",(0,i.jsx)(t.li,{children:"Replaced all the react logos with fossology and updated the manifest.json."}),"\n",(0,i.jsx)(t.li,{children:"Created the array for all the copyrights in and mapped that array in About Page."}),"\n",(0,i.jsx)(t.li,{children:"Updated the entities in overview page with plain text."}),"\n",(0,i.jsx)(t.li,{children:"Updated the navbar other items to display only when user is authenticated as in the current implementation."}),"\n",(0,i.jsx)(t.li,{children:"Added the sub dropdowns and updated the background color with our theme colours."}),"\n",(0,i.jsx)(t.li,{children:"Added the theme toggle functionality in the navbar."}),"\n",(0,i.jsx)(t.li,{children:"Created the context for the global state maintenance."}),"\n",(0,i.jsx)(t.li,{children:"Added the light and dark theme option in Header."}),"\n",(0,i.jsx)(t.li,{children:"Added the Report Import page."}),"\n",(0,i.jsxs)(t.li,{children:["Added Input widget for the type radio checkbox and other types which can be used with all the pages.\n",(0,i.jsx)(t.em,{children:"Note: Added all the state variables for the page as soon as we get the api we have to just link them."})]}),"\n",(0,i.jsx)(t.li,{children:"Added the Dockerfile (alternative method) for installation."}),"\n",(0,i.jsx)(t.li,{children:"Updated the installation method in README."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsx)(t.h3,{id:"dark-theme",children:"Dark Theme"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"dark-theme",src:s(72342).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"light-theme",children:"Light Theme"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"light-theme",src:s(23048).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"header-sub-dropdown",children:"Header Sub Dropdown"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"header-sub-dropdown",src:s(47778).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"about",children:"About"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"about",src:s(36124).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"about-terms-and-conditions",src:s(25111).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"report-import",children:"Report Import"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"report-import",src:s(11183).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/17",children:"feat(ui): added helper components and pages"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/18",children:"feat(fonts): added fonts and helper global css"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/20",children:"fix(route): fixed the linking of routes"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/22",children:"feat(meta): added all the meta tags"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/23",children:"feat(about): added the About page"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/25",children:"fix(home): fixed the home page"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/32",children:"fix(ui): replaced entities and updated the navbar"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/36",children:"feat(ui): fixed the dropdown styles and added the sub-dropdown"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/38",children:"feat(theme): added the custom theme functionality in the navbar"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/39",children:"feat(importReport): added the report import page of uploads"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/40",children:"feat(docker): added the Dockerfile and updated the readme"})}),"\n"]})]})}function c(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11183:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/reportImport-4ac355a7cd8ece752b5b0cd908196980.png"},36124:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/about-879a976f122eb04b5f48dfc6ecfcce8b.png"},25111:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/aboutTerms-dd4011164cb1ee96e8223fb5958d29bc.png"},72342:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/darkTheme-963b8362ca7f9f6409cbcd0e9da0a79d.png"},47778:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/headerSubDropdown-bff5003569a35ccf7b9524debb7a2ab2.png"},23048:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/lightTheme-813b398ac204530c1c2a5debfaac6df8.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>l,a:()=>d});var i=s(67294);const n={},o=i.createContext(n);function d(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/314d50dd.5d1134c2.js b/assets/js/314d50dd.5d1134c2.js new file mode 100644 index 0000000000..12ab41df78 --- /dev/null +++ b/assets/js/314d50dd.5d1134c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[503],{14607:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=i(85893),t=i(11151);const o={title:"Week 2",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},r="Week 2 Meeting and Activities",a={id:"2024/spdx30/updates/2024-06-04",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/spdx30/updates/2024-06-04.md",sourceDirName:"2024/spdx30/updates",slug:"/2024/spdx30/updates/2024-06-04",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/updates/2024-06-04.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx30",permalink:"/gsoc/docs/tags/spdx-30"}],version:"current",frontMatter:{title:"Week 2",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/spdx30/updates/2024-05-28"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-11"}},c={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Licensing profile use cases",id:"licensing-profile-use-cases",level:2},{value:"Activities",id:"activities",level:2}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-2-meeting-and-activities",children:"Week 2 Meeting and Activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 4, 2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"I presented the changes after implementing the Core and Software Profiles made in the SPDX v3.0 report in JSON-ld format to the mentor."}),"\n",(0,n.jsx)(s.li,{children:"I discussed with the mentors about the SPDX python tool for validation of v3.0 reports as it was not optimised for v3.0 reports. So, it was decided to look for it later or will perform the validation manually."}),"\n",(0,n.jsx)(s.li,{children:"Next Step: Work on JSON report generation."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"licensing-profile-use-cases",children:"Licensing profile use cases"}),"\n",(0,n.jsx)(s.p,{children:"The Licensing profile describes the aspects of licensing for the software application under three categories (sub-directories) - Licensing, SimpleLicensing, and ExpandedLicensing."}),"\n",(0,n.jsx)(s.p,{children:"The Licensing category describes information about declared licenses and concluded (detected) licenses. The SimpleLicensing category describes information about text-formatted licenses. The ExpandedLicensing category describes information about parseable and machine-readable licenses."}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:i(97514).Z+"",children:"model image"})," for the Licensing profile."]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"In this week, I continued to work on the SPDX v3.0 JSON-ld format report generation for Licensing profile."}),"\n",(0,n.jsxs)(s.li,{children:["Made a ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2750",children:"PR#2750"})," for Generation of SPDX v3.0 report in JSON format."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},97514:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/files/model_Licensing-3291eb7bbe40c137b13f15f5de842b0f.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>a,a:()=>r});var n=i(67294);const t={},o=n.createContext(t);function r(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/31f75598.d564972e.js b/assets/js/31f75598.d564972e.js new file mode 100644 index 0000000000..3493de02ce --- /dev/null +++ b/assets/js/31f75598.d564972e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6933],{97023:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=t(85893),i=t(11151);const r={title:"Week 1",author:"Shruti Agarwal"},o=void 0,l={id:"2021/ui/updates/shruti/2021-06-15",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-06-15.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-06-15",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-06-15.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Introduction",permalink:"/gsoc/docs/2021/ui/"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-22"}},a={},c=[{value:"Explanation",id:"explanation",level:2},{value:"Sequence Diagram",id:"sequence-diagram",level:3},{value:"Folder Structure",id:"folder-structure",level:3},{value:"Wireframes",id:"wireframes",level:3},{value:"Contributions",id:"contributions",level:2}];function d(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Created wireframes of different colour schemes."}),"\n",(0,n.jsx)(s.li,{children:"Had discussions on wireframes."}),"\n",(0,n.jsx)(s.li,{children:"Finalized the wireframes."}),"\n",(0,n.jsx)(s.li,{children:"Decided the libraries to be used."}),"\n",(0,n.jsx)(s.li,{children:"Finalized the architecture of the codebase."}),"\n",(0,n.jsx)(s.li,{children:"Created a pull request for the basic folder structure."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"explanation",children:"Explanation"}),"\n",(0,n.jsx)(s.p,{children:"Web application architecture defines the interactions between applications, middleware systems, and databases to ensure multiple applications can work together."}),"\n",(0,n.jsx)(s.h3,{id:"sequence-diagram",children:"Sequence Diagram"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"sequence-diagram",src:t(56733).Z+"",width:"921",height:"342"})}),"\n",(0,n.jsx)(s.h3,{id:"folder-structure",children:"Folder Structure"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"|-- public\n|-- src\n |-- api\n |-- assets\n |-- [+] images\n |-- [+] fonts\n |-- components\n |-- Header\n |-- Footer\n |-- [+]\n |-- Widgets\n |-- [+] Buttons\n |-- [+] tests\n |-- index.js\n |-- constants\n |-- endpoints.js\n |-- pages\n |-- services\n |-- styles\n |-- App.js\n |-- index.js\n|-- package.json\n"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Api"}),": This folder consists the list of all the API functions."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Assets"}),": This folder consists of all the fonts and other media particularly images."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Components"}),": This folder consists of shared elements that can be used by all the pages such as header and footer and consists of sub folder widgets with contains helper components for the pages such as Button, Text Field, Image etc."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Constants"}),": This folder consists the list of all the endpoints for the API and the object for the routes."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Pages"}),": This folder consists of all the pages to be displayed."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Services"}),": This folder defines all the API services."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Styles"}),": This folder contains mainly three files:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Theme: It consists of all the variables related to themes such as primary-color, secondary-color, primary-text etc."}),"\n",(0,n.jsx)(s.li,{children:"GlobalStyle.js: It consists of all the css related to theme."}),"\n",(0,n.jsx)(s.li,{children:"global.css: It consists of all the default css such as spacing."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"wireframes",children:"Wireframes"}),"\n",(0,n.jsx)(s.p,{children:"Every project starts with a clear vision. Hence our first step was to design the user interface, taking reference from modern web apps.\nA good interface design should be attractive. It means that the use of that interface is enjoyable. The design should include cool user-friendly features with visual appeal. Clarity is the most important characteristic of our user interface design.\nWe have prepared many prototypes and low as well as high fidelity wireframes for FOSSology."}),"\n",(0,n.jsx)(s.h2,{id:"contributions",children:"Contributions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004/fossology/wiki/Mockups",children:"Wireframes"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/commit/6db51f4543220b680d66e77b35d7a9f3fbdf5c85",children:"feat(structure): added initial structure"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsxs)(s.a,{href:"https://github.com/fossology/FOSSologyUI/commit/507bf8bf404fefd40fe4f1de621141b03bcd39e2",children:["fix(gitignore)",":added"," yarn.lock"]})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},56733:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/sequenceDiagram-4f529791280ddf5e7ffc5d5792870b0e.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>o});var n=t(67294);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/32232bbe.b655ed7d.js b/assets/js/32232bbe.b655ed7d.js new file mode 100644 index 0000000000..6590f0e9b4 --- /dev/null +++ b/assets/js/32232bbe.b655ed7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1752],{25659:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>a});var i=n(85893),s=n(11151);const r={title:"Week 18",author:"Abdelrahman Jamal"},l=void 0,d={id:"2023/copyrights/updates/2023-09-27",title:"Week 18",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-09-27.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-09-27",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-09-27.md",tags:[],version:"current",frontMatter:{title:"Week 18",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 17",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-20"},next:{title:"Week 19",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-04"}},o={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. Decluttering Strategies:",id:"1-decluttering-strategies",level:3},{value:"2. Model Testing:",id:"2-model-testing",level:3},{value:"3. Integration Efforts:",id:"3-integration-efforts",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"1. Model Enhancement:",id:"1-model-enhancement",level:3}];function c(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.em,{children:"(September,27,2023)"})}),"\n",(0,i.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsx)(t.h3,{id:"1-decluttering-strategies",children:"1. Decluttering Strategies:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["I have considered two distinct strategies for decluttering using NER (Named Entity Recognition):","\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Simpler Approach"}),": Identifying the entire copyright as a single entity."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Detailed Labeling"}),": Recognizing and labeling individual components within the copyright. This includes symbols like ",(0,i.jsx)(t.code,{children:"(c)"}),", ",(0,i.jsx)(t.code,{children:"(C)"}),", and ",(0,i.jsx)(t.code,{children:"\xa9"}),", the term ",(0,i.jsx)(t.code,{children:"copyright"}),", the copyright holder's name, the year/date, among other constituents. Although this method requires more extensive labeling, it promises potential benefits in accuracy and granularity."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.li,{children:"I opted for the simpler approach and proceeded with manually labeling 600 instances via doccano. Subsequently, a rudimentary spaCy model was trained on this labeled data."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"2-model-testing",children:"2. Model Testing:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Here are some samples tested with the developed model, where the highlighted parts denote detected copyrights:","\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:(0,i.jsx)(t.code,{children:"Copyright (c) 1997-2000 PHP Development Team (See Credits file)"})}),' |\\n"); ibase_blob_add($bl_h, "+----------------------------------------------------------------------+\\n"); ibase_blob_add($bl_h, "| This program is free software; you can redistribute it and/or modify |\\n"); ibase_blob_add($bl_h,']}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.strong,{children:(0,i.jsx)(t.code,{children:"copyright 1996 by SPI"})})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:(0,i.jsx)(t.code,{children:"Copyright (c) 2004-2011, The Dojo Foundation"})})," All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: ",(0,i.jsx)(t.a,{href:"http://dojotoolkit.org/license",children:"http://dojotoolkit.org/license"})," for details"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:(0,i.jsx)(t.code,{children:"Copyright (C) 2003-2004 Lawrence E. Rosen."})})," All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:(0,i.jsx)(t.code,{children:"Copyright 2004-2018 H2 Group. Multiple-Licensed under the MPL 2.0, and the EPL 1.0"})})," (",(0,i.jsx)(t.a,{href:"http://h2database.com/html/license.html",children:"http://h2database.com/html/license.html"}),"). Initial Developer: H2 Group"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.li,{children:"Overall, the model displays adeptness in detecting the copyrights and filtering out the clutter, with some notable exceptions, like the fifth example."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"3-integration-efforts",children:"3. Integration Efforts:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"With Gaurav's assistance during our recent meeting, we managed to pinpoint some integration issues. After overcoming them, the integrated feature was activated, although it ran at a significantly diminished speed. The reason for this reduced efficiency is yet to be determined."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,i.jsx)(t.h3,{id:"1-model-enhancement",children:"1. Model Enhancement:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"The immediate plan is to supplement our dataset with additional labeled data points. With this augmented dataset, the aim is to further improve and refine the declutter model."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>l});var i=n(67294);const s={},r=i.createContext(s);function l(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/32c02662.4d086881.js b/assets/js/32c02662.4d086881.js new file mode 100644 index 0000000000..edba72a409 --- /dev/null +++ b/assets/js/32c02662.4d086881.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9103],{68013:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>h,metadata:()=>l,toc:()=>d});var i=s(85893),t=s(11151);const h={sidebar_position:5,title:"Week 5"},r=void 0,l={id:"2022/minutes/30-06-2022",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/minutes/30-06-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/30-06-2022",permalink:"/gsoc/docs/2022/minutes/30-06-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/30-06-2022.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Week 5"},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/minutes/23-06-2022"},next:{title:"Week 6",permalink:"/gsoc/docs/2022/minutes/07-07-2022"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 30-06-2022."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussion on database tables upload, uploadtree, pfile."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Raised two pull requests in atarashi and Minerva repositories. I was mainly working on packaging and linear spectrum model."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Last week I have tried to add project into the menu but felt it was difficult. Mentors have clarified my questions and explained the flow about menu. I will try to finish this week."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Implemented all the suggestions proposed by Gaurav Mishra. Trying to finish further files. Thinking of finishing the first part by 4th week."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Demo on all recent jobs page and my recent jobs page. Worked on rest api of showjobs page mentors suggested some changes working on it."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Wanted to start with simple API so selected Groups. Two pull requests created in fossology community. Which is under review."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>r});var i=s(67294);const t={},h=i.createContext(t);function r(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3383980b.bacae3f5.js b/assets/js/3383980b.bacae3f5.js new file mode 100644 index 0000000000..392f915e69 --- /dev/null +++ b/assets/js/3383980b.bacae3f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9331],{66437:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=i(85893),t=i(11151);const o={title:"Week 8",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"7th August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 8"]},r=void 0,a={id:"2022/ui/updates/krishna/2022-08-07",title:"Week 8",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-08-07.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-08-07",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-08-07.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 8",permalink:"/gsoc/docs/tags/week-8"}],version:"current",frontMatter:{title:"Week 8",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"7th August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 8"]},sidebar:"2022",previous:{title:"Week 7",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-31"},next:{title:"Week 9",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-14"}},l={},d=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"REST API Implemented -",id:"rest-api-implemented--",level:2},{value:"<code>uploadPermssions</code> :",id:"uploadpermssions-",level:3},{value:"PR Link : feat(api): PUT api to Set permissions for a upload and GET API to fetch respective permissions of groups #2275",id:"pr-link--featapi-put-api-to-set-permissions-for-a-upload-and-get-api-to-fetch-respective-permissions-of-groups-2275",level:3},{value:"Testing <code>/uploads/{id}/permissions</code>",id:"testing-uploadsidpermissions",level:2},{value:"UI Implementation of the upload permissions page",id:"ui-implementation-of-the-upload-permissions-page",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function h(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Sl. No."}),(0,n.jsx)(s.th,{children:"Initial Goals"}),(0,n.jsx)(s.th,{children:"Completed"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"1."}),(0,n.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,n.jsx)(s.td,{children:"Done"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"2."}),(0,n.jsx)(s.td,{children:"Finish the implementation of REST API for modifying upload Permssions"}),(0,n.jsx)(s.td,{children:"Done"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"rest-api-implemented--",children:"REST API Implemented -"}),"\n",(0,n.jsxs)(s.p,{children:["After designing the API in the previous weaek, the design was approved by ",(0,n.jsx)(s.strong,{children:"Gaurav"})," Sir and requested some final changes. So, following the API design I implemented the ",(0,n.jsx)(s.code,{children:"PUT /uploads/{id}/permissions"})," api for modifying the upload permissions via REST API."]}),"\n",(0,n.jsxs)(s.h3,{id:"uploadpermssions-",children:[(0,n.jsx)(s.code,{children:"uploadPermssions"})," :"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["The API implementation of the ",(0,n.jsx)(s.code,{children:"/uploads/{id}/permissions"})," PUT route to modify user Details is done."]}),"\n",(0,n.jsxs)(s.li,{children:["This task included","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Creating a new PUT route in the ",(0,n.jsx)(s.code,{children:"index.php"})," file inside ",(0,n.jsx)(s.code,{children:"www/ui/api"})," directory."]}),"\n",(0,n.jsxs)(s.li,{children:["Adding a new method ",(0,n.jsx)(s.code,{children:"setUploadPermissions"})," in the ",(0,n.jsx)(s.code,{children:"UploadController"}),"class."]}),"\n",(0,n.jsxs)(s.li,{children:["Trying to re-use the methods that are already used in the ",(0,n.jsx)(s.code,{children:"upload_permissions"})," plugin."]}),"\n",(0,n.jsxs)(s.li,{children:["Testing the API via any API platform like ",(0,n.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.h3,{id:"pr-link--featapi-put-api-to-set-permissions-for-a-upload-and-get-api-to-fetch-respective-permissions-of-groups-2275",children:["PR Link : ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2275",children:"feat(api): PUT api to Set permissions for a upload and GET API to fetch respective permissions of groups #2275"})]}),"\n",(0,n.jsxs)(s.h2,{id:"testing-uploadsidpermissions",children:["Testing ",(0,n.jsx)(s.code,{children:"/uploads/{id}/permissions"})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Pull the changes from the above ",(0,n.jsx)(s.strong,{children:"PR"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Use any API platform like ",(0,n.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Provide the request body as following ----\n",(0,n.jsx)(s.img,{alt:"req-body-upload-permissions",src:i(43952).Z+"",width:"938",height:"246"})]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["You can expect a response like this\n",(0,n.jsx)(s.img,{alt:"res-upload-permissions",src:i(14599).Z+"",width:"938",height:"212"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"ui-implementation-of-the-upload-permissions-page",children:"UI Implementation of the upload permissions page"}),"\n",(0,n.jsx)(s.p,{children:"When I started examining the UI behaviour of the upload permssions page, I realised that there is a requirement of an API that should return all the groups with their respective permissions for a given upload in order to create a tabular view in the UI."}),"\n",(0,n.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"This PR is currently in review and if any changes are requested, I'll be solving them in the coming week."}),"\n",(0,n.jsx)(s.li,{children:"Implement and design the API that will return the groups with their respective permissions for a given upload ID."}),"\n",(0,n.jsx)(s.li,{children:"Implementing the react UI for the upload permissions page."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},43952:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/uploadPermReq-2c3ae44d992bda6ba2f6b8ca280e6b83.png"},14599:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/uploadPermRes-f0c696445372eedcea737c93226d6e96.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>a,a:()=>r});var n=i(67294);const t={},o=n.createContext(t);function r(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/33c1fda8.77ad1907.js b/assets/js/33c1fda8.77ad1907.js new file mode 100644 index 0000000000..8d3e571a8c --- /dev/null +++ b/assets/js/33c1fda8.77ad1907.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6303],{77615:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var t=n(85893),i=n(11151);const r={title:"Week 9",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"14th August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 9"]},o=void 0,a={id:"2022/ui/updates/krishna/2022-08-14",title:"Week 9",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-08-14.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-08-14",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-14",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-08-14.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 9",permalink:"/gsoc/docs/tags/week-9"}],version:"current",frontMatter:{title:"Week 9",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"14th August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 9"]},sidebar:"2022",previous:{title:"Week 8",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-07"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-21"}},l={},d=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"REST API Implemented -",id:"rest-api-implemented--",level:2},{value:"Designing <code>GET /uploads/{id}/perm-groups</code>",id:"designing-get-uploadsidperm-groups",level:3},{value:"Implementation :",id:"implementation-",level:3},{value:"PR Link : feat(api): PUT api to Set permissions for a upload and GET API to fetch respective permissions of groups #2275",id:"pr-link--featapi-put-api-to-set-permissions-for-a-upload-and-get-api-to-fetch-respective-permissions-of-groups-2275",level:3},{value:"Testing <code>GET /uploads/{id}/perm-groups</code>",id:"testing-get-uploadsidperm-groups",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function p(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Sl. No."}),(0,t.jsx)(s.th,{children:"Initial Goals"}),(0,t.jsx)(s.th,{children:"Completed"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"1."}),(0,t.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,t.jsx)(s.td,{children:"Done"})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"2."}),(0,t.jsx)(s.td,{children:"Implement and design the API to get all the groups with their repective permssions for a given upload ID"}),(0,t.jsx)(s.td,{children:"Done"})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"3."}),(0,t.jsx)(s.td,{children:"Creating the upload permissions page in the react UI"}),(0,t.jsx)(s.td,{children:"Not Started"})]})]})]}),"\n",(0,t.jsx)(s.h2,{id:"rest-api-implemented--",children:"REST API Implemented -"}),"\n",(0,t.jsxs)(s.p,{children:["As the below API is a part of the ",(0,t.jsx)(s.strong,{children:"upload-permissions"})," functionality, I added the REST implementation in the same ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2275",children:"PR#2275"}),"."]}),"\n",(0,t.jsxs)(s.h3,{id:"designing-get-uploadsidperm-groups",children:["Designing ",(0,t.jsx)(s.code,{children:"GET /uploads/{id}/perm-groups"})]}),"\n",(0,t.jsx)(s.p,{children:"I figured out the requirements of this API and designed the following :"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:"/uploads/{id}/perm-groups:\n parameters:\n - name: id\n required: true\n description: Id of the upload\n in: path\n schema:\n type: integer\n get:\n operationId: getGroupsWithPermissions\n tags:\n - Upload\n summary: Get all the groups with their respective permissions for a upload\n description:\n Returns the list of all the groups with their respective permissions for a upload\n responses:\n '200':\n description: Get Groups with permissions\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/UploadPermGroups'\n '404':\n description: Upload does not exist\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/components/schemas/Info'\n default:\n $ref: '#/components/responses/defaultResponse'\n"})}),"\n",(0,t.jsx)(s.h3,{id:"implementation-",children:"Implementation :"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["The API implementation of the ",(0,t.jsx)(s.code,{children:"/uploads/{id}/perm-groups"})," GET route to get all the groups with their respective permissions for a upload is done."]}),"\n",(0,t.jsxs)(s.li,{children:["This task included","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Creating a new GET route in the ",(0,t.jsx)(s.code,{children:"index.php"})," file inside ",(0,t.jsx)(s.code,{children:"www/ui/api"})," directory."]}),"\n",(0,t.jsxs)(s.li,{children:["Adding a new method ",(0,t.jsx)(s.code,{children:"getGroupsWithPermissions"})," in the ",(0,t.jsx)(s.code,{children:"UploadController"}),"class."]}),"\n",(0,t.jsxs)(s.li,{children:["Trying to re-use the methods that are already used in the ",(0,t.jsx)(s.code,{children:"upload_permissions"})," plugin."]}),"\n",(0,t.jsxs)(s.li,{children:["Testing the API via any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link--featapi-put-api-to-set-permissions-for-a-upload-and-get-api-to-fetch-respective-permissions-of-groups-2275",children:["PR Link : ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2275",children:"feat(api): PUT api to Set permissions for a upload and GET API to fetch respective permissions of groups #2275"})]}),"\n",(0,t.jsxs)(s.h2,{id:"testing-get-uploadsidperm-groups",children:["Testing ",(0,t.jsx)(s.code,{children:"GET /uploads/{id}/perm-groups"})]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Pull the changes from the above ",(0,t.jsx)(s.strong,{children:"PR"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Use any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Provide the ",(0,t.jsx)(s.code,{children:"uploadId"})," in ",(0,t.jsx)(s.code,{children:"params"})," (",(0,t.jsx)(s.code,{children:"{id}"}),")"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["If your upload exists, you can expect a response like this.\n",(0,t.jsx)(s.img,{alt:"res-perm-groups",src:n(14074).Z+"",width:"758",height:"564"}),"\n",(0,t.jsxs)(s.strong,{children:["Note: The above response also gives the ",(0,t.jsx)(s.code,{children:"publicPerm"})," parameter which states the public permissions of the upload."]})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"This PR is currently in review and if any changes are requested, I'll be solving them in the coming week."}),"\n",(0,t.jsx)(s.li,{children:"Creating the upload permissions page in the react UI and implementing the APIs created."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},14074:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/permGroupsRes-b2f569f05347064a1aaed97ce1a0bb0a.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>o});var t=n(67294);const i={},r=t.createContext(i);function o(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/33f65a48.35dfa079.js b/assets/js/33f65a48.35dfa079.js new file mode 100644 index 0000000000..fa396d8591 --- /dev/null +++ b/assets/js/33f65a48.35dfa079.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2159],{34844:e=>{e.exports=JSON.parse('{"tag":{"label":"gsoc22","permalink":"/gsoc/docs/tags/gsoc-22","allTagsPath":"/gsoc/docs/tags","count":83,"items":[{"id":"2022/atarashi/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-02"},{"id":"2022/project/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-02"},{"id":"2022/reuse/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-02"},{"id":"2022/spasht/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-02"},{"id":"2022/ui/updates/ayush/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/ayush/2022-06-02"},{"id":"2022/ui/updates/krishna/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-02"},{"id":"2022/ui/updates/samuel/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-06-02"},{"id":"2022/ui/updates/soham/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-06-02"},{"id":"2022/atarashi/updates/2022-06-13","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-13"},{"id":"2022/reuse/updates/2022-06-13","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-13"},{"id":"2022/spasht/updates/2022-06-08","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-08"},{"id":"2022/ui/updates/krishna/2022-06-20","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-20"},{"id":"2022/ui/updates/samuel/2021-06-24","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2021-06-24"},{"id":"2022/ui/updates/soham/2022-06-24","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-06-24"},{"id":"2022/atarashi/updates/2022-08-16","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-16"},{"id":"2022/reuse/updates/2022-08-16","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-16"},{"id":"2022/ui/updates/krishna/2022-08-21","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-21"},{"id":"2022/ui/updates/samuel/2022-08-25","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-25"},{"id":"2022/ui/updates/samuel/2022-09-1","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-09-1"},{"id":"2022/ui/updates/soham/2022-08-08","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-08"},{"id":"2022/atarashi/updates/2022-08-23","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-23"},{"id":"2022/reuse/updates/2022-08-23","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-23"},{"id":"2022/ui/updates/krishna/2022-08-28","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-28"},{"id":"2022/atarashi/updates/2022-08-30","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-30"},{"id":"2022/reuse/updates/2022-08-30","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-30"},{"id":"2022/ui/updates/krishna/2022-09-04","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-09-04"},{"id":"2022/ui/updates/samuel/2022-09-08","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-09-08"},{"id":"2022/reuse/updates/2022-09-06","title":"Week 13","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-09-06"},{"id":"2022/atarashi/updates/2022-06-20","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-20"},{"id":"2022/reuse/updates/2022-06-20","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-20"},{"id":"2022/spasht/updates/2022-06-15","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-15"},{"id":"2022/ui/updates/krishna/2022-06-27","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-27"},{"id":"2022/ui/updates/samuel/2022-06-30","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-06-30"},{"id":"2022/ui/updates/soham/2022-07-3","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-3"},{"id":"2022/atarashi/updates/2022-06-27","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-06-27"},{"id":"2022/reuse/updates/2022-06-27","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-27"},{"id":"2022/spasht/updates/2022-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-22"},{"id":"2022/ui/updates/krishna/2022-07-04","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-04"},{"id":"2022/ui/updates/samuel/2022-07-07","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-07-07"},{"id":"2022/ui/updates/soham/2022-07-7","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-7"},{"id":"2022/atarashi/updates/2022-07-04","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-04"},{"id":"2022/reuse/updates/2022-07-04","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-04"},{"id":"2022/spasht/updates/2022-07-06","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-07-06"},{"id":"2022/ui/updates/krishna/2022-07-11","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-11"},{"id":"2022/ui/updates/samuel/2022-07-14","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-07-14"},{"id":"2022/ui/updates/soham/2022-07-8","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-8"},{"id":"2022/atarashi/updates/2022-07-11","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-11"},{"id":"2022/reuse/updates/2022-07-11","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-11"},{"id":"2022/spasht/updates/2022-07-13","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-07-13"},{"id":"2022/ui/updates/krishna/2022-07-17","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-17"},{"id":"2022/ui/updates/samuel/2022-07-21","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-07-21"},{"id":"2022/ui/updates/soham/2022-07-9","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-9"},{"id":"2022/atarashi/updates/2022-07-19","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-19"},{"id":"2022/reuse/updates/2022-07-18","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-18"},{"id":"2022/ui/updates/krishna/2022-07-24","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-24"},{"id":"2022/ui/updates/samuel/2022-08-02","title":"Week 6 & 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-02"},{"id":"2022/ui/updates/soham/2022-08-01","title":"Week 6 and 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-01"},{"id":"2022/atarashi/updates/2022-07-26","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-07-26"},{"id":"2022/reuse/updates/2022-07-25","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-25"},{"id":"2022/ui/updates/krishna/2022-07-31","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-31"},{"id":"2022/atarashi/updates/2022-08-02","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-02"},{"id":"2022/reuse/updates/2022-08-02","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-02"},{"id":"2022/ui/updates/krishna/2022-08-07","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-07"},{"id":"2022/ui/updates/samuel/2022-08-11","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-11"},{"id":"2022/ui/updates/soham/2022-08-05","title":"Week 8 and 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-05"},{"id":"2022/atarashi/updates/2022-08-09","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/atarashi/updates/2022-08-09"},{"id":"2022/reuse/updates/2022-08-09","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-09"},{"id":"2022/ui/updates/krishna/2022-08-14","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-14"},{"id":"2022/ui/updates/samuel/2022-08-18","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-18"},{"id":"2022/project/updates/2022-06-09","title":"Week1","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-09"},{"id":"2022/project/updates/2022-08-11","title":"Week10","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-11"},{"id":"2022/project/updates/2022-08-18","title":"Week11","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-18"},{"id":"2022/project/updates/2022-08-25","title":"Week12","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-25"},{"id":"2022/project/updates/2022-09-01","title":"Week13","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-09-01"},{"id":"2022/project/updates/2022-09-08","title":"Week14","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-09-08"},{"id":"2022/project/updates/2022-06-16","title":"Week2","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-16"},{"id":"2022/project/updates/2022-06-23","title":"Week3","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-23"},{"id":"2022/project/updates/2022-06-30","title":"Week4","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-30"},{"id":"2022/project/updates/2022-07-07","title":"Week5","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-07"},{"id":"2022/project/updates/2022-07-14","title":"Week6","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-14"},{"id":"2022/project/updates/2022-07-21","title":"Week7","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-21"},{"id":"2022/project/updates/2022-07-28","title":"Week8","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-28"},{"id":"2022/project/updates/2022-08-04","title":"Week9","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-04"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/3423283a.04cd3b04.js b/assets/js/3423283a.04cd3b04.js new file mode 100644 index 0000000000..7303aa1a82 --- /dev/null +++ b/assets/js/3423283a.04cd3b04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7231],{41718:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var i=n(85893),t=n(11151);const o={title:"Community Bonding",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},l=void 0,r={id:"2022/ui/updates/soham/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-06-02.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-06-02",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Community Bonding",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-09-1"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-06-24"}},c={},a=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Discussions",id:"discussions",level:3},{value:"Contributions",id:"contributions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Discussions",id:"discussions-1",level:3},{value:"Contributions",id:"contributions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 2nd, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"First GSOC 2022 weekly update meeting"}),"\n",(0,i.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Understood the flow and processes of the weekly updates meetings organized by the Organisation."}),"\n",(0,i.jsx)(s.li,{children:"Discussed and came to fix a suitable time for project-specific weekly meetings (Every Tuesday from 2:30 PM to 3:30 PM GMT)"}),"\n",(0,i.jsx)(s.li,{children:"Explained the fixes issued during this week and the possibilities of more upcoming fixes."}),"\n",(0,i.jsx)(s.li,{children:"Some project-specific doubts cleared regarding the API testing"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/210",children:"API Header fix"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/207",children:"Constants exported for browse module"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/206",children:"Updated dependencies of the project"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Currently will be looking for scopes to modularise the larger components into smaller components for better reusability and flexibility in future updates."}),"\n",(0,i.jsx)(s.li,{children:"Will be testing the APIs and if issues are found will be reporting them to the mentors and will be issuing respective fixes for them."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 9th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSOC 2022 weekly update meeting"}),"\n",(0,i.jsx)(s.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Understood the flow and processes of the weekly updates meetings organized by the Organisation."}),"\n",(0,i.jsx)(s.li,{children:"Discussed and came to fix a suitable time for project-specific weekly meetings (Every Tuesday from 2:30 PM to 3:30 PM GMT)"}),"\n",(0,i.jsx)(s.li,{children:"Explained the resuablity of the constants in some components."}),"\n",(0,i.jsx)(s.li,{children:"The flow of the development during the GSOC period was discussed upon."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"contributions-1",children:"Contributions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/219",children:"Re-Used constants in Upload directory"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Students will be creating tickets and they will be assiged by the mentors to fix the issues."}),"\n",(0,i.jsx)(s.li,{children:"Necessary KT session will be conducted in the Project specific meets to discuss the issues and fix them."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>l});var i=n(67294);const t={},o=i.createContext(t);function l(e){const s=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/345fcdca.9338ec3c.js b/assets/js/345fcdca.9338ec3c.js new file mode 100644 index 0000000000..fae6cf3dc7 --- /dev/null +++ b/assets/js/345fcdca.9338ec3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4560],{96589:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var t=i(85893),s=i(11151);const r={sidebar_position:12,title:"Week 9"},o=void 0,a={id:"2023/minutes/2023-08-10",title:"Week 9",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-08-10.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-08-10",permalink:"/gsoc/docs/2023/minutes/2023-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-08-10.md",tags:[],version:"current",sidebarPosition:12,frontMatter:{sidebar_position:12,title:"Week 9"},sidebar:"2023",previous:{title:"Week 7",permalink:"/gsoc/docs/2023/minutes/2023-07-20"},next:{title:"Week 10",permalink:"/gsoc/docs/2023/minutes/2023-08-17"}},l={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function h(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Worked on obligations end-point."}),"\n",(0,t.jsx)(n.li,{children:"Created endpoints to list all obligations and obligation by ID."}),"\n",(0,t.jsxs)(n.li,{children:["Had questions about IPRA, Email/URL/Author, Keyword and ECC endpoints.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Will work on these endpoints after finishing the obligations endpoints."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Will go through v2 documentations and contact on Slack if needed."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Experimented with different algorithms. Best one so far is with 0.16% error on 16,377 entities."}),"\n",(0,t.jsx)(n.li,{children:"More aggrisive optimization can achieve 0.03%"}),"\n",(0,t.jsx)(n.li,{children:"Received new data from mentors last week, 26K unique rows. 0.5% error on new test data from best model."}),"\n",(0,t.jsx)(n.li,{children:"Most errors are due to wrong data annotation."}),"\n",(0,t.jsx)(n.li,{children:"2 copyrights wrongly labled on copyrights from Linux kernel, taken from a paper."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on Audit for license changes. There is a separate table to hold the changes and separate to gerenrate the changelogs."}),"\n",(0,t.jsx)(n.li,{children:"Audit logs can be fetched using a GET query and changes can be fetched using the changelog id."}),"\n",(0,t.jsx)(n.li,{children:"Had question about candidate licenses. Mentors explained in brief, will continue the discussion in project specific call later."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>o});var t=i(67294);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/34f37eae.5b92d535.js b/assets/js/34f37eae.5b92d535.js new file mode 100644 index 0000000000..7a7783e1d5 --- /dev/null +++ b/assets/js/34f37eae.5b92d535.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6217],{69881:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var t=i(85893),n=i(11151);const o={title:"Week 8",author:"Shruti Agarwal"},l=void 0,r={id:"2021/ui/updates/shruti/2021-08-03",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-08-03.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-08-03",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-08-03.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-27"},next:{title:"Week 9",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-10"}},d={},a=[{value:"Screenshots",id:"screenshots",level:2},{value:"Add new Candidate License",id:"add-new-candidate-license",level:3},{value:"Upload From Server",id:"upload-from-server",level:3},{value:"Fix Delete Uploads",id:"fix-delete-uploads",level:3},{value:"Contributions",id:"contributions",level:2}];function c(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Added the create new license page for candidate.","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Added the endpoint and route for createCandidateLicense in constant folder."}),"\n",(0,t.jsx)(s.li,{children:"Created the function for it in services and api."}),"\n",(0,t.jsx)(s.li,{children:"Shifted the listing of license page in organize/license folder."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.li,{children:"Fixed the groups error which leads to logout the user again and again."}),"\n",(0,t.jsxs)(s.li,{children:["Added the upload server page and the required state variables for it.\n",(0,t.jsx)(s.em,{children:"Currently, upload from server api is unavailable."})]}),"\n",(0,t.jsx)(s.li,{children:"Code is getting broken if no upload is selected to delete. Added the error checks in deleteUploads."}),"\n",(0,t.jsx)(s.li,{children:"Fixed the analysis options in vcs. Added the defaultAgentsList function instead of hard coded analysis options."}),"\n",(0,t.jsx)(s.li,{children:"Fixed the user experience for uploads page since uploads page are longer than one page so on clicking the upload button user have to manually scroll to see the snackbar that whether the file is uploaded or not and for the first time user it may be bit confusing."}),"\n",(0,t.jsxs)(s.li,{children:["Created the separate repository for ",(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API",children:"fossology rest apis"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:["Added the open pull requests of rest api in the new repository. Added prs are: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2064",children:"#2064"})," and ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2038",children:"#2038"})]}),"\n",(0,t.jsxs)(s.li,{children:["Opened the issues for required rest apis.","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Pagination feature request in the Search api."}),"\n",(0,t.jsx)(s.li,{children:"Single request for the upload and analysis."}),"\n",(0,t.jsx)(s.li,{children:"Edit request for the Uploads."}),"\n",(0,t.jsx)(s.li,{children:"Upload from URL api has missing dependencies."}),"\n",(0,t.jsx)(s.li,{children:"Jobs api is not giving complete data."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,t.jsx)(s.h3,{id:"add-new-candidate-license",children:"Add new Candidate License"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"add-new-candidate-license",src:i(18876).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"add-new-candidate-success",src:i(67057).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(s.h3,{id:"upload-from-server",children:"Upload From Server"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"upload-from-server",src:i(33053).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(s.h3,{id:"fix-delete-uploads",children:"Fix Delete Uploads"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"fix-delete-uploads",src:i(45793).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(s.h2,{id:"contributions",children:"Contributions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/120/commits/7478f68434eac3639f0acec28ee422020781aae9",children:"feat(license): added the candidate new license page"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/120/commits/2fc264eb9a6929c454af03c03ea97b05d496316a",children:"fix(ui): fixed the ui changes in create candidate license page"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/120/commits/006c011f8d45f91007f26c78a1916d732cd4664f",children:"fix(groups): fixed the logout error"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/121",children:"feat(upload-server): added the upload server page"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/123",children:"feat(refactor): refactored the codebase"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/126",children:"fix(errors): Added the error checks in deleteUploads"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/127",children:"fix(vcs): fixed the analysis of scanData"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/132",children:"fix(ux): fixed the ux of upload pages"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/1",children:"REST API: Pagination feature in the Search request"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/2",children:"REST API: Created the single request for the upload and analysis"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/3",children:"REST API: Edit request for the Uploads"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/4",children:"REST API: Upload from URL"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/5",children:"REST API: Jobs api is not giving complete data"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},18876:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/addLicense-c873e5e3c4852e608845c5b955d7bac0.png"},67057:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/addLicenseSuccess-0d5e2bd7eaa3ff5a21be36554f3d36e0.png"},45793:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/fixDeleteUploads-b9caee8a86a0dafa764817a1916270e1.png"},33053:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/uploadServer-e1676c250c837c7fa8f3b151ad454c73.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>r,a:()=>l});var t=i(67294);const n={},o=t.createContext(n);function l(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3512fcc1.08a8f76b.js b/assets/js/3512fcc1.08a8f76b.js new file mode 100644 index 0000000000..2c5faf9bba --- /dev/null +++ b/assets/js/3512fcc1.08a8f76b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6549],{91952:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>h,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var t=s(85893),i=s(11151);const r={sidebar_position:9,title:"Week 9"},h=void 0,l={id:"2022/minutes/28-07-2022",title:"Week 9",description:"\x3c!--",source:"@site/docs/2022/minutes/28-07-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/28-07-2022",permalink:"/gsoc/docs/2022/minutes/28-07-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/28-07-2022.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"Week 9"},sidebar:"2022",previous:{title:"Week 8",permalink:"/gsoc/docs/2022/minutes/21-07-2022"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/minutes/04-08-2022"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 28-07-2022."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"We are currently heading towards the first results phase and we see that the most of the students are lagging on what they have estimated. As mentors and admins, We also see that what you have promised and what you delivered. Please dedicate some more time so that you can finish what is lagging."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Last week i have mofified the text content of the project also i tried to work on upload page."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:'Raised a pull request in fossology community for identifing "SPDX-FileCopyrightText:" it is currently under review. also im creating documentation.'}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Dropped."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Implemented license browser page. understood that it needs more REST endpoints. currently working on replicating clearing status. clarified my quesions with mentors."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>h});var t=s(67294);const i={},r=t.createContext(i);function h(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/366365ff.bf265508.js b/assets/js/366365ff.bf265508.js new file mode 100644 index 0000000000..c0bd279892 --- /dev/null +++ b/assets/js/366365ff.bf265508.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4989],{18493:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var i=s(85893),t=s(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 4",r={id:"2023/laas/updates/2023-06-23",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-06-23.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-06-23",permalink:"/gsoc/docs/2023/laas/updates/2023-06-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-06-23.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-16"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-30"}},c={},d=[{value:"Attendees",id:"attendees",level:2},{value:"Update",id:"update",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Conclusion and future plan",id:"conclusion-and-future-plan",level:2}];function o(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-4",children:"Week 4"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June, 23, 2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"update",children:"Update"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Created Handler for invalid user."}),"\n",(0,i.jsxs)(n.li,{children:["Created endpoints to update and create license.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Create License:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"to create an open-source license and add it to the database"}),"\n",(0,i.jsx)(n.li,{children:"to make a license we need some required field"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Update License:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"to update an open-source license and modify it to database"}),"\n",(0,i.jsx)(n.li,{children:"License to be updated using shortname"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" POST METHOD: /api/licenses // Create license \n PATCH METHOD: /api/license/:shortname // Update licenses by shortname\n"})}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"What should be the data components of a user required for authenticattion:\nThey should be same as in fossology"}),"\n",(0,i.jsx)(n.li,{children:"Search should be done using both fuzzy and fulltext search."}),"\n",(0,i.jsx)(n.li,{children:"For now we have to add basic Authentication."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and future plan"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add basic Authentication and create user table for migration."}),"\n",(0,i.jsx)(n.li,{children:"Create, Get all user and get user by id as basic endpoints."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" GET METHOD: /api/users // get all users\n GET METHOD: /api/user/:id // get a user by id\n POST METHOD: /api/user // create a user\n"})})]})}function u(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>l});var i=s(67294);const t={},a=i.createContext(t);function l(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/36994c47.1ec8c594.js b/assets/js/36994c47.1ec8c594.js new file mode 100644 index 0000000000..8c3da2c232 --- /dev/null +++ b/assets/js/36994c47.1ec8c594.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9208],{94468:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/3720c009.2a607542.js b/assets/js/3720c009.2a607542.js new file mode 100644 index 0000000000..b2011541c2 --- /dev/null +++ b/assets/js/3720c009.2a607542.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3751],{10727:(t,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(67294);var a=s(36905),r=s(8264),l=s(35281),n=s(35155),c=s(26090),i=s(90197),g=s(92503),o=s(85893);function u(t){let{title:e}=t;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.d,{title:e}),(0,o.jsx)(i.Z,{tag:"doc_tags_list"})]})}function h(t){let{tags:e,title:s}=t;return(0,o.jsx)(r.FG,{className:(0,a.Z)(l.k.page.docsTagsListPage),children:(0,o.jsx)("div",{className:"container margin-vert--lg",children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,o.jsx)(g.Z,{as:"h1",children:s}),(0,o.jsx)(c.Z,{tags:e})]})})})})}function d(t){const e=(0,n.M)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(u,{...t,title:e}),(0,o.jsx)(h,{...t,title:e})]})}},13008:(t,e,s)=>{s.d(e,{Z:()=>c});s(67294);var a=s(36905),r=s(33692);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=s(85893);function c(t){let{permalink:e,label:s,count:c}=t;return(0,n.jsxs)(r.Z,{href:e,className:(0,a.Z)(l.tag,c?l.tagWithCount:l.tagRegular),children:[s,c&&(0,n.jsx)("span",{children:c})]})}},26090:(t,e,s)=>{s.d(e,{Z:()=>g});s(67294);var a=s(35155),r=s(13008),l=s(92503);const n={tag:"tag_Nnez"};var c=s(85893);function i(t){let{letterEntry:e}=t;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.Z,{as:"h2",id:e.letter,children:e.letter}),(0,c.jsx)("ul",{className:"padding--none",children:e.tags.map((t=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.Z,{...t})},t.permalink)))}),(0,c.jsx)("hr",{})]})}function g(t){let{tags:e}=t;const s=(0,a.P)(e);return(0,c.jsx)("section",{className:"margin-vert--lg",children:s.map((t=>(0,c.jsx)(i,{letterEntry:t},t.letter)))})}},35155:(t,e,s)=>{s.d(e,{M:()=>r,P:()=>l});var a=s(95999);const r=()=>(0,a.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(t){const e={};return Object.values(t).forEach((t=>{const s=function(t){return t[0].toUpperCase()}(t.label);e[s]??=[],e[s].push(t)})),Object.entries(e).sort(((t,e)=>{let[s]=t,[a]=e;return s.localeCompare(a)})).map((t=>{let[e,s]=t;return{letter:e,tags:s.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/37ce31a4.96d77bfd.js b/assets/js/37ce31a4.96d77bfd.js new file mode 100644 index 0000000000..66ac82d8cd --- /dev/null +++ b/assets/js/37ce31a4.96d77bfd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5012],{42702:s=>{s.exports=JSON.parse('{"tag":{"label":"spdx-expression","permalink":"/gsoc/docs/tags/spdx-expression","allTagsPath":"/gsoc/docs/tags","count":5,"items":[{"id":"2024/spdx-expression/updates/2024-05-28","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-05-28"},{"id":"2024/spdx-expression/updates/2024-06-04","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-04"},{"id":"2024/spdx-expression/updates/2024-06-11","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-11"},{"id":"2024/spdx-expression/updates/2024-06-18","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-18"},{"id":"2024/spdx-expression/updates/2024-06-25","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-25"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/38b01e93.6b631f40.js b/assets/js/38b01e93.6b631f40.js new file mode 100644 index 0000000000..2f42197dd1 --- /dev/null +++ b/assets/js/38b01e93.6b631f40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6245],{37178:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>d,default:()=>a,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var n=i(85893),t=i(11151);const o={title:"Week 4",author:"Divij Sharma",tags:["gsoc24","rest"]},d="Week 4 meeting and activities",c={id:"2024/rest/updates/Divij/2024-06-18",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-06-18.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-06-18",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-06-18.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 4",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-11"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-25"}},l={},r=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:2}];function h(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-4-meeting-and-activities",children:"Week 4 meeting and activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 18,2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussion",children:"Discussion"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Gave updates and demo on previous week's work."}),"\n",(0,n.jsx)(s.li,{children:"Discussed on the endpoint requirements for the One Shot Analysis and User Copyright Findings."}),"\n",(0,n.jsx)(s.li,{children:"Resolved some queries regarding the architecture of APIs."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"One Shot Analysis"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Exposed 3 new endpoints to enable One Shot Analysis in the REST API:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/oneshot/nomos"})," to run a Nomos scan on the uploaded file."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/oneshot/monk"})," to run a Monk scan on the uploaded file."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/oneshot/ceu"})," to run Copyright, Email and URL scan on the uploaded file."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["All of these endpoints accept a file binary and return the scan results in the following format:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Data Type"})," : What is the scan returning (Nomos, Monk, CEU). Can take values like ",(0,n.jsx)(s.code,{children:"license"})," and ",(0,n.jsx)(s.code,{children:"copyright"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Highlight"})," : The highlighted text in the scan results based on the data type (license, copyright, emails, URLs etc)."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"Decided on not returning the scanned file in the response as it increases unnecessary load on the server. It can always be accessed from the frontend."}),"\n",(0,n.jsxs)(s.li,{children:["Uplink PR: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2768",children:"feat(api): Added OneShot analysis endpoints for license & copyright"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"User Copyright Findings"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Exposed 5 new endpoints to enable User Copyright operations in the REST API:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights"})," to retrieve user copyright findings."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights/{hash}"})," to deactivate user copyright findings."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights/{hash}"})," to restore deactivated user copyright findings."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights/{hash}"})," to update user copyright findings."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/totalusercopyrights"})," to get the count of user copyright findings."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Uplink PR: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2717",children:"feat(api): New endpoints to get/delete/restore/update user copyright findings"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"OAuth 2.0 Authorization Code Flow"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Created the complete OAuth 2.0 Authorization Code Flow for the new UI."}),"\n",(0,n.jsxs)(s.li,{children:["Exposed the following endpoints to enable the mechanism:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/oauth/login"})," to get the authorization redirect URL from the server."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"/oauth/callback"})," to exchange the authorization code for an access token."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Below is how the flow works:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Frontend will hit the ",(0,n.jsx)(s.code,{children:"/oauth/login"})," endpoint to get the authorization URL and will be redirected to the authorization URL for the user to log in."]}),"\n",(0,n.jsx)(s.li,{children:"User will log in and authorize the client application, and they will be redirected back to the frontend with an authorization code and a state (to prevent CSRF attacks)."}),"\n",(0,n.jsxs)(s.li,{children:["Frontend will hit the ",(0,n.jsx)(s.code,{children:"/oauth/callback"})," endpoint with the authorization code and state to get the access token. The access token will be stored in the frontend and will be used to access the FOSSology API.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"The authorization code will be exchanged for an access token by the FOSSology server using the configs."}),"\n",(0,n.jsxs)(s.li,{children:["This token will be decoded, and the user will be authenticated if they have the same ",(0,n.jsx)(s.code,{children:"client id"})," added in their active clients."]}),"\n",(0,n.jsx)(s.li,{children:"The drawback with this is the the user needs to know the client id to access the API."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Made a client side application ",(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma/OAuthFossy",children:"OAuthFossy"})," to test the flow."]}),"\n",(0,n.jsxs)(s.li,{children:["Uplink PR: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2761",children:"feat(oauth): Added Authorization Code Grant OAuth functionality"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"One Shot Analysis"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["POST ",(0,n.jsx)(s.code,{children:"/uploads/oneshot/nomos"})," to run a Nomos scan on the uploaded file.\n",(0,n.jsx)(s.img,{alt:"Nomos",src:i(50507).Z+"",width:"2214",height:"1221"})]}),"\n",(0,n.jsxs)(s.li,{children:["POST ",(0,n.jsx)(s.code,{children:"/uploads/oneshot/monk"})," to run a Monk scan on the uploaded file.\n",(0,n.jsx)(s.img,{alt:"Monk",src:i(38901).Z+"",width:"2214",height:"1221"})]}),"\n",(0,n.jsxs)(s.li,{children:["POST ",(0,n.jsx)(s.code,{children:"/uploads/oneshot/ceu"})," to run Copyright, Email and URL scan on the uploaded file.\n",(0,n.jsx)(s.img,{alt:"CEU",src:i(67935).Z+"",width:"2214",height:"1221"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"User Copyright Findings"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["GET ",(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights"})," to retrieve user copyright findings.\n",(0,n.jsx)(s.img,{alt:"get",src:i(98111).Z+"",width:"1680",height:"969"})]}),"\n",(0,n.jsxs)(s.li,{children:["DELETE ",(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights/{hash}"})," to deactivate user copyright findings.\n",(0,n.jsx)(s.img,{alt:"delete",src:i(27821).Z+"",width:"1645",height:"696"})]}),"\n",(0,n.jsxs)(s.li,{children:["PATCH ",(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights/{hash}"})," to restore deactivated user copyright findings.\n",(0,n.jsx)(s.img,{alt:"patch",src:i(95991).Z+"",width:"1645",height:"696"})]}),"\n",(0,n.jsxs)(s.li,{children:["PUT ",(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/user-copyrights/{hash}"})," to update user copyright findings.\n",(0,n.jsx)(s.img,{alt:"put",src:i(3610).Z+"",width:"1687",height:"895"})]}),"\n",(0,n.jsxs)(s.li,{children:["GET ",(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/totalusercopyrights"})," to get the count of user copyright findings.\n",(0,n.jsx)(s.img,{alt:"count",src:i(78821).Z+"",width:"1920",height:"723"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"OAuth 2.0 Authorization Code Flow"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["GET ",(0,n.jsx)(s.code,{children:"/oauth/login"})," to get the authorization redirect URL from the server.\n",(0,n.jsx)(s.img,{alt:"login",src:i(74529).Z+"",width:"1226",height:"741"})]}),"\n",(0,n.jsxs)(s.li,{children:["POST ",(0,n.jsx)(s.code,{children:"/oauth/callback"})," to exchange the authorization code for an access token.\n",(0,n.jsx)(s.img,{alt:"callback",src:i(35912).Z+"",width:"1019",height:"1110"})]}),"\n"]}),"\n"]}),"\n"]})]})}function a(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},78821:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/usercopyrightcount-99c1ad4083ce2b66e7b5ef4ecbf1a016.png"},27821:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/usercopyrightdelete-53c2b1e806661b5f9d8ef1941e52a061.png"},98111:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/usercopyrightget-951c96d7dbec857faffb2f0d9a043567.png"},95991:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/usercopyrightpatch-03e4fcc592ed2e5250d9ea88c2123c7e.png"},3610:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/usercopyrightput-8948adb4b590a525e560a3069e307913.png"},35912:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/callback-2237ca4dc507503de88da7cc5df3cdc1.png"},74529:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/login-b36bdae1269561fc682f4743e277cd0e.png"},67935:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/ceu-053339097b9a40d365624876f5a00bdb.png"},38901:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/monk-0194a27bc909a169339494b214dc6d92.png"},50507:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/nomos-4c03dd5dd145ec129f4bd37e709c6294.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>c,a:()=>d});var n=i(67294);const t={},o=n.createContext(t);function d(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/38e13263.850ba657.js b/assets/js/38e13263.850ba657.js new file mode 100644 index 0000000000..f7677a046e --- /dev/null +++ b/assets/js/38e13263.850ba657.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4539],{15731:(A,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>h,frontMatter:()=>d,metadata:()=>a,toc:()=>r});var i=t(85893),s=t(11151);const d={title:"Week 10",author:"Shruti Agarwal"},n=void 0,a={id:"2021/ui/updates/shruti/2021-08-17",title:"Week 10",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-08-17.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-08-17",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-08-17.md",tags:[],version:"current",frontMatter:{title:"Week 10",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 9",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-10"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-15"}},l={},r=[{value:"Screenshots",id:"screenshots",level:2},{value:"Schedule Analysis Api",id:"schedule-analysis-api",level:3},{value:"Footer",id:"footer",level:3},{value:"Browse",id:"browse",level:3},{value:"Sticky Header",id:"sticky-header",level:3},{value:"Upload Summary",id:"upload-summary",level:3},{value:"Upload License",id:"upload-license",level:3},{value:"Fix Textarea",id:"fix-textarea",level:3},{value:"License Textarea",id:"license-textarea",level:3},{value:"Snackbar",id:"snackbar",level:3},{value:"Search API (conditional checks)",id:"search-api-conditional-checks",level:3},{value:"Edit Upload API",id:"edit-upload-api",level:3},{value:"Contributions",id:"contributions",level:2}];function c(A){const e={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,s.a)(),...A.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Moved the scheduleAnalysis route in jobs object."}),"\n",(0,i.jsxs)(e.li,{children:["Shifted the scheduleAnalysis function in ",(0,i.jsx)(e.code,{children:"api/jobs"})," and ",(0,i.jsx)(e.code,{children:"services/jobs"}),"."]}),"\n",(0,i.jsx)(e.li,{children:"Fixed all the uploads such as vcs, url and file and scheduleAgents in jobs."}),"\n",(0,i.jsx)(e.li,{children:"Fixed the footer text alignment."}),"\n",(0,i.jsx)(e.li,{children:"Fixed the browse headings size."}),"\n",(0,i.jsx)(e.li,{children:"Made the header sticky on the top when we scroll down the page."}),"\n",(0,i.jsx)(e.li,{children:"Added the license browser page."}),"\n",(0,i.jsx)(e.li,{children:"Added the api endpoints for summary and license of the uploads."}),"\n",(0,i.jsx)(e.li,{children:"Integrated the api for uploads summary and upload license api."}),"\n",(0,i.jsxs)(e.li,{children:["Since, upload license api has problem of pagination, improper file paths, and it also requires the agent as a header which currently no api is returning, so hard coded the agents for the time being i.e ",(0,i.jsx)(e.code,{children:"ojo"}),", ",(0,i.jsx)(e.code,{children:"nomos"})," and ",(0,i.jsx)(e.code,{children:"monk"}),"."]}),"\n",(0,i.jsx)(e.li,{children:"The font inside textareas are weirdly bold and their sizes are inconsistent at different places, so fixed the textareas in all the pages."}),"\n",(0,i.jsx)(e.li,{children:"Fixed the text-area of license text to monospace font because maximum licenses are optimized for text files of fixed width and thus formatted like that."}),"\n",(0,i.jsx)(e.li,{children:"Hide the Snackbar after couple of seconds which improves the user experience."}),"\n",(0,i.jsxs)(e.li,{children:["Added the conditions on search headers.","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Created the variables for pageParam, pageLimt."}),"\n",(0,i.jsx)(e.li,{children:"Added the conditions on pages, limit and totalPages."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["Added the ",(0,i.jsx)(e.code,{children:"updatedUpload"})," function in ",(0,i.jsx)(e.code,{children:"UpdateController.php"}),"."]}),"\n",(0,i.jsxs)(e.li,{children:["Added the patch request for ",(0,i.jsx)(e.code,{children:"/uploads"}),"."]}),"\n",(0,i.jsxs)(e.li,{children:["Added the function call in ",(0,i.jsx)(e.code,{children:"RestAuthMiddleware.php"})]}),"\n",(0,i.jsxs)(e.li,{children:["Updated the ",(0,i.jsx)(e.code,{children:"openapi.yaml"})," with upload patch request."]}),"\n",(0,i.jsxs)(e.li,{children:["Added the detailed explanation of ",(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/wiki/Folder-Structure",children:"folder structure"}),"."]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsx)(e.h3,{id:"schedule-analysis-api",children:"Schedule Analysis Api"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"schedule-analysis-api",src:t(29194).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(e.h3,{id:"footer",children:"Footer"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"fixed-footer",src:t(36483).Z+"",width:"1716",height:"77"})}),"\n",(0,i.jsx)(e.h3,{id:"browse",children:"Browse"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"browse-headings",src:t(69772).Z+"",width:"1574",height:"376"})}),"\n",(0,i.jsx)(e.h3,{id:"sticky-header",children:"Sticky Header"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"sticky-header",src:t(68789).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(e.h3,{id:"upload-summary",children:"Upload Summary"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"upload-summary",src:t(67047).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(e.h3,{id:"upload-license",children:"Upload License"}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.img,{alt:"upload-license",src:t(89236).Z+"",width:"1920",height:"1080"}),"\n",(0,i.jsx)(e.img,{alt:"upload-license-table",src:t(29626).Z+"",width:"1920",height:"1080"})]}),"\n",(0,i.jsx)(e.h3,{id:"fix-textarea",children:"Fix Textarea"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"fix-textarea",src:t(50847).Z+"",width:"1159",height:"115"})}),"\n",(0,i.jsx)(e.h3,{id:"license-textarea",children:"License Textarea"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"license-textarea",src:t(23326).Z+"",width:"393",height:"135"})}),"\n",(0,i.jsx)(e.h3,{id:"snackbar",children:"Snackbar"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"fixed-snackbar",src:t(8772).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(e.h3,{id:"search-api-conditional-checks",children:"Search API (conditional checks)"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:"search-api-conditional-check",src:t(45431).Z+"",width:"778",height:"610"})}),"\n",(0,i.jsx)(e.h3,{id:"edit-upload-api",children:"Edit Upload API"}),"\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.img,{alt:"edit-upload-api-postman",src:t(72880).Z+"",width:"841",height:"605"}),"\n",(0,i.jsx)(e.img,{alt:"edit-upload-api-swagger",src:t(7284).Z+"",width:"933",height:"957"})]}),"\n",(0,i.jsx)(e.h2,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/145",children:"fix(jobs): fixed the jobs api of scheduleAnalysis"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/146/commits/d8d00dd7f737d9c278af205f3b62f6aef25fbb3a",children:"feat(license-browser): added the license browser page"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/146/commits/86312c231520d2ea5b34f5b7d77faeff2ad850b6",children:"fix(route): fixed the route of license browser"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/146/commits/08487f5a040a664a756830573d5dcdec35c21d5a",children:"feat(license): added the upload license"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/148/commits/92509bf7d0c1f4829ce3ff0a4d084573d4c48c08",children:"fix(ui): fixed the textareas in all the pages"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/148/commits/989a5f9e8767344fd15b1f2ec847aa74b46cda1c",children:"fix(style): fixed the styling of textarea"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/148/commits/2f0b1bf215b3af72c16b7ee912ba9f774a8a3a51",children:"fix(font): fixed the license textarea font"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/149",children:"feat(ui): added more pages and fixed the minor bugs"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/151",children:"fix(footer): fixed the footer alignment"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/153",children:"fix(header): made the header sticky"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/fossology/FOSSologyUI/pull/155",children:"fix(snackbar): fixed the removal of snackbar"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/13",children:"feat(rest): added the conditions on search header"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/15",children:"feat(rest): added the editUploads api"})}),"\n"]})]})}function h(A={}){const{wrapper:e}={...(0,s.a)(),...A.components};return e?(0,i.jsx)(e,{...A,children:(0,i.jsx)(c,{...A})}):c(A)}},72880:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/editUploadPostman-47adc2d9cd76f77810aa2d5faed9a8c8.png"},7284:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/editUploadSwagger-98725f506c4cff98f760f67a01d32ad1.png"},45431:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/searchApiChecks-7865be3a7d5754720cc80a9617fd1bcb.png"},69772:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/browseHeadings-5657c30548f2b8a9c2ddaa54a42cc484.png"},89236:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/uploadLicense-f7591e8e398d329ed22587f193340d99.png"},29626:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/uploadLicenseTable-e91ca0b20c85a561f1786bd3ceb2a71f.png"},67047:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/uploadSummary-39f493df4789c63bc70e162de2745677.png"},50847:(A,e,t)=>{t.d(e,{Z:()=>i});const i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABIcAAABzCAYAAAACPWKHAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAxdEVYdENyZWF0aW9uIFRpbWUAU2F0dXJkYXkgMDcgQXVndXN0IDIwMjEgMDM6MzM6MTQgQU1EFKAvAAAeuklEQVR4nO3deZyN5f/H8feZMXPGMot9ieGMZcaYzZota8he/MiSkBBa8C1bSIWiTfX9krVQGoUkRZa0MJJ9jRExUoxlFtuc2a7fH2M2sxiMtvN6Ph7zh+vc93V/7utcd4/HeXdf920xxhgBAAAAAADAITn91QUAAAAAAADgr0M4BAAAAAAA4MAIhwAAAAAAABwY4RAAAAAAAIADyzEcStQWvVi/vOrWnKPDGT+I2qIPJvRRhyZBqm7zkY9vsJp0fkIvf7xXZ26zCKMY/b7tc313JCH9+PErNLBSRVUr10QT9t1mx3coQZv1YlAFBTj11vxzUvL599S9ciW1G7pDcTfZ9+hr9eXj45PtX2p/t8IkntK+tet0IOa2T+dPFa+NGlfVWwFOvbXo8l9bS5IitLhTSfn4+Kjn27c+S+0XDuqb5XvS5ved9ndXRW3RnMHNdK+fTX7eHfROePabZXfN6djLauNty3rN3+DoSyHy8fFRw/afKfo2yzSy6/Bno9Xr/rryre6jei1DdeLXyWrjbUu7Pm68/gAAAAAAd0eBnD44t3S6Qs8UUb0x3eR3vS3+wDvq3fNN7bziJM8KTXV/txIqGHtKu7d+rfefX6dvP56qWct6qJrrrRWx9bkgPbLcWfdPbKWmvi6SJOPqJg8vD7mbkirzd3mfWoku6t3oZY1Z+areH7tMQyrcfBePgE7qEFQkU1sB1VCwNe+HTdR+vduyjebtaKgnD7dWgOct1g1ZvcrJo4hVhQve2mRKPv+e+gS9ql/cBul/XUNU5g77u5uMYvTtxD56db1UsFQDNW3vL2+37LfN7prLq+QyZVWyiFFhLw/l0P3Naz09Tc8884lOqoZaDx2qhgH3ysscldXVVS7lrbfdLwAAAADg1mUbDiVqv0JnbpfT5eZq0rXo9bYteuXx6dodW0INRi3V/4b5yuv69slxWzTtoT6ae2Ccxr9QS5+8Uu2WirBcy3oDk4va6Y097W7tbO4yJ5XSfV1qSz/s0tpZ4Roy9ebn6VN9hCZPrnhHxzWyyx5nuaM+HJmzvNV90V51/5v2l1+SFKFtP9nlcsVfvecs0bignLfN7prLK99Ba7Rt0G3vLkkye48qwtmiksEj9dqYFtfDoAla9cuEtG0SctoZAAAAAJCvsv2F6PzbN/r2mFWFKjRVo5IpbfY1sxV61lVF7xmhKRmCIUlycmuksa/3lHeSUfhH8/VdgpSgFXrSu6JC/F7Qlz/+TyPaNVKIr59qNuiqEW9tT1mic30ZS++vUoKPDS8FyMfHRx2eCc92SUmyIvXTByPUq1Wgqtt8VD2gibr1e11fh6f/jExdztV70U/6bHwftbrXVz6+wWrefrQ+z7Bd2rKWVoHy8/NTgyb9NWnTMo0LqZDrUqiidVqqWoLRb6u+0J7bHfVUu55U/Uo+atD/M+0NHa7ejQNVvZKfQpr30uQvLkqSokI7ydenu+acs+pa6V16ramPqlQM0eg117+Xkyv1+hMPqEmwr/yr3qtWj0zUp/sS0sbr044lVL1YR70Z9oWm9miuYD8fdZ1+MttyTOIpbXxtgDrUq6bqvsFq02WilqyfpM7lc19qZBSjvaHD08ayfusnNHVTlOzZzK7Tm9/V8K4pc6F6QBM9Ouxj7YhN/zw+PFQT+7dVvZCU82nSpr9Gv/dT2pIuoxgd/my0+rdvrGA/H/kF1VPH3hO1eMeFTHNu9bapGtK+jmqUv1fjvk/U2kFlVdnmp2ErUvrJOE/WjO+m1kHp47f0aIKM7Fo7qKyq1JuuHW5OitY89fbxUaD7Y/rkSnyW/lK/i8lDHlC9EJt8fIPVoEl/TXg/fbnljdfE8K6NUs6hTisNfWt7rku0bjb3o0I7qZpPZ805Z1VC4WOa96CPapV+QZtu7CiXay5VgtslXdj6Xw1pX0d+fpnnY+qxfHx8dP+wHWm1bX9vqLreFyQ/Pz8F3ddK3fq9rpW/ZL2IUq/rqk9ukd0ind73uPxvWHZZ03WM1uQyDvs+GKFe99eVn1/Kf0+Gz/ghbYyTz7+n7uUqqXqxjjkuqQMAAAAAZJbtnUNXd2xQuItFZX1rqNL1tl937JPdIlVr1iCtLaP4Gi3U0HWxPrtwSHt/lRpU85SH1eiSfalGPVFDrZ8eqZe9orVl/pv69J0++vXUp/p4SjsNmlRcm5e8os+Pu6h8s6Hq17iY3IOKS4rM1L9RjHaPf0A9lkSrYKn6ajegugqeDtPqtTM18ptDmrB5gXp4S+6lPCVFatuEQTrX4hH1HdVZV354VzM+/1TT+vnLN6yv/CT98fmj6jFyu66qshp0baoqzuH6fvhzOnbJRYVyGbCE8gGqUTBJxw7t0sFzUkjJ3Af4192vavz44pnanO7ppJFD6snLs7Q8k41++Xashp3orB4jX1CX42v17rsbtbTXs7IdX6BuNR/T2HHrteylr3TM4qmAXkPUuUoR2fwlExmqYe1G6/vkQLXpO0b1ykVo09z5eqnNOcXvm6VeJT3lXtZFdq+Dmtlzgio2aa2ujzRSGT/3LHUaxWjrmDYauCJOBUvV1/3d/OV5YYumDzqiWFeLimfZI92ZpY+q79j9WccyoUCmsby8aaB699ug894P6P/G3CfvqG8U+t44Pb07XgvC+qqKNmpS9+e0LMZPzfqNUM1Cp3R4zyZtHLtEjXvXUwd3uw689pC6zzyhJDd/NevYXKXjI7R7a6gWvt9Jneukz7nnBpRSSNMH1SvYKCCbdYmp82TXlIE61aiPBk59VE7hSzX37cV6qeVvSty5QM0efUnPlftCsxce0LWrldX8xV5qoPIKLGx0Y7yWfO4DDWg/ST9e8lK11o+oQ6VrOrL2cy15aav2HFqsT1+rKyel1/fsyBp68PGRev7hA1r12gKtf/NJFfbfotfaZL0k8zL3u9wwT+r1GK7WIf6qfmNf5XK75lLEXlykkc9WUFDzB/V/FTdq9Zof0+Zj72zme8TCR/XotHB5+XdTv96VlHB8t35aM1eLV3TTg6MyL6l0VjW1f26SCoXN1ayvI+VatpOefjxIbkZSdJgWvb1ROT1Wy8iuXZMfVJ/5Z+RZ6xE995ivErct0nszBupExKcKfTNQt7iiFQAAAAAgSSYb+18KNjabzXQaeyStbcuz3sZms5keM/7IbhcTb7abV+qVM1XL3mcm/WhMvPnBTAosbyp7B5shoZfTtkuMXWIer+htAor0N5/EprSFDatkbDabGfj+lQz9pexfw9LLzIs0JinyfdPNp6IJ8HnGrLq+X7KJM+HT7zU2m820HLrdGGPMxY87GpvNZuo0+MD8mtbXl2ZktQomUP3NwkvGJJh95s0mZU3VsveZkevSa7Pv/I9p6l3J1LD0MgsvZa3BGGMSTLiZ16h02nnmJLWu7P7SavvlJdO6QiUTUKS/+TAy9Zyizco+5Uxl72Dz9JrMY+tfqKuZGZF+7jue9zWVvYPNYwsvZDmHLtNOmGQTZ9YMLGNsNptp/fBmE5VzuSbp3CzTrWxFE1DmCbM8rZY4Ez6tWUrNIbPNz9nsl/F7zziWsWFPZhrLBBNu3mxS1viVTT8HY4yJeLVZ2lgmn5phOt1TKdN3Z4wxl87EGGOMSYxdYB6xVTT+xXuZ2UcybBB/1pyLyjznMo5J6jj4VPI1Q5entKXOk1o1Xje7M2y3/6UGxmazmfZPH8k0LjVtU0xYDv0lmzizc6Sfsdlspsu0E+ljGrPCDPXzNv7FU+ZPan1Vytczz65NSNvuxHtNjM1mM21H7Mv+u8nj3M9unuQku2sudT76F+pq3r4+vknmrPmkQ/FM8zF17FKP+82TJbOck4k/a87G5Xz8Kyu6GZvNZpo/vDmtLSF+ielTuqIJcRltvjJZr7/U7z84ZErad5Zkzpql3cqboKLPmJUJKdfPb0d/MceOnsp1vgMAAAAA0mW7rCw2NkqS5FzaI63NwyPl2UPxx2Oz20VGMYq96CznOE8VLZrebj1fRYENC6c3uDdSk6CrivM6qL078x5iOe3bov3JTnIPaa1W1298sciqqu0byTvJKGb3QZ3IsL1nzRoZ7nAqpZJeSUoqFKsrUZISDujQz64qfL6h7m+VobZabdXQNSnXOiyyyrVYkpJdYnX1Yq6bSpJCum3S8ePHM/1tD+ub6e4r14o1VLtkav+e8vBMkHGKU1JUzrUkKUJ7fopSsnOsNk1pruDgYAUHB6turxWKcLbo972/pNdsXFW1c/1MSwFv5LR3p/ZbneTesKPapdViVZWuDeWdlPNDly0JR3XopEuWsbQ2eDDzWCbs0KGfXWV326UZHYPT6u3w/kkluv2m0z9fVVL5dupWK0kXzryoNo06qP+wyVqwcpsueqXMQ+f9W7TfOKlwcEd1yvi4J5dSKpHh5Kznq6hh22K5nG26wvfeq5DUc5FVAS1qycNIkQd25fnte0mK0O79F+VypbJqP5D+fCmLRwu1Cbgke+GD2pdhrltPV5FfrfQ7hEqWKi1JuhyT/T0ztzr375SbrYGaXB9fJ5VSiUpOuc7Hug89rHucIrX86dpq2eMJTZyyROt+LqRSt/DQ9bxw/ilMO4yTLkUvUt/r86dmcCu9sN1F8Tqmk8dTrp97qlSWT5Xyuc53AAAAAEC6bJeVuSUXkmSXxW5Pa7PVCZLHgs2K+P5bHVa1tDeYpTKHNiks3lkFXWop2Jb7QS3X8vHhyubW32tkiZPsTpIpY/4Wb0Vycsm6zEuS7Nm2ZuZypbK6rVyoZ6rc8MYpV09J6aGOsTrfdn1WI13J7fPkvI+le3QnTdg8Xk1dMgdOVvdCKqCqemT5DgV+vUqrfvhee8I+0eQ1CzRjfDe9+s00tbtmkV266dIhy7W8pxIFrtwwFy1xed43L0zB5HztL3Pnd2f2Orm4Z/td5jQfi7R4V6u+66IvP9mg7/bs1teLn9eSOdMVMmqplg3zzff6SgRN0rL5LVOWol1nMVYVKZXvhwIAAAAAh5DtnUPuZVLelW4/nf5z0Np2sB4qHa+oizM19bUjmR6emxy3RW/+Z4kinC2q8lhvNc2QU8SVOqCwNX+k/dty7ht9fayQXK9VUfUa1/u2pvwUvRST/V1JkpQcXFuB9mRd2rNO6y+ltx/9MkwRzpYb7hTKXbJ7VflXTNDVxK1asz0x/YNdaxQWn3uIYhSj8zEuco4rKc978njAO2SRVVY3owTPSEX+ntLmLG9VDyquxEKnFL4jXiVLlkz/c7XKxfPWnr5ifANULcFkGd+IDZt1tEAuYZ5LgCrbEnTNvksbDqSPpeuxMO20O2fazr96vOJcDmr/aa9M9VqtVnm4pYzthQteCu7wuCZMW6RlP2zXqv5ldOXK5/pqY1LaHLiy9wutPZWhhoRInc/tac65uLhnnb67/pxyI7vCVuxWrEUqXaWGykgyVqvckqWk6EjF5vD6rIzfxZ7vTqS1J8Vv1LrtnrJeqaGg2rdXn5S/cz9VXq65vLJfOqfkSs3Vc9QUvbfkK4Vtn6rmlij9Omv1nT+0PYPk4NoKdErW1QM/6og1ff6UKOkhq9UqN6XModO/HNPxX37L9QHfAAAAAIB02d45VC6gmqwmUjEnf1OcqslNUgE10vAFT+jAw/O0eVZbNV/dVI3vLaGCsae0e+s2HbtkkS1gqia/mPn17sYSrx+nPayHw1urdtFo7ftslcLkpKo9h6j99eVLvvfXlceKzdo5o48ePlZTQfeN0KhumWuylOipZwbMVZ+PVmlsO7u2drKp4OkwfbnypAomN9MjY+rk+aRdVEc9hgZq4aRwrXz0QUV3aSqfIuHa8vF6RTg75fpAaqNTOvari9zOVVHVm9whJUnHf35L48dnfihvAdVQh1E9ldeKnVVNTet46t1Tvyl0RFf9UctfrR5/WQ+NHqUGaydp2/SH9UB4azX3dtWFYwe1bfNx1XsjTNPb5PEAkkz5nhrS9h0N3bhKozvEaGuH6tfH91QOEWLquQTq0XGNFTp8u5b16qukEe1V2+mo1s79UEcLWNLGsoAC9eiYDlo6ZIM+6tdWfzzYWlUKxuj0oTD9+EMlPb1rgXpHTlfXjutVrEUbBdf2UeVCkdryXaSc7eVU0sdZlhI9NbzXXD2yYqumdOyqnR1qqqRzhPZu+lbXApYodOat35EWG79Yw9tHqm0rm5yOb9LqtVGyWhqo6/jAlHFxr6OavvHafGqVXmgfp3XV6qv7jF6Z+rDIqoZPp38XDx3pqPqVrunw15/o+7iCCuo+XF1v8uDy3OTn3E+V3TX3fK1bry1ZkVo7tJEmRTRWy/v9Vb1yOSXuXartFmd5VvRRmVvvMkeWEj01usdidft4lUa0iFWbTtVV2n5Wh/Z8qyMXn9KSsL7yPv+xRjR5VfvjAjXkxy/0dLWb9wsAAAAAji7bn/0F67RIuUNj34+ZXl/u6T9eH65foBe6NNY9Zqc2fLpcyzb9rITSbdR7wmf6aFUPVbvhhpVCJxpoyIK+KvvrGi1ZtFq7kqupbd+5mv1u47RnghRs+7r+O7SBKrlHaMcXq3TweHyWmizyVIOX1yh0YmcFm836bOZ7WrLhoio0G6qpG2arX4VbO/GKfZcq9JVOCiwRoe+Xz9fnaxIVOO119fDI4faQ61yO7dRROcm1fn3VzX41WCaxB1ZpyZIlmf6WTV2tvXlZM3adRVbVnPyhJrWsKo+Lu7RxzXc6YJecSvbT/C9naHC7srr6/SeaPW+Zvg1PUJW2I/RQSLa5X46cVEqtZ3+uN3rX1j1xYQqd95HWn/bVoLmPKjA+52cOSVLZznMUOrWT6njs0+cvvqQpHxyR57OTsoxl8bZztPzDEergd1Xbls/S7IXrtSuqjJr9p7/u85CMraeeeSxIlpNrteSdl/XCpPe1q8B96vPuIo2+N2UO1H99jRaOfkBB7ke14aMFWvHlr4qv0EM9H7OpoHKvMzvl2r6hKU0uafuy+Vr+ze/yqNNNzy9Nn08FFKghi99Ut5pFFXN0nb79ao9+zy6D8k75Lvq1LKbfN8zX7Lmr9XNCXXWduFSzZta9o+ff5Pfcl/J2zeW1tjqDR6mVzxn9tGyepoyfoBlfRsu35US9suCh/A2H5KmaUz7TyomdFei5X18umKUFK3/SuUKN9NB/muTrsQAAAADAkViMMVl+UScpQsu7N9ILG0Ju+/++J2izpgb11KcHmmjE2Y804A7unPg7ObOwjRpNOqmGYzdp8aCyf3U5uE1RoZ1Ue9wB+bT9RBv+d+t33gAAAAAA8G+R7Z1DzvJWuyEPyOp5UN+tPPln1/S3laQIrV++S0ViHlD3ngRDAAAAAADgny/Hp8m4NR+lcS2rynJoV76+Jvsf7dIW7bbXVaPpw9UxD0vKAAAAAAAA/u6yXVYGAAAAAAAAx5DLe6gAAAAAAADwb0c4BAAAAAAA4MCyfd95QmKiLkTFKir6kuLst/eKawAAAAAAAPz13KyuKurlruJFPeRSIGsUlOWZQwkJiToe8Yc83AupqKe73Kyuf1qxAAAAAAAAyF9x9nhFxVxS7KWr8qlYNktAlCUc+iPygiSpbKnif16VAAAAAAAAuKvOnLsoY0yWzCfLM4eiYy7Ly6PIn1YYAAAAAAAA7j4vjyKKjrmcpT1LOBRnj1dBN+ufUhQAAAAAAAD+HG5W12yfLc3bygAAAAAAABwY4RAAAAAAAIADIxwCAAAAAABwYIRDAAAAAAAADoxwCAAAAAAAwIERDgEAAAAAADgwwiEAAAAAAAAHRjgEAAAAAADgwAiHAAAAAAAAHFj+hUPXftP+n3+XPd86TGF0WSd+OqrfMx7quxfVsf3Tmnkwnw8GAAAAAADgYPItHPpl0QRN/d/xfA+HLDvf0Zjn1+pwhraCVTpq6NCealopnw8GAAAAAADgYAr81QXclntqqe09f3URAAAAAAAA/3wWY4zJ2LD7wFHVDKia5w7M2eUaPuxTHU1Mb7PG19QTX4xWG2fJfnGbQucs17f7/lCUvbBK+zdSj4E91dw7JZcySb9py9x5+vD7Yzp1xaLCJSqqVqtu6tvDqq8GTNDyC+k3N1mSC6vl2PkaWext9R9xSV2Wj1fHglLizql6ZEpZDX21lLYu+l7HIqMVHVdEVev104gnA1Uitda4I1o3+2OFbjumKHthlaneTL0ftmrFuM3yn/GGBla+/YEEAAAAAAD4u8su97njO4cspbvq7WVd9cvs/pqwf4Bm/7exPK5/lpzwo959ZrZO1XpKkxbWUkVFKfzLt/TKmPlymzdYDQpJxxZO1oyf6mnEtFGqWyxeZ0/u0epl23X06gANmP+JBuycqh5j3DVo/VNqkXrQI5lrKOBSRCZxk+YsbqdnR05TSDHJfnatXn3qLc3wm6nJ97spSae05uWpev9iUw2a+KQaehfQ2cMrNPPddYpILCr/Ox0IAAAAAACAf6C7+rayM18u1XanBzRkRC1VdJHkUlSVHxyoTsW3an1YnIziFXkqWtaKIapToZBcC3upgn8zDZk4QE0K3cKBrEZuiV66t18PhRRLaXIt3UKtalzVr9uPSpKcj6zQsv1l1XXsY2rjV0LuhbxUpdZjGtu9RC4dAwAAAAAA/LvdtWcOGV3Wib1/6PLlTXpz2LZMn12NclKFi1dlUTEF9WilEi/8V09OqqeGNYMVGOCvwMqest7i8ZxUSpXKpf/bIle5uBslnUuQJJ0/dlrXCgUpwDvzfiWr11AZl323cYYAAAAAAAD/fHf1gdR2i1QsYJjmvBiY4zZFfAdoxgcttCvskHYc3KSFK2fqstfD+s/0DgpwuZvVAQAAAAAAIP+WlRmrkp3jFX/9nxYVka1yScUf2aub3ZdjcbOpdov2GvzUOM2YM0hVfw/Vsh+TrvfrIuOUIKfE3Pu4mRKV71Ghy+E6HJm5/dzPB3Um4c76BgAAAAAA+KfKt3CoZOUSSjoVpnUHflfk2WjFSvLu3F1B1rWaNWWj9p6K0aVr53RszzrNGv26lkdIyYrUuulTNWvDYZ25kiDFX9H5w+E6F1dMpYo5S5JMBR+VcwrXuq+P6WzkOV2Iz72OnCT5dlHX4JP67IUF+vbn8ym1hC3QGytjbnkJGwAAAAAAwL9Fvi0r82jxhIbtnaH5L47UsrhGGvnFU2pc5D49+5arQucs1/QxHyj6cvqr6jt7SxZ5KaRFBe3+9L96dvZ5RcW7qlC5qrpv2LMaUON6x6Xb6ImnjuqtDydpwPyiavfyOxp6G1U7q4LaTxinAnMWauHLIzQ93lXefq3U9+kHtPI/m5Xsml8jAQAAAAAA8M9hMcaYjA3Zve/+38ycnqcnBp5R2yXj9aDXX10NAAAAAADA3ZNd7nNXH0j9dxO962t9F1tZNYPLqWgRo4TfD2r1zM26WuNxNSYYAgAAAAAADsihwiEXD+nU6jlaOecPnb2aIFe3UvKv3UdjhjZWib+6OAAAAAAAgL+AQ4VDhau00ZMT2/zVZQAAAAAAAPxt5N+r7AEAAAAAAPCPQzgEAAAAAADgwAiHAAAAAAAAHBjhEAAAAAAAgAMjHAIAAAAAAHBghEMAAAAAAAAOjHAIAAAAAADAgREOAQAAAAAAODDCIQAAAAAAAAdGOAQAAAAAAODACIcAAAAAAAAcGOEQAAAAAACAAyMcAgAAAAAAcGCEQwAAAAAAAA6McAgAAAAAAMCBEQ4BAAAAAAA4MMIhAAAAAAAAB0Y4BAAAAAAA4MAIhwAAAAAAABwY4RAAAAAAAIADIxwCAAAAAABwYIRDAAAAAAAADoxwCAAAAAAAwIERDgEAAAAAADgwwiEAAAAAAAAHRjgEAAAAAADgwAiHAAAAAAAAHBjhEAAAAAAAgAMjHAIAAAAAAHBghEMAAAAAAAAOjHAIAAAAAADAgREOAQAAAAAAODDCIQAAAAAAAAdGOAQAAAAAAODACIcAAAAAAAAcGOEQAAAAAACAAyMcAgAAAAAAcGCEQwAAAAAAAA6McAgAAAAAAMCBEQ4BAAAAAAA4MMIhAAAAAAAAB0Y4BAAAAAAA4MAIhwAAAAAAABwY4RAAAAAAAIADIxwCAAAAAABwYIRDAAAAAAAADoxwCAAAAAAAwIERDgEAAAAAADgwwiEAAAAAAIB/ucGDB+f4GeEQAAAAAADAv9jgwYM1e/bsHD8nHAIAAAAAAPiXulkwJBEOAQAAAAAA/CvlJRiSCIcAAAAAAAD+dW4Mhm7pmUNuVlddi7PfncoAAAAAAABwV2UXDM2ePVtx9ni5WV2zbJ8lHPLyLKLo2Mt3t0oAAAAAAADku5yCIUmKjr0sL88iWfaxGGNMxoaEhEQdj/hDnh6F5eVRJNtECQAAAAAAAP8McfZ4RcdeVkzsFflULCuXAgUyfZ4lHJKkhMREnb8Yo+iYy4qzx/9pxQIAAAAAACB/uVld5eVZRCWKeWYJhqQcwiEAAAAAAAA4Bt5WBgAAAAAA4MAIhwAAAAAAABwY4RAAAAAAAIADIxwCAAAAAABwYIRDAAAAAAAADoxwCAAAAAAAwIH9P3G/DWD/NkvEAAAAAElFTkSuQmCC"},36483:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/fixedFooter-cb4f75754a6e4e7fe25b3c3b1ed98472.png"},23326:(A,e,t)=>{t.d(e,{Z:()=>i});const i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYkAAACHCAYAAADjoKV5AAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAxdEVYdENyZWF0aW9uIFRpbWUAVGh1cnNkYXkgMTIgQXVndXN0IDIwMjEgMDc6MDQ6MTYgUE0eBHcKAAAgAElEQVR4nO3dd1yVdf/H8dd14ByQwwZZCgKCCA7UXLhy5NbU2yxL0zRXmSaaaVrOtHLPcK/UNLfprZmjzMy9R27LLTJkyeHAuX5/oAzlGMvx6/48Hw8eeq5zXd9xcbje1zxfRVVVFSGEECIHmhfdACGEEC8vCQkhhBBmSUgIIYQwS0JCCCGEWRISQgghzJKQEEIIYZaEhBBCCLMkJIQQQphlWdACLoyvTuOIu9mmKaoOrYs3lcM68OHn71HDPW9l3r+wmOH9pvHTmRjslW58fXkI9Qra0JfRju4Ed9uBQTE/i2Vycd7aupvR5QtenZp6jZPbz6IJa0RZh4KXJ4T49ytwSDxiX/Z1WpS3TX+REsfNI7v4ZfMoLuyKYvrRAVTV5q4cI4eI6DiEjZFWuJZvRO2SpXEqrEa+bLxr0bJFEZIfhkTU0S38cSMNu1Kv8mopOwAsUt14xbHgVaVykukNGjPvUA0++lNCQgiRO4UWEv7B4Xz5ZYmM16lcYHGjWnxzagNrjwygarXclWNx7xBHrmmxt2zH6NXf0DiX4fL/UqnOjJveOePlkQHBvLEujYD6I5j2aYmnLJh3KgYMyU85ZBFCiBw8s2sSFrjh6mGJSRuHGp053fDXeib0akKd0CBCAqvRsOMwVp0womJgaw9PAqqO45C1hjjLVXwQ5E/t1jsBMHGXE4vCeee1KpQuXZqKYW3pN+U3bj8q+MhHVPf1J6zLOg4s/oAWVUsRqvmAtYCadIp1n79Lw2pBBAeFUr1RL8ZtukXyw0UvjK+Ov78/HZYcyJjPPyiUes0HseG8MVu/7h2cw6B36lO1Qvo8dRv14svlfxL78P0be6bTr21NKgSVJrhsHTr1/p5DcQVbl0/ru8l0iqUtS+Pv70+bDw9mtCP+jz7ULeFHGZ+uzJj1BkH+bzIn0ooH7kcY/6o/ASUqMGhLwdolhPj3K7QjidSka1y/bgGAqrnP9YNzmblPR5GUMGrVSp9HvbuC3s0GsdtUjsadB1PV6292zZ3PqMaRpJyIoG6nUQxy+pEpP5zClFSSeiPfoWpAaVQMHPmyNe/Ov41DpY4M7BpE6v4lzJrSnat/r2LFpHJYO7jjYFK58OsAOhytSJMWnahSuyTFOcX8t5vz9TEnQtv0Z2i1NC6smse8Hm9xZ/EWJjbUY+fmANxl/xc9iKzfkc6ftiLxt+lM2bCKb94LIWhvZ0qTvuF9o/0mbpjcKNf4TRp6xXJr7y/8ODaQFu+UJmBXdzq8t517Pk14Y3BtfGJ2smLWEPoeTWHBwzLyKjd9f2fpJI4068mPP37EwAbrmVrnJ8K7beRWcineWDqdHj4/Y2XpzupR/+WS4kDZdz6gVYAtfiGF9MsXQvx7qQV0flw11c/PL8ef8sFd1G9/TVBVVVVNarJ6aGiQWtInVO26OCpjecPhAeqrPr7qf765mj7ftSnq68V81UplJqhHH86TGrdA7ehXQg2tMCZjWpp6R13Zrrha3uljdb1RVdWLo9RG3r5qac+26uxzme2L39VRDfX1Uxt0/U198HCa0bBG/bC0j1qrzlr1lqqq0d+3VP38/NTKYYvUKw/nSVE3q/1Leavl6KIujldVo3pendfQTS3pE6r2+CGz/SY1WY28c181qufVSXU81dKebdVv/86s/++v66qBnrXVEfv+eV0e7l9a9fPzy1gXue67qqrJF6aq7fxLZKz7kj6h6rvTrmSUk6IeVL+q6qWG2GRvnxBCPE2hHUkUqzGcLzp5oioGog4uYfyckxQNbUTN6noA0vibYwdiMFno2TWmHqETHy5oiCfeQsFw/CKQ83l4iwN7OaRqSIldQufQlRnTU+K0wCX+ugykH8Rg4xxG1VKZy1797SRxCsTv7Ea1UKv0YFQMJBgscLx2liu0ydjDd6hYBt+MJd0o6phGmk0ciTGA1SH2HSuC/l4Yzdo4Z8ylYIWrmxWpxs2cOavDYHuEKS1DmfXoC9gN8aRaw42zSVDNJs/rNVd9LwVWAX2JmHmI5r32cFcDAY0mMq6Pr7lihRAiVwotJJx9wmjUKH3rrDasg/OVSvTePoIvZ1fnhywbK21iSdqtX8zHAY9dkdb98+02ruVHsHp+A6yzjIChqFbYugGX0l9rtHZY57Bs5d4bmNHZOds0RbXCFYj55+4BYMjFFRy72Nf5Ys/nvKrNPkyHlV3eAyKrp/ad9NNSN09e5/7Da9MPTl/nbgp46ApUrRDif9wzuXCt4ECDLs0oqqZwfsFyjgEW+BBc3oVUm2ucP5RC0aJFM390VmgdzG/NTKGvUE5jIunUPs5ZZS7nWtQeKyurHEPhEb/K5bFS4fauM6QVzbqsDmutfe47pS1LSAkjScWOsOO/iRmTVQzcuxuX/n5wCsna05y84Zitf1ZWVtg/rZFPkdu+R2/tTveZV0l1qMirZWy4dnskn32wJ+PCvoIVVtYqRoe73L2Zv7YIIf73FNqRxBNqdKa1+1rm39zAkt2fMqmOFdUHfUrY1hHsH/cWTc43op6PjqhLp9m/5zJVJ+5lfOOcm6O4vs2g9t/R7vuNhNePo/Hrwbgb7nDm2C+ci+7D8r2ds5wmyq5I40/5JHA3Y898RquWv9K8jhdK5EWO7/oFtcYm1kwtZWbJ7CwpR6chtVjR7yBbwpvy9k+NCH544fpQ9NvM/WMAnQa3YOUH21n2XlNutW5EQJH73Dizl32/+dL3yAI6FM37asxN3z0vTuOD3ruJNZWl69yVDCq3n3FN3mXe9o/4dPp6lvTxxYJSvFrZgenXrrMivC23KoXQsNto2lbIe5uEEP87ntktsFoq0/YNb9K0kRybtJtYQFP0PeZvnkLPZp4k7f6B2fNW88t5IwFNw2lTwXxeKThQccw61g9rRTmHk2xeEMGC9QeItKlJmwF18HhKOzSasnRdv4kJHargdnsni79dwJqdV6BcZ97q5pWnPnm2WsLa+d14rXQaZ3YsYPnK3Vy0qEyrPs3xBVyazmHN0nBalE5i/5oIZi/+mSMxHtQd0IXaeThoyUvf3e5v4bN2Ezia4k69MXP5rIolGuuaDF4yjLq2Mez/sjtDf05EwYqKXy5lRINA7KOPsGPLr5wy5K9NQoj/HYqqyhjXQgghciZf8CeEEMIsCQkhhBBmSUgIIYQwS0JCCCGEWRISQgghzJKQEEIIYZaEhBBCCLMkJIQQQpglISGEEMIsCQkhhBBmSUgIIYQwS0JCCCGEWRISQgghzCrweBLG1FSiYuKIiY0n2ZBSGG0SQgjxkijQV4UbU1O5/Nct7O1scHKww9pKxsoUQoh/kwKFxO3IaFRVxdPNpTDbJIQQ4iVRoGsSMbHxODnYFVZbhBBCvGQKFBLJhhQ5xSSEEP9icneTEEIIsyQkhBBCmCUhIYQQwiwJCSGEEGZJSAghhDBLQkIIIYRZEhJCCCHMejEhcXkeXV9vT7PW6T/NW3Xizfe/YMzcE9wsSLnnpvJekwFMv1Sw5pmI4ciPy9iwP65gBWUpb9vQtrQfsB9DoZT4z64fXMfCbZfIqQdG9jGx9Vv0XXr7ObXmBbkSQfemfZl8+vlVeXVZn4zPdYuWvRh/NPfLXlzQizbvLOTEs2ueEHlW4C/4K4iAeuF0qm1FStp9buxZx7LNY/krcigThpTDPj8FWnhTzPsBXtqCtcvEXfZv2MCR8mG0qpavlmSjoEXvVBxPjU2By8qtW7+tYNMpLXUblczfuhT54tt6NAsbGlHvrOHzwcdedHOEKLAXGhKOgaFUrmQNgKlKeRzufUjEnv+yP6kcDfOzPQ34D2PmFm4bC4OCLTU/mUrNF90Q8ezpHXHXg2q0RJfvb0UT4uXxQkMiKw1OlApxxXQ4lsh7gA+oJHB+2yJmrz7C5Tup4OBFldrv0KV7ebyyLHt1WR8+XBUJgGVKcRpOn0CfktnLv7k+nI9mefPu124cm7ub49eT0XmWoc3HfXk7uEj6TFci6Prxr9zWpLeInUNotjP9rSLOHZmwoAV+eeiTkX1MaDOZ31QFAPuS4SyeWA2rx+bL1s+7Sag2jnh6htCyV1+aB+atvmmtJ7MDBVCApfRuvRQAq4SydP3xc1oWyZzfZIhkz6xZzN99iRiDnoDaXejfr1q2dasmn2Pb7O9Zc+wSN6IVnHwq0KJbN9qHZj8+id3+KV0mudB1bn1uLVjO7uP3SFD1FKvcg5GfVcKV9NNuZ9YuZMHWU1y+k4rOtQSvNHuPD9rm/WgnL+ssNek4i0ctZPPJKFKKFKNah4/p39gz2+8h+uxavp29k+M372HUuFEytCHv9mxJBefs6/avN6YyraNH+vojhu1DuzEnLpwF02vlqQ8m7nJo/kwidlwmxqCnZPV2NCyi5HEtCPHsvTQhoZJC5J1YNKnu2Dz8a7u5ZRSDI6LwbdaFobVcSL34I3OWjWV43EhmDAjK+CN/dIivXFpCv1Hmr2oYrI6xblkz+gyewic2V1g3bgyrRq6hzIqOlAdUv3eZOPcNHugus/rjiRwOGcy4rt7pC1va4J7HPllSib6zZvCeZQx/jBvCD6k5z5d0eBbDp12kRNsejKzhgiY2kitHf+d6VBoEWuSpvp4LZ9AhNYWzEQOYeqUFw8c3xssEiqrFoUj2+e/8Npc1r7Si+yeteXBwJXM2zyQiKITRTdO/tNGknmPZ4JH8EBlC066f0NszhVs7VjJ32Ffcnzyanv7ZPz5GiyusGbuGUg27MKKLC7oHVzl4KH13WiWBE9OG8PkvWsq/3YOhwfYkXfqRxUvGMMZyAt+0cs79is3DOjNZxnBw1mpCX3+Xga8bOLN6IWtnRrApeBRtfdLnMdxYzJAvtpAQ3Jreg0KxSTnMujlL+foThRELWlA6Ty37ZyopXF4wjFGbdVTq3I9+gSb+3rCM+btjXqK/SCHSvdCPpNFgJCVFA6mxXD78Hd/+YURXpgZVHSGVc2xccxWrwAGM7FUNe0AtG0DR6L4MXL2e3R8Myjwl9fAQn5inH+JbGN2o3as9VbwByvDOm2XZOPQ0p/6G8j7pp4Wc3G2xIxqtDnQ2jri7Fc13/xR06N2LUgRLbC1VMBMS945fwKi+Qssu1QkFIJBy1Wrkqz5bp6LYAtdsVSwURxxdi5oNN41Da4b2qY8rkFqpCFcPfMHWAxcwNK2EFRC1fSnrL7jSZPxgPgxJ/6iUDfEg6WJ/1nx3gveGV8q2N65qknCqN4IhrT0eTimGz6O9+htrmP1zAv5vjWdsu/T31bIBFIvqy8CVGzjRqgvl89DX3K4zVTFSvHJvhrZKr/MV33uc6ricA6eSaetjjUoKJ1Zu5w71GDi8PTUsAYIpo7vN+yPWsWl/U0pXy31Q54bJuJ8ftsXgWnMUQ1ul7+yUDS7C9e6j2JZUqFUJUWAv9BbY44u70/rNTrR+py8DJhwn1a85fUbUxwtQks5x+bYGr9ohGYfxCjoCKodgpbnCmXN5r8/S5EVgiSyv9U7oNYnExhdGb/KvaLAvWs1+Vk7cyi8n/+JOwvOp1yU4ENeH/9fghrdHGqkJSRhI3/O/sPcCql1VGoRk7ktY4E35UBcenD3DlcfKszQUo1IdD3Jy7/hpbhn8qNUo8/3032dJbCKv8OfdvLU9t+tMk+aIZ/XMOtMc3XDWqhii0rfGJq7z58VktEEVeCXLLpN1+WoEaxP4+0Jk3hqWCxbXznEpUYdv1YCMkNUopQgLfvxEpBAv3gs9kijdYig9alujqFps3Irh7Zx5W5ImMYYERYur/rEr2LY26DGSlI97SRWTFlMOPX5et6WaUySsD6P6LGfp1rVM+SIOo6rDOaghPT97l1pOz65eS9snbwOzSE7/V8VIdGIqycmb6N9605NtNiZx77FpGo0jjmaGF0mIeUCKzd8s6tGeRY+3Q1uc+/GAW+7bntt1pph0WObwbfYmJX2oXZVEEuMVtN422Y6KTFobbE1wPfoZ7NonJJGo6nGyzTxCUdBhq9cXfl1CFNALDQlbr0BKB1nn+J5J74StaiQxMQnIsuVJSCIRLTb/op0uBVtKNerBqEY9wBjDpUM/MHX6ZiKmlaHKY6d0nl+btDjrLdG5tWHE8Fq4PH4aT6vPcZtubeZ0n61TEXSpZXlnZlfCLLLPpKg67L3z2r7CWWcKevR2KsaHR1AZe/apsSRoQOPyaCdFi5pDoUpKzhebFZ5yH7aZHZ1443M6hBQiD17aJ65VmyD8PUxc//14xh6rSgoX957BYPLDv7CvJmahoEWnginO+OwqMUfrhH9YB9qUhge3I4nKZzGWWi1qWmK+j5IUbAms6YM28io3bYrhXfyxH3fHPIWXa2gZvEzXOX/H+YmyinsXLdizHAVYZxqKUzrAGuO5YxzOcs0o+fhRzhptCQxIvyalYIveTsVwK/PIQuUyZ+/k/CekWtqi0ySSmJD2xHsm77KUtE3gxtHMhxnTuMaViy/6mFaIJ72091JYEsTrbX3ZFrGQMbNU3q5tx4OLP7FoRyyuDVrT6OGdOiopxN65T4oCSnQqBo2R1Jgo7tw1oZj0OHjY5HlPXIMbpQM0bDi5ntWn2lPN0RIsnfD2yNvDGymJscQkGjFZxJCQqpBsiuXO3UisAG2Rojg/PEC6+N0w5t2tQv1aPrg7aYk9+yPfndDi8VpItttR88K7pBfK1t9ZtSOUt4PssDbZYu/jkKeNsUuD92mydhRzB0/i5lt1qOJuSVJMJNdPH+S4oS1f9g3KdVlqsbb0aLKPzyeMYGy71jQMtkdJiiTy3Gn2nvamw9ct83QXUWGtMwUdoW1exX3vdr4d6UBK61BsEw6zZtFB0jz/Q4uHF60t8CMs2IqtB9fz06UPqOsVxfHFq/ktWQMOT5ab5l6Wcu4r2bxmObucwvCytMSxuC/utqBoK/FmIzcGb5rHmrp9aRFo4urPc1lx1QLkjJN4yby0IQHg1XQY35jmMGvDQsZuTQJ7X8o3GUiv9zNvf1VjtzL2/eWcftQTHfz8ZW9+BqxSKvLh6kF5fjBPwZaaPXvT+OuVrBw1iAUp+XtO4vSCjxi649HuqSWwkF49FgJQvO545vRLP8diH+yL/tQuFk+LJDZBwaaoFxUaD6RL9zyeg8nCuUkvepyNYMnCEfRNyPk5iX+iUYLoOmkYxRZ/z9rvprIpWkHr5EjxgFDqtPTMU3sUbCnfdyxflVzOsi0LGbPsPqqNIx5egVRsnPcwLMx1pvPrxlefuzBj8RYmfbMejcYN79CODO2ZGVwKOkJ7hNMiZj4RA7oQYe9LlbbtaB/0Fd/HPlmmJUG89dm73Jqylqmfb8ao6qjWfwnDXk0vy7/rF3yqziRidG/mp+goHtqQdnXvsfxgnpsvxDOlqKqa7+dCj566QMWyeXjaSwghxP8rL+01CSGEEC+ehIQQQgizJCSEEEKYJSEhhBDCLAkJIYQQZklICCGEMEtCQgghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKY9VJ/wd/zZmQfE9pM5jc1fYwA6xI9mDO1fsbobf+rjH/tYeMfFpRrG0appwyTUNgi985m0sJ9nI18kO0L8oQQz4+ERBaWVKLvrBl00aRwcOrHLHzBw5q+LIx/bWXpPGu6tnp+IZHKPuZO28m9wJ4M/aQkzjoV2/wPNy6EyCcJiSwUdOjdi2JDCi5aWTUvksWdG9xN0BHwWn2q5H7YCiFEIXthW0I1+RzbZn/PmmOXuBGt4ORTgRbdutE+NHNYHBMxnFk3h9kbT3EtTo9Xmda09/+ZKSuK8dHW/tQn/RTRtNaT+euNqUzr6JGx3Pah3ZgTF86C6bXSB9qJ2s+iRVvZe/4vbsckodG4UTK0Ie/2bEkF52fUyVzUmbT7czpNsaZS9SiOHYjDo3YPOrj+l+nrLmNyaUSfye8SZpNZ3pxvV7D7xC2iVT1uAVVp26MTLf0zB4m4uT6cPt/603tbH+o/mvhnBJ37n6XC+GmEl8lcZ1cah9PCuJGV+64RY9ATULsL/ftVwwtQSeDXoZ0Zd/rhoYMtRLzdngjShxvNz6kfk+kyu+YsYdXuS1xLVHD2CKFy+870queZMT7IzfXhdFt0K/2FJZyf3J5fJ+e/TqL2M3fmGn49+TdRig5bey/KVuhA74/KZZxGvLqsD+E/+PHGhwr7VhzhUrwO95I16dS7E/V80v9EVBK4sG053+08weVr94kx6HDyCqR2m850ydL+R6LPrmXuop0cvnyfFJMet1IhNHurO60rFHlYXgqRh1YyZ+l+jt+8h1HjRnBYO3p9WJsSz/GUnhD/5IWEhEk9x7LBI/khMoSmXT+ht2cKt3asZO6wr7g/eTQ9/dObdWvLVwybH0dg294MqWpN/O9LmbPpLlAs75XePccli1K06tAcdydHdMmX2bNsOV+FJzFy8Vt5GhWtsOtMNl7nQbkPGVxsOaNWTWZmaBf6DK/AhjFr2fhTa8La2GFKOcL0QRP5ValNxwE9KGl9hz0rFjF3YCSmbz+nlXvem3fzp1Uc6f0xE7rZE3toPmPHzyAiKITRTe1QsKXG0AgWJigk7Z1A+LdWdJjTlzo2KoqqxcYxb3WZiOGPb4YzdV9xavccyAe+Bm7tXMqciSNJ1E5hSK30sc69mg9jYY1UTLEbGTXgF9z7jOeDChb5qjONa2wcOZUtD8J4f0AX/F0MxF45zaGjd4mHbNeaDMoBNm1uTb9vZlPB+jrbpoxj6hAjVot6UsMSVJK4cfo+LjXfpIFXUTysDNy+tIklM4ZyW53KiPqZ47BHH5nAwOHHMYU25/3PQvGwTuDWvl0c2H+L1hX8AYj9YyIDvjqDvnoH+nX3QRt3hHVzZjByuI5xY6v9z18HEy+PFxISUduXsv6CK03GD+bDkPQmlA3xIOlif9Z8d4L3hlfCgnNsXX0Vm/IDGNqlGvaAqYwXDy5+yIIT+ag0uBOjg7NOCKC86yWOfnCA3y69RemShdCxfNZpm1yGek3LUyH2KoHLb6B/7TWqlIvjfskfWHExErAjbt9adt/wpt6MPvynJEAw5QJN3Hx3Npu/v0arfnkfkc2yzJt81NAHe8CxzpvUXbGPjQcuYGhaCStAZ+OGuw0kOWtRTDqs3V1xz8PIdlkpd3ay6ncI7DSQgc3SD6PKhniQdKE/S5f9ys1ajdNHp9M64e4GquqIlUmLlb0H7m75q1PlKieup+HXvgPNqz88dAusQFijJ+e1MLpRu2d7qrkBlKJ539fZ3WEVW7d1pkYzazS4US98IPWyLBNUNgAOdGbW5jMY6lfDCkjjMutmHiDBvxeTv6yfMeJeaEgVmjz8f5p6iu8ijpLq05cvh9R6GAghlNHdpseQ9Wz7uxrv+OSvz0IUtuceEioJXNh7AdWuBQ1CMqu3wJvyoS4s3XaGK1QiMOkcf97R4N0iJGNcZg1ulCvtAvkICRMxnN68nGVbTnD5ThLJipHUFFB0euLvAs8gJHJdp50tdoBqq8dKq8Xe0gIFPbY6FUNqIgBXjl/FpK9N9azt1JclLCCNBVcucA/vPO99uhUvkbFuFWxxdzKRmpCEAfI8Lvg/Sbt8imtpbjR5JfPcngXevBLqzNIfTnM+tTFehfxpVCiGv4eJlf+dyzzXBtQKDMTP2yHHvmnTfAnJcu3D5OhHSWcD+87+Bc3S30i5tYdFi7aw9/wtYhKMKEYjKWix9owlnvR1ptw/ysm7GvxbVDE7JKvFzcOcjbGiZKfK2X5n1qEV8bNYxJnzyeBjXTgrQYgCegEhYSQ6MZXk5E30b73pifeLGJO4BwQlxpCgaHG1zT5AtdY5jwNWk37+9/KCYQzbpFChfQ+GVvHEWaui3l3LyGHHMCj57c2zr1OTnP5vakIqqp0euyzvKdhgq1VR7iU9cfokV2XbPTnNIjmPheRSYoKRtDQ9Do/VqXW2QU1NIt5IoX8aLfDnzS8/IW3RRn6dN5W1SUYUq2JU7diPwS29s4eFVotllvoV9GjtVRIT0kPalPAbY8NncNazMe9/1AV/9yLoFCPHIz5hYRSkPFxOExVDPFo8nXNYuY8kxBKlMfLXjPdoNuOx93QQEmUEJCTEy+G5h4SCFme9JTq3NowYXguXx0fY1upxA1StE7aqkdSEJMiyaTRGJz2+AGoOu4ZKSuZWOI0r/Pr7HZwrjWbwm0GZG4dEE8ZnEBDPok5LW0uU+ESy3pWrkkSCUUG1s8lYQ7qcRixXUnKY+HzpbbVYWMRxPx7IcvrIGJ2EYumN3TO6WGvlXI33+lfjPSDh5lF2LZ7LvJnfsib0q2yndNS0JBLTAIuHr0kkMV7B3lMPQPKRnzgdHUSHWV1p9PDaiIkYzhmy12dyccIOI7HR8UDOQaHa6nFN1RPy8RjeD0l74n3940kqxAv03J+4VrAlsKYP2sir3LQphnfxx37cHbECTI5B+HuYuHbwDHEPlzVxl1PHop4oT2+nYriVGR4qlzl7J2vXUjCmgIWtTcbGWiWFi7+fJSqHDbaCDq2dihKfRP4flchbnf/EL9QXTeJ59l3KMjHxFH9ctMDVLzDjKMLGRY/JdJ/EB5mz3bt0g+gChKFOq0ULpBn+cVazLPzL4m15gz8PR2dMS+Mah49Hg18ZSj2H3RVbr4q0fKsSrpZ3uX0j+3tGiyscOpS5wba4sZ+zMVYUq1Qi/X0DpFrq0euyLJR4lF8uWWQrR3WoSDk3E5e37eWmmXaYvKpT2iWeyD+TcHv881+8GE87CBHieXshX8vh0uB9mnieYO7gSczbeYjjp4/xx56fWTV7LJ9POweAJUG83taXpBMLGbNwHwdOH2Pb9HF8fzP7lVML/AgLtuL24fX8dOkBhgfXOTxrNb8la7LN80oFW24fXs+uv1NRSeDyvtlM2J6IjpwFVi4Dd7axYMsJ/jx3gT+v3Scv28j81Pk09tX/Q51i1/hl1CTW7T7OiYPbiBi9hJNKOZq/nXnRukhQRXwczrF9wUluJSUSfW2PTPoAAAQOSURBVOlHZq0zt7nKHUsfX1yKnGPn4v2cvXGD69ciicrjwYnqXp83X9FxYdl4xm85zPEzB9k8aQJLL7lQtmMNs+fvC8KUuJMJ4ROZteEPfj99huPHfmHu7D1EW5ShXOhj7dMkcThiAit2H+f4wc2M/2oXtxxq0bRu+mkf+/IV8Slyip+WneMeYIg7xfoxazhpmT19LfCnTe+q6G4sZejnK/h531mOnznIlgVjGDr7cvo8SlnadytLwk/jGDRjK78cPsuJo3vZtnkREwZNY8OdZ7AyhMinF3J3k0YJouukYRRb/D1rv5vKpmgFrZMjxQNCqdPSM2M+z6afMSp5DtM2zmTEZh2+Ie3o3vZnpi7OLEtBR2iPcFrEzCdiQBci7H2p0rYd7YO+4vvYR/PYUrn3ILpPmsf8AR2ZYHKkeEhN2n1an7VD9+TYRvs6vRh0ZjIRC8bS3wjWDm2YuPgt/HLZx/zU+dR1pqtEr3EDKDJzBWumf0W0qsfDJ4yeozvRPOvtr+4t+bjXX0xePo73d+nw8K9Lx87VuTD2fJ7rfEQt1pbeXW8ze+MMBuwy5uuZBQ1OVB82go/nLGHpd1P4JVHBxiuQVwd0o1fNZ7TrbFOMcr672bRpETvu3yfRpMc7IIyukzvR8LFLW1amKnTuZsWv341nSZQV7iUb8PGnnTKeUVHc2zJkSCRTZn1N501p6F1LULFFH3pbj2T2rexlOVf6hGmj1jHn+x3MmbQeY5ojHr4hNHo/87PtVmcY422+Y+GqTczcfY9Ekx4PV19KV2347J7bESIfFFVVczqLnStHT12gYtnAwmzPP4r8bzg9p3lnPEwnREFdXdaHAcvLEb65B7VedGOEeMnIt8AKIYQwS0JCCCGEWf/vTjcJIYR4fuRIQgghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKYJSEhhBDCLAkJIYQQZklICCGEMEtCQgghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKYJSEhhBDCLAkJIYQQZklICCGEMEtCQgghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKYJSEhhBDCLAkJIYQQZklICCGEMEtCQgghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKYJSEhhBDCrAKFhLWVjmRDSmG1RQghxEumQCHh5GhHzP34wmqLEEKIl0yBQsLFyZ64+CRuR0bLEYUQQvwLKaqqqgUpwJiayr3o+8TeT5CgEEKIf5kCh4QQQoh/L7m7SQghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKYJSEhhBDCLAkJIYQQZklICCGEMEtCQgghhFkSEkIIIcySkBBCCGGWhIQQQgizJCSEEEKYJSEhhBDCrP8DmPUuEYiQf/QAAAAASUVORK5CYII="},29194:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/scheduleAnalysisApi-23d6baa981b373cfcb250aa4fdae85d3.png"},8772:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/snackbar-a50f40ddc680cd3616c20e22344400e4.gif"},68789:(A,e,t)=>{t.d(e,{Z:()=>i});const i=t.p+"assets/images/stickyHeader-f6884ffe284dc5acbe01d0d47022a9d7.gif"},11151:(A,e,t)=>{t.d(e,{Z:()=>a,a:()=>n});var i=t(67294);const s={},d=i.createContext(s);function n(A){const e=i.useContext(d);return i.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function a(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(s):A.components||s:n(A.components),i.createElement(d.Provider,{value:e},A.children)}}}]); \ No newline at end of file diff --git a/assets/js/39196de0.ccb1640f.js b/assets/js/39196de0.ccb1640f.js new file mode 100644 index 0000000000..00d3f8aa50 --- /dev/null +++ b/assets/js/39196de0.ccb1640f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3662],{39758:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var i=t(85893),n=t(11151);const r={title:"Week 5",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},a="Week 5 Meeting and Activities",d={id:"2024/spdx30/updates/2024-06-25",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/spdx30/updates/2024-06-25.md",sourceDirName:"2024/spdx30/updates",slug:"/2024/spdx30/updates/2024-06-25",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/updates/2024-06-25.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx30",permalink:"/gsoc/docs/tags/spdx-30"}],version:"current",frontMatter:{title:"Week 5",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-18"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/spdx-expression/"}},o={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Activities",id:"activities",level:2}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-5-meeting-and-activities",children:"Week 5 Meeting and Activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 25, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Presented my work SPDX v3.0 report in JSON and RDF format and also validated the reports using."}),"\n",(0,i.jsx)(s.li,{children:"Started resolving the issue while building the package in GitHub workflow."}),"\n",(0,i.jsxs)(s.li,{children:["Next Step: Resolve the build issue and work on tag",":value"," and CSV report generation."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"In this week, I have validated the SPDX v3.0 report in JSON-ld, JSON and RDF format."}),"\n",(0,i.jsx)(s.li,{children:"Also add the various fields which were required in Core, Software and Licensing profiles by the organization."}),"\n",(0,i.jsxs)(s.li,{children:["I have started working for the SPDX v3.0 report generation in tag",":value"," format."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>d,a:()=>a});var i=t(67294);const n={},r=i.createContext(n);function a(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3997b891.fcf1290f.js b/assets/js/3997b891.fcf1290f.js new file mode 100644 index 0000000000..61bd9e642c --- /dev/null +++ b/assets/js/3997b891.fcf1290f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4963],{66785:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var n=t(85893),i=t(11151);const a={title:"Week 3",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},r="Week 3 meeting and activities",l={id:"2024/rest/updates/valens/2024-06-20",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/rest/updates/valens/2024-06-20.md",sourceDirName:"2024/rest/updates/valens",slug:"/2024/rest/updates/valens/2024-06-20",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/valens/2024-06-20.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 3",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-13"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-27"}},c={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Activities:",id:"activities",level:2}];function o(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-3-meeting-and-activities",children:"Week 3 meeting and activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 13,2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": General updates regarding project."]}),"\n",(0,n.jsxs)(s.li,{children:["I and my colleague ",(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})," shared updates regarding the project."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"test(api): Added more unit test cases for maintenance and upload tree APIs"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Took a review on code for current test cases, improved some of them and added more test cases."}),"\n",(0,n.jsxs)(s.li,{children:["Added more tests for different methods that were not yet tested.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2764",children:"test(api): Added more unit test cases for maintenance and upload tree APIs."})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>r});var n=t(67294);const i={},a=n.createContext(i);function r(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3a01145e.3e0fd3fd.js b/assets/js/3a01145e.3e0fd3fd.js new file mode 100644 index 0000000000..e9c841468a --- /dev/null +++ b/assets/js/3a01145e.3e0fd3fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[516],{32667:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var o=n(85893),r=n(11151);const i={sidebar_position:1,title:"Introduction",slug:"/2023/cyclonedx/"},s=void 0,a={id:"2023/cyclonedx/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/index.md",sourceDirName:"2023/cyclonedx",slug:"/2023/cyclonedx/",permalink:"/gsoc/docs/2023/cyclonedx/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2023/cyclonedx/"},sidebar:"2023",previous:{title:"Final Evaluation",permalink:"/gsoc/docs/2023/laas/finalevaluation"},next:{title:"Community bonding",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-05-11"}},l={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function d(e){const t={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"author",children:"Author"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,o.jsx)(t.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"mailto:sushantmishra02102002@gmail.com",children:"Email"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://linkedin.com/in/its-sushant",children:"LinkedIn"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"project-title",children:"Project title"}),"\n",(0,o.jsx)(t.p,{children:"Support CycloneDX report"}),"\n",(0,o.jsx)(t.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,o.jsxs)(t.p,{children:["Currently, ",(0,o.jsx)(t.a,{href:"https://www.fossology.org/",children:"FOSSology"})," generates\n",(0,o.jsx)(t.a,{href:"https://www.synopsys.com/blogs/software-security/software-bill-of-materials-bom/",children:"SBOM"}),"\nin ",(0,o.jsx)(t.a,{href:"https://spdx.dev/",children:"SPDX"})," format, which allows for integration with various\ntools. However, ",(0,o.jsx)(t.a,{href:"https://cyclonedx.org/",children:"CycloneDX"})," is another popular format\nfor generating SBOMs. By integrating CycloneDX report generation in FOSSology,\nit will be possible to work with other tools that use CycloneDX. Although a ",(0,o.jsx)(t.a,{href:"https://github.com/CycloneDX/cyclonedx-php-library",children:"PHP\nlibrary"})," exists for\ngenerating CycloneDX reports, it cannot be used because it is licensed under\nApache-2.0, while FOSSology is under GPL-2.0. Therefore, a custom implementation\nof CycloneDX report generation in FOSSology is necessary. So the main goal of\nthis project focuses on the implementation of CycloneDX report generation in\nFOSSology."]}),"\n",(0,o.jsx)(t.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,o.jsx)(t.p,{children:"There are two main components of this project:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"First part is all about generating CycloneDx report in FOSSology. Now for\nreport generation we need to follow these steps:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Retrieve the data from the FOSSology DAO layer:"})," FOSSology has a database\nlayer called the\n",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/tree/master/src/lib/php/Dao",children:"DAO"}),"\n(Data Access Object) layer that is used for accessing data from FOSSology's\ndatabase. We can use the FOSSology DAO layer to fetch the required data from\nthe database."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Create a CycloneDX agent:"})," Develop a custom agent that interacts with the\nFOSSology DAO layer and retrieves the necessary data for generating the\nCycloneDX report. This agent will act as a bridge between FOSSology and the\nCycloneDX report generation process."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Extract the required information:"})," Using the CycloneDX agent, retrieve\nthe license and copyright information for each file from the FOSSology scan\ndata. The specific information needed will depend on the requirements and\nthe level of detail that needed to be include in the report."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Implement a CycloneDX validator:"})," Develop a validator that can verify if\na CycloneDX report adheres to the schema."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Generate the CycloneDX report:"})," Once collected the relevant data from\ndatabase with validated CycloneDX schema, we can generate the CycloneDX\nreport."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Second is support import of CycloneDx reports in FOSSology:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Extend the FOSSology reportimport agent:"})," The FOSSology\n",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/tree/master/src/reportImport",children:"reportimport"}),"\nagent allows importing reports from various formats. To add support for\nimporting CycloneDX reports, we need to extend the agent's capabilities.\nThis involves modifying the reportimport agent's codebase to include\nCycloneDX as an accepted format and validate report using custom validator."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Validate the CycloneDX report:"})," When importing a CycloneDX report, invoke\nthe CycloneDX validator to check if the report conforms to the schema. The\nvalidator will analyze the report's structure, fields, and content to ensure\ncompliance with the CycloneDX standard."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Import the validated CycloneDX report:"})," After successfully validating the\nCycloneDX report, import it into the FOSSology database using the\nreportimport agent. The agent will parse the report's data and store it in\ndatabase."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"The main functionality that needs to be implemented is to successfully generate\nand import a CycloneDx report in FOSSology. In addition, the UI code of\nFOSSology also needs to be modified to display options for generating and\nimporting CycloneDx reports."})]})}function h(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>s});var o=n(67294);const r={},i=o.createContext(r);function s(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3a3aa3f9.2eced321.js b/assets/js/3a3aa3f9.2eced321.js new file mode 100644 index 0000000000..9cd7da3da6 --- /dev/null +++ b/assets/js/3a3aa3f9.2eced321.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2532],{51308:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var s=t(85893),i=t(11151);const o={title:"Week1",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},r=void 0,a={id:"2022/project/updates/2022-06-09",title:"Week1",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-06-09.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-06-09",permalink:"/gsoc/docs/2022/project/updates/2022-06-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-06-09.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week1",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/project/updates/2022-06-02"},next:{title:"Week2",permalink:"/gsoc/docs/2022/project/updates/2022-06-16"}},l={},c=[{value:"Meeting 2",id:"meeting-2",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 6th, 2022)"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(n.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bhardwaj"}),"\n",(0,s.jsx)(n.li,{children:"Vivek Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Avinal Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(n.li,{children:"Thanvi Lahari Pendyala"}),"\n",(0,s.jsx)(n.li,{children:"Krishna Mahato"}),"\n",(0,s.jsx)(n.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(n.p,{children:"Absent"}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read and learn the code of Fossology"}),"\n",(0,s.jsx)(n.li,{children:"Try to install Fossology in VMWare in my local PC"}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var s=t(67294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3a4ef734.49102318.js b/assets/js/3a4ef734.49102318.js new file mode 100644 index 0000000000..1fa7ae743d --- /dev/null +++ b/assets/js/3a4ef734.49102318.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4156],{14834:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var s=i(85893),t=i(11151);const l={title:"Week 3",author:"Divij Sharma",tags:["gsoc24","rest"]},r="Week 3 meeting and activities",c={id:"2024/rest/updates/Divij/2024-06-11",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-06-11.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-06-11",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-06-11.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 3",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-06"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-18"}},o={},d=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2},{value:"SecreenShots",id:"secreenshots",level:2}];function a(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"week-3-meeting-and-activities",children:"Week 3 meeting and activities"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 11,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"OAuth"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Proposed 2 mechanisms for OAuth 2.0 implementation in the project.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"M-2-M, for technical uesrs"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Clients must obtain a token from the authorization server using their client ID and client secret."}),"\n",(0,s.jsx)(n.li,{children:"The token can be used to access the FOSSology API."}),"\n",(0,s.jsx)(n.li,{children:"For this to happen, FOSSology server must be configured to use OAuth 2.0."}),"\n",(0,s.jsx)(n.li,{children:"REST API will have endpoints to do this configuration."}),"\n",(0,s.jsx)(n.li,{children:"Token sent should be verified by the server and user should be authenticated and authorized."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Authorization Code Grant, for end users and new UI"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Only for client applications that can interact with the user."}),"\n",(0,s.jsx)(n.li,{children:"Can use various npm libraries to implement this flow."}),"\n",(0,s.jsx)(n.li,{children:"Users will log in and receive a code."}),"\n",(0,s.jsx)(n.li,{children:"This code can be exchanged for a token to access the FOSSology API."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})," mentioned that the ",(0,s.jsx)(n.code,{children:"client id"})," for both the mechanisms will be different, which will cause problems when using the same client for both the mechanisms."]}),"\n",(0,s.jsx)(n.li,{children:"We will have to look into this and find a solution. Maybe I will handle this in the last week."}),"\n",(0,s.jsx)(n.li,{children:"Discussed the improvements that can be made in the REST API Version 2, particularly the status codes and pagination."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"activities",children:"Activities"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"OAuth 2.0 M-2-M implementation"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Implemented the OAuth 2.0 M-2-M mechanism for the project."}),"\n",(0,s.jsxs)(n.li,{children:["Created an endpoint ",(0,s.jsx)(n.code,{children:"/users/oauthclient"})," to add new clients when user is logged in."]}),"\n",(0,s.jsxs)(n.li,{children:["Created an endpoint ",(0,s.jsx)(n.code,{children:"/users/oauthclient/{type}"})," to get active and expired OAuth clients."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"/customise"})," endpoint used to accept only a single key-value pair for updating admin configs, making it difficult to update fields in bulk. I've modified it to accept an array of key-value pairs and update accordingly."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"/customise"})," endpoint is now capable to fetch all other URLs required for OIDC integration when the discovery URL is passed over the REST API."]}),"\n",(0,s.jsxs)(n.li,{children:["Raised a PR ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2761",children:"feat(oauth): Added machine-to-machine OAuth functionality"})," for the same."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"REST API Version 2"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Started working on the improvements identified in the last meeting:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Status Codes: Particularly 204 (no content)"}),"\n",(0,s.jsx)(n.li,{children:"Adding pagination to all necessary endpoints"}),"\n",(0,s.jsx)(n.li,{children:"Using model classes for all major/minor responses"}),"\n",(0,s.jsx)(n.li,{children:"Test coverage"}),"\n",(0,s.jsx)(n.li,{children:"Authentication workflow"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Made requested changes in the PR ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2736",children:"feat(api): Upgrade Jobs & Report APIs to Version 2"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"secreenshots",children:"SecreenShots"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"/users/oauthclient"})," : Add new clients when user is logged in.\n",(0,s.jsx)(n.img,{alt:"addclients",src:i(12759).Z+"",width:"1034",height:"961"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"/users/oauthclient/{type}"})," : Get active and expired OAuth clients.\n",(0,s.jsx)(n.img,{alt:"viewclients",src:i(76211).Z+"",width:"1028",height:"912"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},12759:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/addclients-60b161399ea7076bd3dbf3df5f4d9f80.png"},76211:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/viewclients-b36c4d3338d93f5c39c94cbecbdb074f.png"},11151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>r});var s=i(67294);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3a69aa9b.1b198052.js b/assets/js/3a69aa9b.1b198052.js new file mode 100644 index 0000000000..d2fae443a6 --- /dev/null +++ b/assets/js/3a69aa9b.1b198052.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3381],{21997:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var s=t(85893),i=t(11151);const o={title:"Week3",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},r=void 0,a={id:"2022/project/updates/2022-06-23",title:"Week3",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-06-23.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-06-23",permalink:"/gsoc/docs/2022/project/updates/2022-06-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-06-23.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week3",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week2",permalink:"/gsoc/docs/2022/project/updates/2022-06-16"},next:{title:"Week4",permalink:"/gsoc/docs/2022/project/updates/2022-06-30"}},c={},l=[{value:"Meeting 4",id:"meeting-4",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 23rd, 2022)"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Katharina Ettinger"}),"\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bhardwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shruti Agarwal"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev Maduri"}),"\n",(0,s.jsx)(n.li,{children:"Avinal Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,s.jsx)(n.li,{children:"Krishna Mahato"}),"\n",(0,s.jsx)(n.li,{children:"Soham Banerjee"}),"\n",(0,s.jsx)(n.li,{children:"Samuel Dushimimana"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(n.p,{children:"Discussion about the videos I uploaded to YouTube and bilibili about the basic work flow of fossology.\nDiscussion about the Google doc of detailed requirement."}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I will try to create a new directory and copy the code file about group to it and make my first PR."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var s=t(67294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ba56a83.095d7e5f.js b/assets/js/3ba56a83.095d7e5f.js new file mode 100644 index 0000000000..82d42addd7 --- /dev/null +++ b/assets/js/3ba56a83.095d7e5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6842],{36225:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>a});var i=s(85893),t=s(11151);const l={title:"Week 3",author:"Sarita"},r=void 0,c={id:"2021/scancode/updates/2021-06-22",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-06-22.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-06-22",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Sarita"},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-18"},next:{title:"Week 4",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-29"}},o={},a=[{value:"Coding Week 3 Meeting 1",id:"coding-week-3-meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 2 Progress",id:"week-2-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Coding Week 3 Meeting 2",id:"coding-week-3-meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-3-meeting-1",children:"Coding Week 3 Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-06-22"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-2-progress",children:"Week 2 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Populated scancode database successfully."}),"\n",(0,i.jsxs)(n.li,{children:["license relevant ",(0,i.jsx)(n.code,{children:"text highlight"})," is working."]}),"\n",(0,i.jsx)(n.li,{children:"Scancode is working fine for license scanning."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Agent testing would be done after implementing rest of information (copyright, emails, urls)."}),"\n",(0,i.jsx)(n.li,{children:"Start implementing copyright, email and urls scanning for scancode toolkit."}),"\n",(0,i.jsxs)(n.li,{children:["Optimisation related to showing percentage match for a license is required. Scancode have a plugin ",(0,i.jsx)(n.code,{children:"--license-score INTEGER"})," for this purpose.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"shows only those licenses above a certain threshold value."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Change ",(0,i.jsx)(n.code,{children:"detector type"})," to 4."]}),"\n",(0,i.jsx)(n.li,{children:"Gaurav Solved queries related to various fields present in fossology database."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Adding text url and name for license inserting for the first time."}),"\n",(0,i.jsx)(n.li,{children:"Search how to get reference text for match licenses."}),"\n",(0,i.jsx)(n.li,{children:"start implementing agent for copyright, email and urls scanned results."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"coding-week-3-meeting-2",children:"Coding Week 3 Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-06-25"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["How many numbers of tables should be created in the FOSSology database?","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav, Shaheem suggested that two new tables, one for copyright and other for author information would be fine."}),"\n",(0,i.jsx)(n.li,{children:"Still have to vote what majority of mentors will suggest on Monday on the slack channel."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Facing difficulties to understand FOSSology UI code so there will be a meeting on Monday in which we'll discuss about the flow of copyright agent's UI code."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Create copyright and author tables in FOSSology database."}),"\n",(0,i.jsx)(n.li,{children:"Update scheduler code to add these information after extracting from ScanCode scan result."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>r});var i=s(67294);const t={},l=i.createContext(t);function r(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3cb67e34.3ca83e90.js b/assets/js/3cb67e34.3ca83e90.js new file mode 100644 index 0000000000..ccb42fbe23 --- /dev/null +++ b/assets/js/3cb67e34.3ca83e90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6544],{25777:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var l=s(85893),n=s(11151);const i={sidebar_position:2,title:"Google Summer of Code Proposals 2023"},r=void 0,o={id:"2023/GSoC-projects",title:"Google Summer of Code Proposals 2023",description:"\x3c!--",source:"@site/docs/2023/GSoC-projects.md",sourceDirName:"2023",slug:"/2023/GSoC-projects",permalink:"/gsoc/docs/2023/GSoC-projects",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/GSoC-projects.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Google Summer of Code Proposals 2023"},sidebar:"2023",previous:{title:"GSoC'23 @ FOSSology",permalink:"/gsoc/docs/2023"},next:{title:"Introduction",permalink:"/gsoc/docs/2023/copyrights/"}},d={},c=[{value:"Intro",id:"intro",level:2},{value:"Interested in Application? - Getting Grip",id:"interested-in-application---getting-grip",level:2},{value:"Examples from past programs",id:"examples-from-past-programs",level:2},{value:"Mentors",id:"mentors",level:2},{value:"Proposals so far:",id:"proposals-so-far",level:4},{value:"Topic Proposals",id:"topic-proposals",level:2},{value:"Topic Proposals from 2023",id:"topic-proposals-from-2023",level:2},{value:"REST API improvements",id:"rest-api-improvements",level:3},{value:"Integrating Open Source Review Toolkit",id:"integrating-open-source-review-toolkit",level:3},{value:"Comment",id:"comment",level:4},{value:"Reducing false positive copyrights",id:"reducing-false-positive-copyrights",level:3},{value:"Support CycloneDX report",id:"support-cyclonedx-report",level:3},{value:"Support conf file & UI for NOMOS agent",id:"support-conf-file--ui-for-nomos-agent",level:3},{value:"Support text phrases scanning for MONK agent",id:"support-text-phrases-scanning-for-monk-agent",level:3},{value:"New project to estimate clearing effort",id:"new-project-to-estimate-clearing-effort",level:3},{value:"Main license detection for components",id:"main-license-detection-for-components",level:3},{value:"License as service",id:"license-as-service",level:3},{value:"Obligation as service",id:"obligation-as-service",level:3},{value:"Improving FOSSology CI scanner image",id:"improving-fossology-ci-scanner-image",level:3},{value:"Support dynamic CSS class of bootstrap in FOSSology",id:"support-dynamic-css-class-of-bootstrap-in-fossology",level:3}];function h(e){const t={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.p,{children:"Welcome to the main page for all GSoC 2023 related information."}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["Check ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/Google-Summer-of-Code-Proposals-2023",children:"https://github.com/fossology/fossology/wiki/Google-Summer-of-Code-Proposals-2023"})]}),"\n"]}),"\n",(0,l.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,l.jsx)(t.p,{children:"We from the fossology project would like to apply for GSOC. Please see two main\nresources for finding out more FOSSology in general:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://www.fossology.org",children:"https://www.fossology.org"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://fossology.github.io/gsoc/",children:"https://fossology.github.io/gsoc/"})}),"\n"]}),"\n",(0,l.jsxs)(t.p,{children:["Meetings: Checkout the ",(0,l.jsx)(t.a,{href:"/docs/2023#meetings-table",children:"Meetings table"})]}),"\n",(0,l.jsx)(t.h2,{id:"interested-in-application---getting-grip",children:"Interested in Application? - Getting Grip"}),"\n",(0,l.jsx)(t.p,{children:"If you are interested in an application - great! We encourage your application. So the question is how to get started with the topic, just a few points:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["Check ",(0,l.jsx)(t.a,{href:"https://www.fossology.org",children:"https://www.fossology.org"})," and these Github pages ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki",children:"https://github.com/fossology/fossology/wiki"})]}),"\n",(0,l.jsxs)(t.li,{children:["Maybe check some initial intro at ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/New-at-FOSSology%2C-You-Could-",children:"https://github.com/fossology/fossology/wiki/New-at-FOSSology%2C-You-Could-"}),"...","\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://www.fossology.org/get-started/basic-workflow/",children:"https://www.fossology.org/get-started/basic-workflow/"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://www.fossology.org/get-started/basic-training/",children:"https://www.fossology.org/get-started/basic-training/"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://fossology.github.io/",children:"https://fossology.github.io/"})}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(t.li,{children:["Try to install fossology, either using vagrant or docker","\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsxs)(t.del,{children:["Check out our YouTube video for installation from source: ",(0,l.jsx)(t.a,{href:"https://youtu.be/q12KwmPYZG4",children:"https://youtu.be/q12KwmPYZG4"})," (Outdated)"]})}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(t.li,{children:"Read the proposed topics"}),"\n",(0,l.jsxs)(t.li,{children:["Use the mailing list ",(0,l.jsx)(t.a,{href:"mailto:fossology-devel@fossology.org",children:"fossology-devel@fossology.org"})," or contact proposed mentors for further steps"]}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://join.slack.com/t/fossology/shared_invite/enQtNzI0OTEzMTk0MjYzLTYyZWQxNDc0N2JiZGU2YmI3YmI1NjE4NDVjOGYxMTVjNGY3Y2MzZmM1OGZmMWI5NTRjMzJlNjExZGU2N2I5NGY",children:"Slack invite link"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2371",children:"GitHub discussion"})}),"\n",(0,l.jsxs)(t.li,{children:["If you are interested in trying to make contributions, see out issues with the label ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/contribute",children:"good first issue"}),". Maybe you could sort out the workflow and make a first pull request."]}),"\n"]}),"\n",(0,l.jsx)(t.h2,{id:"examples-from-past-programs",children:"Examples from past programs"}),"\n",(0,l.jsx)(t.p,{children:"In 2020, we were awarded seven slots, please see here what was the result of it:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["Ayush and Kaushlendra's work on the ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})," license scanner and ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/Nirjas",children:"Nirjas"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/hastagAB/GSoC-2020",children:"https://github.com/hastagAB/GSoC-2020"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/Kaushl2208/GSoC-2020",children:"https://github.com/Kaushl2208/GSoC-2020"})}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(t.li,{children:["Darshan's work on Dashboard: ",(0,l.jsx)(t.a,{href:"https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki",children:"https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki"})]}),"\n"]}),"\n",(0,l.jsx)(t.p,{children:"Also - very much fun - There are some YouTube videos created:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["Ayush made a YouTube video / interview style of his experience: ",(0,l.jsx)(t.a,{href:"https://youtu.be/C8f_etew-yc",children:"https://youtu.be/C8f_etew-yc"})]}),"\n",(0,l.jsxs)(t.li,{children:["Hypnos invited Darshan for an interview: ",(0,l.jsx)(t.a,{href:"https://youtu.be/_KbQ83JK7Q0",children:"https://youtu.be/_KbQ83JK7Q0"})]}),"\n"]}),"\n",(0,l.jsxs)(t.p,{children:["In 2021, the GSoC program awarded the fossology project with 7 slots. It was a lot bigger and a lot of fun for 2021, a dedicated page has been set up. Please see the GSoC works ",(0,l.jsx)(t.a,{href:"/gsoc/docs/2021",children:"here"}),"."]}),"\n",(0,l.jsxs)(t.p,{children:["From this page you can also get an idea about the work being carried out: check the weekly reporting, ",(0,l.jsx)(t.a,{href:"../2021/ui",children:"for example for the UI project"}),"."]}),"\n",(0,l.jsxs)(t.p,{children:["You can check out our GSoC 2022 projects with 8 slots. The dedicated page can be found ",(0,l.jsx)(t.a,{href:"/gsoc/docs/2022",children:"here"}),"."]}),"\n",(0,l.jsx)(t.h2,{id:"mentors",children:"Mentors"}),"\n",(0,l.jsx)(t.p,{children:"Interested in becoming a mentor? Please reach out to us!"}),"\n",(0,l.jsx)(t.h4,{id:"proposals-so-far",children:"Proposals so far:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,l.jsx)(t.li,{children:"Katharina Ettinger"}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit_Pandey"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/shruti3004",children:"Shruti Agarwal"})}),"\n"]}),"\n",(0,l.jsx)(t.h2,{id:"topic-proposals",children:"Topic Proposals"}),"\n",(0,l.jsx)(t.p,{children:"Please reach out to us to add more proposals for GSoC 2023."}),"\n",(0,l.jsxs)(t.p,{children:["Currently, discussion happening on ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2371",children:"https://github.com/fossology/fossology/discussions/2371"})]}),"\n",(0,l.jsx)(t.h2,{id:"topic-proposals-from-2023",children:"Topic Proposals from 2023"}),"\n",(0,l.jsxs)(t.ol,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#rest-api-improvements",children:"REST API improvements"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#integrating-open-source-review-toolkit",children:"Integrating Open Source Review Toolkit"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#reducing-false-positive-copyrights",children:"Reducing false positive copyrights"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#support-cyclonedx-report",children:"Support CycloneDX report"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#support-conf-file--ui-for-nomos-agent",children:"Support conf file & UI for NOMOS agent"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#support-text-phrases-scanning-for-monk-agent",children:"Support text phrases scanning for MONK agent"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#new-project-to-estimate-clearing-effort",children:"New project to estimate clearing effort"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#main-license-detection-for-components",children:"Main license detection for components"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#license-as-service",children:"License as service"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#obligation-as-service",children:"Obligation as service"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#improving-fossology-ci-scanner-image",children:"Improving FOSSology CI scanner image"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"#support-dynamic-css-class-of-bootstrap-in-fossology",children:"Support dynamic CSS class of bootstrap in FOSSology"})}),"\n"]}),"\n",(0,l.jsx)(t.h3,{id:"rest-api-improvements",children:"REST API improvements"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Making all data from current UI available on REST API"]}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:"Writing test cases for all the existing and new functionalities."}),"\n",(0,l.jsxs)(t.li,{children:["Improve REST API and expose more endpoints","\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:"Update REST API to v2"}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/issues?q=is%3Aissue+is%3Aopen+REST",children:"https://github.com/fossology/fossology/issues?q=is%3Aissue+is%3Aopen+REST"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues",children:"https://github.com/Shruti3004/FOSSology-REST-API/issues"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/issues/2404",children:"https://github.com/fossology/fossology/issues/2404"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"integrating-open-source-review-toolkit",children:"Integrating Open Source Review Toolkit"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Using ORT to fetch dependencies and generate SBOM"]}),"\n",(0,l.jsx)(t.p,{children:"Build systems fetch the required dependencies (library/artifact) for a project while building the project. Its important to get an insight of these dependencies for license compliance check."}),"\n",(0,l.jsxs)(t.p,{children:["The ",(0,l.jsx)(t.a,{href:"https://github.com/oss-review-toolkit/ort",children:"OSS Review Toolkit"})," is an open source project helps to find dependencies in a project."]}),"\n",(0,l.jsx)(t.p,{children:"The goal of this project is to render the project dependencies created by ort and display those in the fossology-UI. Dependencies can be scheduled directly from the UI and scan with fossology."}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,l.jsx)(t.h4,{id:"comment",children:"Comment"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["Or use the ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2140#discussioncomment-2112774",children:"other approach recommended"})," by ",(0,l.jsx)(t.a,{href:"https://github.com/sameer1046",children:"@sameer1046"})]}),"\n"]}),"\n",(0,l.jsx)(t.h3,{id:"reducing-false-positive-copyrights",children:"Reducing false positive copyrights"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Improving copyright agent by reducing false positives"]}),"\n",(0,l.jsxs)(t.p,{children:["In GSoC 2021, ",(0,l.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"@Kaushl2208"})," worked on an ML script to tag and cleanup false positive copyrights detected by FOSSology. The goal is to continue on the work and improve the script. Alternatively, the copyright agent of FOSSology itself can be improved to achieve better results.\nKnown issues:"]}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:"The script currently works only for English names."}),"\n",(0,l.jsx)(t.li,{children:"The clutter removal changes the casing of text."}),"\n",(0,l.jsx)(t.li,{children:"Low accuracy of the agent overall."}),"\n"]}),"\n",(0,l.jsx)(t.p,{children:"Links:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["GSoC report: ",(0,l.jsx)(t.a,{href:"https://github.com/Kaushl2208/GSoC2021",children:"https://github.com/Kaushl2208/GSoC2021"})]}),"\n",(0,l.jsxs)(t.li,{children:["Pull request: ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2083",children:"https://github.com/fossology/fossology/pull/2083"})]}),"\n"]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"support-cyclonedx-report",children:"Support CycloneDX report"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Creating CycloneDX reports along with SPDX and other formats"]}),"\n",(0,l.jsx)(t.p,{children:"CycloneDX is another popular format for generating SBOMs. Having FOSSology generate reports in CycloneDX along with SPDX will enable integration with more tools."}),"\n",(0,l.jsx)(t.p,{children:"Links:"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://packagist.org/packages/cyclonedx/cyclonedx-library",children:"https://packagist.org/packages/cyclonedx/cyclonedx-library"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://cyclonedx.org/",children:"https://cyclonedx.org/"})}),"\n"]}),"\n",(0,l.jsx)(t.p,{children:"As a small enhancement, other reporting formats from SPDX can be implemented as well including JSON and YAML."}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"support-conf-file--ui-for-nomos-agent",children:"Support conf file & UI for NOMOS agent"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Adding text phrases from UI or from .conf file should enble nomos to scan for new text phrases(Added) for licenses"]}),"\n",(0,l.jsxs)(t.p,{children:["FLOW : Create a UI Where user can add multiple text phrases associated with license(FROM FOSSology License Database)\n",(0,l.jsx)("br",{}),"This text phrases should get converted in to regex and stored in a conf.\n",(0,l.jsx)("br",{}),"Should provide ability to NOMOS to copy regex and associated license from conf to search for a license.\n",(0,l.jsx)("br",{}),"Test cases needs to be provided as well."]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"support-text-phrases-scanning-for-monk-agent",children:"Support text phrases scanning for MONK agent"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Adding text phrases from UI to database and provide ability to scan them using MONK."]}),"\n",(0,l.jsxs)(t.p,{children:["FLOW : Create a UI Where user can add multiple text phrases associated with license(FROM FOSSology License Database)\n",(0,l.jsx)("br",{}),"Should enable MONK to scan from phrases table.\n",(0,l.jsx)("br",{}),"Test cases needs to be provided as well."]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Medium"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"new-project-to-estimate-clearing-effort",children:"New project to estimate clearing effort"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Create a new project using bootstrap and php to estimate time to clear the given number of components."]}),"\n",(0,l.jsxs)(t.p,{children:["FLOW : Create a UI Where user can upload CSV/json\n",(0,l.jsx)("br",{}),"Read all the components in the given file and search them in FOSSology & SW360 Database.\n",(0,l.jsx)("br",{}),"List the components that were already cleared in fossology AND sw360.\n",(0,l.jsx)("br",{}),"List all the components that were cleared with other versions.\n",(0,l.jsx)("br",{}),"List all the components that are not matched with any of the components.\n",(0,l.jsx)("br",{}),"And also list a ESTIMATED TIME to finish the upload based upon size."]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Medium"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"main-license-detection-for-components",children:"Main license detection for components"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Automatically detect main license for a component/package"]}),"\n",(0,l.jsx)(t.p,{children:"Fetch main license of the component/package from package-list/package repo, this will help the users to reach quick decide on the license situation based on the main license and license histogram of the package."}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"license-as-service",children:"License as service"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," License repository that can be used by other project/s"]}),"\n",(0,l.jsx)(t.p,{children:"Idea is to create a license database similar to what fossology uses and expose it over an API which can then be used by other projects like fossology and sw360 as source of license text, risk, etc."}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"obligation-as-service",children:"Obligation as service"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Obligation repository that can be used by other project/s"]}),"\n",(0,l.jsx)(t.p,{children:"Idea is to create a obligations database similar to what fossology uses and expose it over an API which can then be used by other projects like fossology and sw360 as source of obligations for given license(s)."}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"improving-fossology-ci-scanner-image",children:"Improving FOSSology CI scanner image"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Enhancing current scanner image with new reports and features\nAs a fun project, FOSSology started combining scanners in a simple and small Docker image which can be run on CI providers. The image is currently capable of understanding build environment (GitLab/GitHub Actions/Travis) and use their API's to fetch diff of a branch or scan the complete repo. The capabilities of image include license scanning with Nomos and ojo scanners, copyright and keyword scanning with respective scanners. The image makes use of a Python script to perform all the tasks."]}),"\n",(0,l.jsxs)(t.ol,{children:["\n",(0,l.jsxs)(t.li,{children:["The script, however, currently prints report in text format on console and generate the same as an artifact. It can be improved by generating reports in other formats like SPDX reports. See ",(0,l.jsx)(t.a,{href:"https://github.com/spdx/tools-python",children:"their Python API"}),"."]}),"\n",(0,l.jsx)(t.li,{children:"The integration with GitHub Actions can be improved by reporting line number where a license violation is found."}),"\n",(0,l.jsxs)(t.li,{children:["Allowing user to provide a different list of Keywords for scanning (currently stored at ",(0,l.jsx)(t.code,{children:"/usr/local/share/fossology/keyword/agent/keyword.conf"}),")."]}),"\n",(0,l.jsxs)(t.li,{children:["Improving on ",(0,l.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/FOSSology-scanners-in-CI#explanation",children:"whitelist format"})," with feature to provide it from other sources, currently it is read from a file which is expected to be in the root of repo being scanned."]}),"\n",(0,l.jsx)(t.li,{children:"Ability to down a dependency for scan (path provided at pipeline trigger)."}),"\n"]}),"\n",(0,l.jsx)(t.p,{children:"Additionally, the JSON output of nomos needs to be enhanced providing highlight and line information in the output."}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Large"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"support-dynamic-css-class-of-bootstrap-in-fossology",children:"Support dynamic CSS class of bootstrap in FOSSology"}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Goal:"})," Create a PHP page and define all the CSS classes of bootstrap that are been used inside of project"]}),"\n",(0,l.jsx)(t.p,{children:"FLOW:"}),"\n",(0,l.jsxs)(t.ol,{children:["\n",(0,l.jsx)(t.li,{children:"Create a PHP page and define all the CSS classes of bootstrap that are been used inside of project."}),"\n",(0,l.jsx)(t.li,{children:"Also beautify the existing FOSSology UI with Bootstrap."}),"\n",(0,l.jsx)(t.li,{children:"We can easily change from versions of bootstrap if we have all the classes in one place."}),"\n"]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Peripheral"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Medium"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]})]})}function a(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>r});var l=s(67294);const n={},i=l.createContext(n);function r(e){const t=l.useContext(i);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),l.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3d8d1b23.0280dc31.js b/assets/js/3d8d1b23.0280dc31.js new file mode 100644 index 0000000000..1c3962c31e --- /dev/null +++ b/assets/js/3d8d1b23.0280dc31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[566],{49378:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>n,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var i=s(85893),o=s(11151);const l={title:"Week 2",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},n=void 0,a={id:"2022/ui/updates/samuel/2022-06-30",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-06-30.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-06-30",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-06-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-06-30.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 2",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-06-02"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-07"}},r={},u=[{value:"Activities",id:"activities",level:2},{value:"SCREENSHOTS",id:"screenshots",level:3},{value:"1. Delete Group API",id:"1-delete-group-api",level:3},{value:"2. List deletable groups API",id:"2-list-deletable-groups-api",level:3},{value:"Contributions",id:"contributions",level:2}];function d(e){const t={a:"a",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Created The API to delete the group."}),"\n",(0,i.jsx)(t.li,{children:"Created THe API to return a list of groups that can possibly be deleted."}),"\n",(0,i.jsx)(t.li,{children:"Created the pull request for delete group API."}),"\n",(0,i.jsx)(t.li,{children:"Created the pull request for deletable-groups-api API."}),"\n",(0,i.jsx)(t.li,{children:"Continueing to release more APIs related to groups for future\nfront-end Integration."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"screenshots",children:"SCREENSHOTS"}),"\n",(0,i.jsx)(t.h3,{id:"1-delete-group-api",children:"1. Delete Group API"}),"\n",(0,i.jsxs)(t.p,{children:["i. Let's choose the last group to be deleted.\n",(0,i.jsx)(t.img,{alt:"delete-group-pic-1",src:s(67602).Z+"",width:"1006",height:"769"})]}),"\n",(0,i.jsx)(t.p,{children:"ii. Pass the id of the group to delete in params."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"delete-group-pic-2",src:s(41216).Z+"",width:"950",height:"803"})}),"\n",(0,i.jsx)(t.h3,{id:"2-list-deletable-groups-api",children:"2. List deletable groups API"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"deletable-groups",src:s(2327).Z+"",width:"970",height:"723"})}),"\n",(0,i.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2247",children:"feat(API): list groups that can be deleted"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2244",children:"feat(API): delete user group"})}),"\n"]})]})}function c(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},2327:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/deletable_groups-3e96ef5ffbb94b1fc2f9d496e42d0d80.png"},67602:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/delete_api_1-8a274d0d4d0dc294a76391d8f580120d.png"},41216:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/delete_api_2-90c0e057689b0696117a0a467d2c9dba.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>n});var i=s(67294);const o={},l=i.createContext(o);function n(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3dacff87.249a115e.js b/assets/js/3dacff87.249a115e.js new file mode 100644 index 0000000000..20006ca3e1 --- /dev/null +++ b/assets/js/3dacff87.249a115e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7651],{26871:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=s(85893),o=s(11151);const l={title:"Week 11",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},i=void 0,c={id:"2023/rest/updates/samuel/2023-08-10",title:"Week 11",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-08-10.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-08-10",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-08-10.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 11",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 10",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-03"},next:{title:"Week 12",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-17"}},r={},d=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Unlink the folder contents API <code>/folders/contents/{contentId}/unlink</code>",id:"1-unlink-the-folder-contents-api-folderscontentscontentidunlink",level:4},{value:"2. Get all contents of a specific folder API <code>/folders/{folderId}/contents</code>",id:"2-get-all-contents-of-a-specific-folder-api-foldersfolderidcontents",level:4},{value:"3. Export licenses-list as CSV <code>/license/export</code>",id:"3-export-licenses-list-as-csv-licenseexport",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function a(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Added the REST API to unlink the folder contents: ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2552",children:"#2552"})]}),"\n",(0,n.jsxs)(t.li,{children:["Added the REST API to get all contents of a specific folder: ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2555",children:"#2555"})]}),"\n",(0,n.jsxs)(t.li,{children:["Added the REST API to export licenses-list as CSV: ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2562",children:"#2562"})]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,n.jsxs)(t.h4,{id:"1-unlink-the-folder-contents-api-folderscontentscontentidunlink",children:["1. Unlink the folder contents API ",(0,n.jsx)(t.code,{children:"/folders/contents/{contentId}/unlink"})]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"unlink-folder-contents",src:s(40265).Z+"",width:"1495",height:"348"})}),"\n",(0,n.jsxs)(t.h4,{id:"2-get-all-contents-of-a-specific-folder-api-foldersfolderidcontents",children:["2. Get all contents of a specific folder API ",(0,n.jsx)(t.code,{children:"/folders/{folderId}/contents"})]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"get-folder-contents",src:s(97528).Z+"",width:"1509",height:"784"})}),"\n",(0,n.jsxs)(t.h4,{id:"3-export-licenses-list-as-csv-licenseexport",children:["3. Export licenses-list as CSV ",(0,n.jsx)(t.code,{children:"/license/export"})]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"export-licenses-list",src:s(29447).Z+"",width:"1531",height:"714"})}),"\n",(0,n.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Add the REST API to import obligation list from CSV."}),"\n",(0,n.jsx)(t.li,{children:"Add the REST API to export obligation list as CSV."}),"\n",(0,n.jsx)(t.li,{children:"Enhance the FOSSology API to support Multiple versions (V1 & V2)."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},97528:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/get_folder_contents-170b3375cea8e6629e64180a04e04738.png"},40265:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/unlink_folder_contents-1381c0cc64180172340037845f652b44.png"},29447:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/export_licenses_list-bd524bfc94f2bf765cc569ea7a85362c.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>c,a:()=>i});var n=s(67294);const o={},l=n.createContext(o);function i(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3e191a68.75924294.js b/assets/js/3e191a68.75924294.js new file mode 100644 index 0000000000..828418f8e1 --- /dev/null +++ b/assets/js/3e191a68.75924294.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1126],{90807:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var s=t(85893),i=t(11151);const o={title:"Week 15",author:"Abdelrahman Jamal"},r=void 0,l={id:"2023/copyrights/updates/2023-09-06",title:"Week 15",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-09-06.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-09-06",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-09-06.md",tags:[],version:"current",frontMatter:{title:"Week 15",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 14",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-30"},next:{title:"Week 16",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-13"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. Week Off:",id:"1-week-off",level:3},{value:"Conclusion and Future Plans:",id:"conclusion-and-future-plans",level:2},{value:"1. NER Model Enhancement:",id:"1-ner-model-enhancement",level:3}];function d(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(September,06,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsx)(n.h3,{id:"1-week-off",children:"1. Week Off:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Took a break this week to spend time with family. Consequently, no significant progress was made."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-and-future-plans",children:"Conclusion and Future Plans:"}),"\n",(0,s.jsx)(n.h3,{id:"1-ner-model-enhancement",children:"1. NER Model Enhancement:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Plan to resume and intensify efforts on refining the NER model in the upcoming week."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var s=t(67294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3f6754b1.95039b0f.js b/assets/js/3f6754b1.95039b0f.js new file mode 100644 index 0000000000..5cfb42a082 --- /dev/null +++ b/assets/js/3f6754b1.95039b0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5770],{48213:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>t,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var i=s(85893),l=s(11151);const r={title:"Week 8",author:"Abdelrahman Jamal"},t=void 0,a={id:"2023/copyrights/updates/2023-07-19",title:"Week 8",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-07-19.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-07-19",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-19",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-07-19.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 7",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-12"},next:{title:"Week 9",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-26"}},o={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Fossology Dataset Cleaning",id:"fossology-dataset-cleaning",level:3},{value:"Machine Learning for Copyright Classification",id:"machine-learning-for-copyright-classification",level:3},{value:"Model Performance and Future Directions",id:"model-performance-and-future-directions",level:3},{value:"Dataset Creation Problems and Solutions",id:"dataset-creation-problems-and-solutions",level:2},{value:"Problem 1:",id:"problem-1",level:3},{value:"Solution 1:",id:"solution-1",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Exploration",id:"exploration",level:3},{value:"Deep Learning",id:"deep-learning",level:3},{value:"Generalization",id:"generalization",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July,19,2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsx)(n.h3,{id:"fossology-dataset-cleaning",children:"Fossology Dataset Cleaning"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The Fossology dataset is now cleared. The ",(0,i.jsx)(n.a,{href:"https://docs.google.com/spreadsheets/d/1jj_5F8bjT5a7beIp9OOIizCr37SqfeFWUiPthuEotsw/edit?usp=sharing",children:"clearing results"})," showcase:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Green: Copyright"}),"\n",(0,i.jsx)(n.li,{children:"Red: False positive"}),"\n",(0,i.jsx)(n.li,{children:"Orange: Unsure (consulted mentors)"}),"\n",(0,i.jsx)(n.li,{children:"Blue: Non-English texts"}),"\n",(0,i.jsxs)(n.li,{children:["Gray: Invalid copyrights (e.g., ",(0,i.jsx)(n.code,{children:"Copyright (c) _____"}),")."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"The final dataset comprises ~20,000 unique strings. Approximately 75% are true copyright notices, and the rest are false positives. This is reduced from an initial ~43,000 rows in the original Fossology dataset."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"machine-learning-for-copyright-classification",children:"Machine Learning for Copyright Classification"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.a,{href:"https://gist.github.com/Hero2323/464b1eb7321a7408613b0de3f6c11837",children:"code is available here"}),". Key findings include:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"For classical machine learning techniques, SVMs, random forests, and Naive Bayes classifiers were assessed. Random forest outperformed the others."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"The results of the random forest model are as follows:"}),"\n",(0,i.jsx)(n.p,{children:"Fossology Dataset (Test Set)"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-markdown",children:"| | precision | recall | f1-score | support |\n|---------------|-----------|--------|----------|---------|\n| 0 | 0.99 | 0.98 | 0.99 | 2870 |\n| 1 | 0.95 | 0.97 | 0.96 | 1024 |\n"})}),"\n",(0,i.jsx)(n.p,{children:"Tensorflow Dataset"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-markdown",children:"| | precision | recall | f1-score | support |\n|---------------|-----------|--------|----------|---------|\n| 0 | 1.00 | 0.98 | 0.99 | 14865 |\n| 1 | 0.88 | 0.99 | 0.93 | 1632 |\n"})}),"\n",(0,i.jsx)(n.p,{children:"Kubernetes Dataset"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-markdown",children:"| | precision | recall | f1-score | support |\n|---------------|-----------|--------|----------|---------|\n| 0 | 1.00 | 1.00 | 1.00 | 25786 |\n| 1 | 0.87 | 1.00 | 0.93 | 156 |\n"})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"model-performance-and-future-directions",children:"Model Performance and Future Directions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["After discussions with mentors Kaushl and Gaurav, it was decided that recall should be prioritized. While DistilBert was explored, its performance was suboptimal compared to random forests. De-cluttering will likely be approached via Named Entity Recognition (NER). Additionally, Gaurav provided a new dataset of 10,000 copyrights, ",(0,i.jsx)(n.a,{href:"https://docs.google.com/spreadsheets/d/1nvQOz7Phx9zaxnQR22T728u6b98x8vGrkCFmdZIKvvg/edit?usp=sharing",children:"available here"}),", that will need minor editing before use."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"dataset-creation-problems-and-solutions",children:"Dataset Creation Problems and Solutions"}),"\n",(0,i.jsx)(n.h3,{id:"problem-1",children:"Problem 1:"}),"\n",(0,i.jsx)(n.p,{children:"Creating a dataset manually is repetitive, time-consuming, and error-prone. Especially with over 20,000 unique rows filled with code and potential copyrights, mislabeling is easy."}),"\n",(0,i.jsx)(n.h3,{id:"solution-1",children:"Solution 1:"}),"\n",(0,i.jsx)(n.p,{children:"In Google Sheets, conditional formatting rules were implemented to color each row based on its label. This visual cue greatly assisted in the labeling process, speeding up the workflow, and reducing potential errors."}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,i.jsx)(n.h3,{id:"exploration",children:"Exploration"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Delve deeper into various classifiers and text vectorization methods."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"deep-learning",children:"Deep Learning"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Analyze the efficiency of deep learning models in contrast to traditional machine learning models."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"generalization",children:"Generalization"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Ensure all techniques employed perform robustly and generalize well to unseen data."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>t});var i=s(67294);const l={},r=i.createContext(l);function t(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3fbbd0f4.5b06d8d6.js b/assets/js/3fbbd0f4.5b06d8d6.js new file mode 100644 index 0000000000..71fff70658 --- /dev/null +++ b/assets/js/3fbbd0f4.5b06d8d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3157],{59997:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>o});var s=n(85893),i=n(11151);const r={title:"Week 6",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},l="WEEK 6",c={id:"2024/pipeline/updates/2024-07-04",title:"Week 6",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-07-04.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-07-04",permalink:"/gsoc/docs/2024/pipeline/updates/2024-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-07-04.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"pipeline",permalink:"/gsoc/docs/tags/pipeline"}],version:"current",frontMatter:{title:"Week 6",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-27"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/text-phrases/"}},d={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Subsequent Steps",id:"subsequent-steps",level:2}];function a(e){const t={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"week-6",children:"WEEK 6"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(July 4, 2024)"})}),"\n",(0,s.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Completed the Python script for fetching copyright contents from the database, incorporating Gaurav's recommendation to also retrieve user-modified contents. The updated script now collects copyrights and stores them in a CSV file with four columns:"}),"\n"]}),"\n",(0,s.jsx)(t.table,{children:(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"original_content"}),(0,s.jsx)(t.th,{children:"original_is_enabled"}),(0,s.jsx)(t.th,{children:"edited_content"}),(0,s.jsx)(t.th,{children:"modified_is_enabled"})]})})}),"\n",(0,s.jsxs)(t.p,{children:["You can find the updated script ",(0,s.jsx)(t.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/895ac5814097386f816d9ae703034cbe60244819/files/copyrights_script_v2.py",children:"here"}),"."]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Automated the model training process with the idea that at a threshold of 500 new entries in the database, the Safaa model should be retrained. I explored GitHub Actions and wrote a YAML script to check the number of new entries and trigger the model retraining script if the threshold is met. However, due to connection issues between GitHub Actions and the locally hosted database, I consulted the mentors. They suggested making a connection for retraining when a new copyright file is uploaded to the repository. This task will be continued in the coming week, and updates will be provided in the following meeting."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Explored incremental learning in Safaa. Currently, Safaa uses Scikit-learn's SVM implementation, which retrains from scratch. Since SVM is incapable of incremental learning, I switched to the SGD Classifier model from Scikit-learn, which supports incremental learning. I calculated its metric reports and found that its results are similar to those of the SVM. As per the mentors' suggestions, I will create a PR showing the results from both SVM and SGD. You can find my implementation for SVM ",(0,s.jsx)(t.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/33917177a876562cc4d2f7c308f7e2dbe03cd4c3/files/model_implementations/copyright_classification_SVM.ipynb",children:"here"}),", for SGD ",(0,s.jsx)(t.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/33917177a876562cc4d2f7c308f7e2dbe03cd4c3/files/model_implementations/copyright_classification_SGD.ipynb",children:"here"}),", and the comparison between them can be found below. The dataset used for implementation can be found ",(0,s.jsx)(t.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/33917177a876562cc4d2f7c308f7e2dbe03cd4c3/files/datasets/fossology-master.csv",children:"here"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"The results are as follows:"}),"\n",(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between"},children:[(0,s.jsxs)("div",{style:{flex:"0 0 48%"},children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"SGD Classifier:"})}),(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{}),(0,s.jsx)(t.th,{children:"precision"}),(0,s.jsx)(t.th,{children:"recall"}),(0,s.jsx)(t.th,{children:"f1-score"}),(0,s.jsx)(t.th,{children:"support"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"0"}),(0,s.jsx)(t.td,{children:"0.99"}),(0,s.jsx)(t.td,{children:"0.99"}),(0,s.jsx)(t.td,{children:"0.99"}),(0,s.jsx)(t.td,{children:"2878"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"1"}),(0,s.jsx)(t.td,{children:"0.96"}),(0,s.jsx)(t.td,{children:"0.98"}),(0,s.jsx)(t.td,{children:"0.97"}),(0,s.jsx)(t.td,{children:"1016"})]})]})]})]}),(0,s.jsxs)("div",{style:{flex:"0 0 48%"},children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"SVM Classifier:"})}),(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{}),(0,s.jsx)(t.th,{children:"precision"}),(0,s.jsx)(t.th,{children:"recall"}),(0,s.jsx)(t.th,{children:"f1-score"}),(0,s.jsx)(t.th,{children:"support"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"0"}),(0,s.jsx)(t.td,{children:"0.99"}),(0,s.jsx)(t.td,{children:"0.99"}),(0,s.jsx)(t.td,{children:"0.99"}),(0,s.jsx)(t.td,{children:"2878"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"1"}),(0,s.jsx)(t.td,{children:"0.96"}),(0,s.jsx)(t.td,{children:"0.97"}),(0,s.jsx)(t.td,{children:"0.97"}),(0,s.jsx)(t.td,{children:"1016"})]})]})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Started working on creating a Python library for the NER-POS tagging task. I experimented with the Stanford NER Tagger. You can find my work ",(0,s.jsx)(t.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/33917177a876562cc4d2f7c308f7e2dbe03cd4c3/files/ner/Stanford_Tagger.ipynb",children:"here"}),". However, I plan on exploring the fine-tuning of BERT or GPT for this task in the coming weeks."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"subsequent-steps",children:"Subsequent Steps"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Address the issue with GitHub Actions by establishing a connection for retraining when a new copyright file is uploaded to the repository. Do all the implementations locally and then create the final yaml file to try out GitHub Actions."}),"\n",(0,s.jsx)(t.li,{children:"Explore and implement the fine-tuning of BERT or GPT for the NER-POS tagging task."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>l});var s=n(67294);const i={},r=s.createContext(i);function l(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/417aa6bf.f520c4e9.js b/assets/js/417aa6bf.f520c4e9.js new file mode 100644 index 0000000000..22a66ddc31 --- /dev/null +++ b/assets/js/417aa6bf.f520c4e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[271],{96834:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>o});var i=n(85893),s=n(11151);const a={title:"Week 3",author:"Abdelrahman Jamal"},l=void 0,d={id:"2023/copyrights/updates/2023-06-14",title:"Week 3",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-06-14.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-06-14",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-14",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-06-14.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 2",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-07"},next:{title:"Week 4",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-21"}},r={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Family Visit",id:"family-visit",level:3},{value:"Academics",id:"academics",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Dataset Creation",id:"dataset-creation",level:3},{value:"LDA Model",id:"lda-model",level:3}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.em,{children:"(June,14,2023)"})}),"\n",(0,i.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsx)(t.h3,{id:"family-visit",children:"Family Visit"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Unfortunately,I was away on a family visit and could not make it to the meeting."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"academics",children:"Academics"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Completed my final examinations."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,i.jsx)(t.h3,{id:"dataset-creation",children:"Dataset Creation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Over the upcoming weeks, my primary focus will be on formulating the dataset. The objective is to gather sufficient training and test data, paving the way to commence work on the machine learning model."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"lda-model",children:"LDA Model"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"In tandem, I'll undertake the implementation of the LDA (Latent Dirichlet Allocation) model, as recommended by Kaushl."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>l});var i=n(67294);const s={},a=i.createContext(s);function l(e){const t=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/41e635b0.c1e52238.js b/assets/js/41e635b0.c1e52238.js new file mode 100644 index 0000000000..96501d8d99 --- /dev/null +++ b/assets/js/41e635b0.c1e52238.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7375],{29031:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=t(85893),o=t(11151);const r={title:"Week 2",author:"Sushant Kumar"},a=void 0,c={id:"2023/cyclonedx/updates/2023-06-08",title:"Week 2",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-06-08.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-06-08",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-06-08.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 1",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-01"},next:{title:"Week 3",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-15"}},i={},l=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June,08,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I have been primarily working on creating an agent for CycloneDX."}),"\n",(0,s.jsx)(n.li,{children:"I have successfully created an agent that retrieves the necessary data for\ngenerating a CycloneDX report from the FOSSology database."}),"\n",(0,s.jsx)(n.li,{children:"Currently, the agent is running in CLI (Command Line Interface) mode."}),"\n",(0,s.jsx)(n.li,{children:"I used the SPDX agent as a reference to create this agent."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"In the upcoming weeks, I will be working on generating CycloneDX reports by\nutilizing the data from the FOSSology database."}),"\n",(0,s.jsx)(n.li,{children:"Additionally, I will be working on determining the similarities between SPDX\nand CycloneDX reports."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>a});var s=t(67294);const o={},r=s.createContext(o);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/41f47303.8503b263.js b/assets/js/41f47303.8503b263.js new file mode 100644 index 0000000000..82efdd9193 --- /dev/null +++ b/assets/js/41f47303.8503b263.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5351],{68257:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>a});var i=t(85893),o=t(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2023/copyrights/"},r=void 0,l={id:"2023/copyrights/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2023/copyrights/index.md",sourceDirName:"2023/copyrights",slug:"/2023/copyrights/",permalink:"/gsoc/docs/2023/copyrights/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2023/copyrights/"},sidebar:"2023",previous:{title:"Google Summer of Code Proposals 2023",permalink:"/gsoc/docs/2023/GSoC-projects"},next:{title:"Community bonding",permalink:"/gsoc/docs/2023/copyrights/updates/2023-05-11"}},h={},a=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Github Repository",id:"github-repository",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:abdelrahmanjamal5565@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://linkedin.com/in/abdelrahmanjamal",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"github-repository",children:"Github Repository"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323/Fossology-Reducing-Copyrights",children:"Link"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,i.jsx)(n.p,{children:"This project\u2019s goal is to improve the accuracy of Fossology\u2019s copyright detection system using machine learning. This functionality was originally implemented in 2021 to improve the two-step process of copyright detection used by most copyright detection software; using Regex and then human intervention. The machine learning approach uses Named Entity Recognition (NER) and Part of Speech (POS) tagging to figure out which statements contain copyright and which do not. I\u2019ll be working on improving all parts of the project; starting from the dataset & preprocessing, then working my way to the NER hypothesis until the machine learning model used and the final integration."}),"\n",(0,i.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Dataset creation which involves:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Choosing the open-source repositories to include (and other\nsources as needed)"}),"\n",(0,i.jsx)(n.li,{children:"Labeling the initial dataset is the hardest part as it involves using the Fossology API to extract Fossology's output and checking for the false positives and labeling them as such."}),"\n",(0,i.jsx)(n.li,{children:"Following that, I can use the model that is trained on the initial dataset to help me label further datasets."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Choosing machine Learning approach to follow"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Testing out the different approaches","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Embedding or vectorizing words and sentences","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Test out the different vectorization and embedding methods"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Extracting features from each sentence"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Choosing the best machine learning models to implement"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Testing out the various machine and deep learning models and choosing the best performing one.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Support Vector Machines (SVM)"}),"\n",(0,i.jsx)(n.li,{children:"Random Forest (RF)"}),"\n",(0,i.jsx)(n.li,{children:"Naive Bayes (NB)"}),"\n",(0,i.jsxs)(n.li,{children:["Recurrent Neural Networks (RNN)","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Long Short Term Memory (LSTM)"}),"\n",(0,i.jsx)(n.li,{children:"Bidirectional Long Short Term Memory (Bi-LSTM)"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"BERT (and it's variants)"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Research into clutter removal and the best ways to implement it."}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var i=t(67294);const o={},s=i.createContext(o);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/423d9b78.89a9368a.js b/assets/js/423d9b78.89a9368a.js new file mode 100644 index 0000000000..f5d9fab2b3 --- /dev/null +++ b/assets/js/423d9b78.89a9368a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5259],{87110:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>o,frontMatter:()=>l,metadata:()=>d,toc:()=>h});var i=s(85893),n=s(11151);const l={sidebar_position:1,title:"GSoC'22 @ FOSSology",slug:"/2022"},r=void 0,d={id:"2022/index",title:"GSoC'22 @ FOSSology",description:"\x3c!--",source:"@site/docs/2022/index.md",sourceDirName:"2022",slug:"/2022",permalink:"/gsoc/docs/2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"GSoC'22 @ FOSSology",slug:"/2022"},sidebar:"2022",next:{title:"Google Summer of Code Proposals 2022",permalink:"/gsoc/docs/2022/GSoC-projects"}},c={},h=[{value:"Projects",id:"projects",level:3},{value:"Mentors",id:"mentors",level:3},{value:"Meetings table",id:"meetings-table",level:3},{value:"Photo",id:"photo",level:3}];function a(e){const t={a:"a",em:"em",h3:"h3",img:"img",li:"li",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["2022 was the fifth time participation for FOSSology in\n",(0,i.jsx)(t.a,{href:"https://summerofcode.withgoogle.com/programs/2022/organizations/fossology",children:"Google Summer of Code"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["You can visit our ",(0,i.jsx)(t.a,{href:"/gsoc/docs/2022/GSoC-projects",children:"idea page for GSoC 2022"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"This year, we had 8 amazing contributors working with us and spending their summer\ncontributing to the Open Source. The contributions made to the project are\nsuperb and will help FOSSology to grow as a richer tool and ecosystem."}),"\n",(0,i.jsx)(t.h3,{id:"projects",children:"Projects"}),"\n",(0,i.jsx)(t.p,{children:"Following are the important links to projects."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Contributor"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Project"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Final Reports"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/ui",children:"React UI"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"<- couldn't complete"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/project",children:"Concept of Project"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://fossology.github.io/gsoc/docs/2022/project/",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/ui",children:"React UI"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://gist.github.com/krishna9304/3571728fa42a2a1e4b1d2938cd5eed4e",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/reuse",children:"REUSE standards"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://medium.com/@rohit-pandey/gsoc-2022-final-report-bf1e34440bce",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/ui",children:"React UI"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/dushimsam/GSoC-22",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/ui",children:"React UI"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/soham4abc/GSOC22",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/atarashi",children:"Minerva-Atarashi"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/its-sushant/GSoC-22",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Thanvi Lahari Pendyala"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2022/spasht",children:"Spasht"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"<- Discontinued"})]})]})]}),"\n",(0,i.jsx)(t.p,{children:"These links (also on the left sidebar) contains information about the project,\nthe weekly updates from the students and even technical documentation which\nwere generated during the Google Summer of Code."}),"\n",(0,i.jsx)(t.h3,{id:"mentors",children:"Mentors"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/mcjaeger",children:"Michael Jaeger"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(t.li,{children:"Katharina Ettinger"}),"\n",(0,i.jsx)(t.li,{children:"Klaus Gmeinwieser"}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"meetings-table",children:"Meetings table"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Topic(s)"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Timings"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Meeting link"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"ICS"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"General Meeting"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Thursdays"})," 12:30 - 13:30 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTAwZTUyMWYtNDNiNy00MTIyLWFlYWItZWMwNDA5YjYxMzgw%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%227f1979f2-e3e3-40d0-8a77-bcef842abf7e%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(47807).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Atarashi - Minerva"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Wednesdays"})," 04:30 - 05:00 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_NmE4ZWVkZjktZTI1NS00YzQyLWE1YTMtMjUxMDkyODVmZTg0%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a897f79c-71f3-4e34-a964-67183e5a6731%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(97844).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"REUSE project"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Tuesdays"})," 12:00 - 12:30 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZWQyNjRlMmUtMzljNS00OWJlLThiNmEtYmRlM2IwNjRmMDI2%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(75159).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"React UI"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Tuesdays"})," 14:30 - 15:30 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZDYzM2M0ZWEtMDE1MC00ZGM0LTk1MGUtNWYxYTNjNzQ1OWRk%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%227f1979f2-e3e3-40d0-8a77-bcef842abf7e%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(26379).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Spasht"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Concept of project"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Thursdays"})," 09:00 - 09:30 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_MWE4YTRlMDEtODc4Yi00NjY4LWIzNGYtM2ViYWNmMDU3ZDVl%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(27973).Z+"",children:".ics"})})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"photo",children:"Photo"}),"\n",(0,i.jsx)(t.p,{children:"Due to tough situations this year, we could not meet anyone in person despite\nbeing in same place sometimes. But with the help of technology, we managed to\ncapture som screenshots of our concluding call with every student and mentor."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.img,{alt:"group photo1",src:s(6248).Z+"",title:"GSoC 2022 Participants - 1",width:"1612",height:"972"}),"\n[Participants photo 1]"]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.img,{alt:"group photo2",src:s(1775).Z+"",title:"GSoC 2022 Participants - 2",width:"1608",height:"971"}),"\n[Participants photo 2]"]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.img,{alt:"group photo3",src:s(59886).Z+"",title:"GSoC 2022 Participants - 3",width:"1610",height:"908"}),"\n[Participants photo 3]"]}),"\n",(0,i.jsx)(t.p,{children:"Thanks for being part of the community. \ud83d\udc9a"})]})}function o(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},97844:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2022_atarashi-108e673f48d64c63100f2c18029aad86.ics"},27973:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2022_project-d0c3e6d8b9e7466343af8099296f6abe.ics"},75159:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2022_reuse-bca23d35bbae63e79cf26905a63b221d.ics"},26379:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2022_ui-d90bca4bc8befce72563349223589308.ics"},47807:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2022_weekly-cd50a5e3cb034ba946c900016258fb87.ics"},6248:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc22participants1-12b58de157e8777d3d7d3e57b6fd3fd7.png"},1775:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc22participants2-818c6b8379164912f571b9a3ec8cc147.png"},59886:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc22participants3-bfc820eba1b1592949e396d757dff2d2.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>r});var i=s(67294);const n={},l=i.createContext(n);function r(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/43b51baa.7e49f8e4.js b/assets/js/43b51baa.7e49f8e4.js new file mode 100644 index 0000000000..e3f9030f04 --- /dev/null +++ b/assets/js/43b51baa.7e49f8e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8413],{38647:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var t=s(85893),i=s(11151);const r={title:"Week 5",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},a="WEEK 5",o={id:"2024/pipeline/updates/2024-06-27",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-06-27.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-06-27",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-06-27.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"pipeline",permalink:"/gsoc/docs/tags/pipeline"}],version:"current",frontMatter:{title:"Week 5",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-20"},next:{title:"Week 6",permalink:"/gsoc/docs/2024/pipeline/updates/2024-07-04"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Subsequent Steps",id:"subsequent-steps",level:2}];function c(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"week-5",children:"WEEK 5"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June 27, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Checked use cases to evaluate the current model's preprocessing output and discussed findings.\nChecking of corner cases can be found ",(0,t.jsx)(n.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/1a2ded0c4a06691ab185e012fad39e401d6429b1/files/testing_corner_cases.ipynb",children:"here"})," and my findings can be found documented in this ",(0,t.jsx)(n.a,{href:"https://docs.google.com/document/d/1h13ydbpDG6voXgX45gTHwtvtK_4bvK8j-JXH9vkh4R4/edit?usp=sharing",children:"word file"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["I ",(0,t.jsx)(n.a,{href:"https://docs.google.com/document/d/1h13ydbpDG6voXgX45gTHwtvtK_4bvK8j-JXH9vkh4R4/edit?usp=sharing",children:"researched"})," and explored various NER taggers and began creating a library for NER-POS tagging using Stanford's NER tagger. In parallel, I initiated work on developing a dedicated library for this task and investigated multiple models:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"SpaCy"}),"\n",(0,t.jsx)(n.li,{children:"NLTK"}),"\n",(0,t.jsx)(n.li,{children:"Flair"}),"\n",(0,t.jsx)(n.li,{children:"Stanford\u2019s CoreNLP"}),"\n",(0,t.jsx)(n.li,{children:"AllenNLP"}),"\n",(0,t.jsx)(n.li,{children:"Apache OpenNLP"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["I tested Stanford\u2019s CoreNLP with some random data from the internet to evaluate its model. You can find my code for experimentation ",(0,t.jsx)(n.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/91e79fac9fda07148034ae927701306e7baedbd5/files/ner/Stanford_Tagger.ipynb",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["I wrote a Python script using Psycopg to connect to the Fossology database and retrieve copyright contents. During this process, I encountered and addressed several issues. You can find the script ",(0,t.jsx)(n.a,{href:"https://github.com/ShreyaGautamm/gsoc_24/blob/4fd6f5813340b2d5b3aac5823e1d0539a30391d9/files/copyrights_script.ipynb",children:"here"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"subsequent-steps",children:"Subsequent Steps"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The mentors emphasized the critical importance of completing the framework before progressing further. Therefore, my plan for the next week is to focus on getting the framework ready."}),"\n",(0,t.jsx)(n.li,{children:"In the NER tagging task, I plan to focus on fine-tuning BERT to perform both NER and POS tagging tasks. Multitask learners, like fine-tuned language models, generally achieve better performance on downstream tasks."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>a});var t=s(67294);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/43d0318c.303b21e7.js b/assets/js/43d0318c.303b21e7.js new file mode 100644 index 0000000000..395a89568e --- /dev/null +++ b/assets/js/43d0318c.303b21e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1052],{39535:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>t,metadata:()=>r,toc:()=>c});var i=s(85893),h=s(11151);const t={title:"Community Bonding",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},l=void 0,r={id:"2022/reuse/updates/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-06-02.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-06-02",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Community Bonding",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Introduction",permalink:"/gsoc/docs/2022/reuse/"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-13"}},a={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3},{value:"Meeting 3",id:"meeting-3",level:2},{value:"Attendees",id:"attendees-2",level:3},{value:"Discussions",id:"discussions-2",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,h.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 2nd, 2022)"})}),"\n",(0,i.jsx)(n.p,{children:"GSoC 2022 weekly update"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael c Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Understood the flow of the weekly updates meetings."}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," explains about the ",(0,i.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2022/",children:"Tool"})," to send the updates."]}),"\n",(0,i.jsx)(n.li,{children:"Finalized timings for individual project meeting."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Project Meeting time for resue project - every tuesday 5:30 pm to 6:00 pm IST."}),"\n",(0,i.jsxs)(n.li,{children:["Need to update the weekly progress in ",(0,i.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2022/",children:"Tool"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 7th, 2022)"})}),"\n",(0,i.jsx)(n.p,{children:"GSoC 2022 Discussions - REUSE"}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"How should licenses and copyrights be applied to files without licenses or copyrights?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Use GPL 2.0-only license for such files without copyright."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Do I need to create a Wiki Page for the REUSE Standard?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Yes. You can implement it in 2 ways: i) By creating a separate wiki page ii) By adding in ",(0,i.jsx)(n.code,{children:"fossology/CONTRIBUTING.md"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Do I need to add the current year to the copyright?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"No. Since we are not changing any logic in the file, we shouldn't change the copyright year."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"How to add license and copyright in JSON files?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["JSON is for data only, and if you include a comment, then it will be data too. The ",(0,i.jsx)(n.code,{children:"file-name.json.license"})," file needs to be created to add the license and copyright."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Can we have more than one license for a file?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Yes, it\u2019s possible. You can use SPDX syntax to define them.\nFor example:\nSPDX-License-Identifier: (GPL-2.0 OR MIT)\nSPDX-License-Identifier: (LGPL-2.1 AND BSD-2-CLAUSE)"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Should I change the year ranges?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Concerning the year ranges, we should not change the existing year ranges(and not change the end year if no substantial modification was done in the file)."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Do not modify testdata files."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Implement discussed solution in upcoming week."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 9th, 2022)"})}),"\n",(0,i.jsx)(n.p,{children:"GSoC 2022 weekly update"}),"\n",(0,i.jsx)(n.h3,{id:"attendees-2",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-2",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Explored the study material/blog links shared by mentors."}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Can I raise a pull request with a few changes for review?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Yes. You can raise PR."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,h.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>l});var i=s(67294);const h={},t=i.createContext(h);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(h):e.components||h:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/46d3cdc1.d9bd3e30.js b/assets/js/46d3cdc1.d9bd3e30.js new file mode 100644 index 0000000000..47b126aa27 --- /dev/null +++ b/assets/js/46d3cdc1.d9bd3e30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1044],{52752:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/cmake-cweek3","metadata":{"permalink":"/gsoc/blog/cmake-cweek3","editUrl":"https://github.com/fossology/gsoc/edit/main/blog/2021-06-23-cmake-w3.md","source":"@site/blog/2021-06-23-cmake-w3.md","title":"New build system - Week 3","description":"\x3c!--","date":"2021-06-23T00:00:00.000Z","tags":[{"label":"coding-week","permalink":"/gsoc/blog/tags/coding-week"},{"label":"cmake","permalink":"/gsoc/blog/tags/cmake"}],"readingTime":1.475,"hasTruncateMarker":true,"authors":[{"name":"Avinal","title":"Build system","url":"https://github.com/avinal/","imageURL":"https://avatars.githubusercontent.com/u/74113200?v=4"}],"frontMatter":{"slug":"/cmake-cweek3","title":"New build system - Week 3","author":"Avinal","author_title":"Build system","author_url":"https://github.com/avinal/","author_image_url":"https://avatars.githubusercontent.com/u/74113200?v=4","tags":["coding-week","cmake"]},"unlisted":false},"content":"\x3c!--\\nSPDX-License-Identifier: CC-BY-SA-4.0\\n\\nSPDX-FileCopyrightText: 2021 Avinal Kumar <avinal.xlvii@gmail.com>\\n--\x3e\\n\\n# Coding Week 3 Meeting\\n\\n### Attendees\\n\\n- Michael C. Jaeger https://github.com/mcjaeger\\n- Gaurav Mishra https://github.com/GMishx\\n- Sarita Singh https://github.com/itssingh\\n- Avinal Kumar https://github.com/avinal\\n\\n### Week 2 Progress\\n\\n1. Version file Implementation\\n2. Initial functions on obtaining commit and branch info\\n3. To test the current progress, follow the instructions [here](https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now)\\n\\n\x3c!--truncate--\x3e\\n\\n### Discussions\\n\\n* **What is the regex expression used for obtaining version information?**\\n\\n - The regex has recently been modified to cover recent versions. The latest form is as below:\\n ```cpp\\n ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*\\n ```\\n - You can also try alternatives to regex if possible for CMake.\\n\\n* **Should I use** `git describe --tags` **or** `git describe --always HEAD` **for obtaining version information?**\\n - In FOSSology we always use :code:`git describe --tags`, no exception whatsoever.\\n\\n* CMake provides a preset configuration for the install path on GNU systems, you can see the description [here](https://cmake.org/cmake/help/v3.10/module/GNUInstallDirs.html) based on the [configuration](https://www.gnu.org/prep/standards/html_node/Directory-Variables.html) suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards.\\n So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.\\n\\n - Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under `/usr/local/share/fossology/` with their individual folders instead of going to `/usr/local/bin/`.\\n - If the same results can be achieved by using the `CMAKE_INSTALL_<dir>` and `CMAKE_INSTALL_PREFIX` then yeah, it will be preferred.\\n\\n### Conclusion and Further Plans\\n\\n* Try adding the version and commit hash info.\\n* Implement writing version files for each build."}]}}')}}]); \ No newline at end of file diff --git a/assets/js/47e56d82.0b57166e.js b/assets/js/47e56d82.0b57166e.js new file mode 100644 index 0000000000..09500c1b9d --- /dev/null +++ b/assets/js/47e56d82.0b57166e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2574],{16025:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var n=t(85893),i=t(11151);const o={title:"Week 10",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},a=void 0,r={id:"2022/reuse/updates/2022-08-16",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-08-16.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-08-16",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-08-16.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 10",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 9",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-09"},next:{title:"Week 11",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-23"}},c={},l=[{value:"Meeting 22",id:"meeting-22",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-22",children:"Meeting 22"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 16th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Discussed with Mentors on approach for the issue - ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - ",(0,n.jsx)(s.code,{children:"detection of the LICENSES/ folder"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Notes after discussion:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Every file in the LICENSES folder will automatically be considered a Declared License once it has been cleared."}),"\n",(0,n.jsx)(s.li,{children:"The feature can be [de]activated via a new option on the Conf page (for each Upload); Feature will be activated by default for all new Uploads."}),"\n",(0,n.jsx)(s.li,{children:"Add a new table in the Summary section of the Upload."}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>r,a:()=>a});var n=t(67294);const i={},o=n.createContext(i);function a(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/49284236.a0c75452.js b/assets/js/49284236.a0c75452.js new file mode 100644 index 0000000000..e9bb3b4641 --- /dev/null +++ b/assets/js/49284236.a0c75452.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[467],{96006:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var t=n(85893),i=n(11151);const l={title:"Week 9",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},o=void 0,r={id:"2021/buildsystem/updates/2021-08-06",title:"Week 9",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-08-06.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-08-06",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-08-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-08-06.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 9",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-30"},next:{title:"Week 10",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-08-13"}},a={},c=[{value:"Meeting 13",id:"meeting-13",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 9 Progress",id:"week-9-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"meeting-13",children:"Meeting 13"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(August 6th, 2021)"})}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"week-9-progress",children:"Week 9 Progress"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Initial CMake testing configuration added."}),"\n",(0,t.jsx)(s.li,{children:"Few tests working, e.g copyright, nomos"}),"\n",(0,t.jsx)(s.li,{children:"Improved packaging configurations"}),"\n",(0,t.jsxs)(s.li,{children:["To test the current progress, follow the instructions ",(0,t.jsx)(s.a,{href:"https://github.com/avinal/FOSSologywiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Is this a necessity that tests must be run as the fossy user? Because when I run tests as me they as for permissions. But proceeds as the fossy user."})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"No this is not required and this should not happen. They run under fossy as they sometimes require writing into /srv/fossology. But if they can run under other users that is an enhancement."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"I am getting a lot of install issues in C/C++ agent tests?"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:" Start 3: delagent_unit_test\n \n 3: Test command: /home/avinal/Documents/my_git/fossology/build/src/delagent/agent_tests/test_delagent\n 3: Test timeout computed to be: 10000000\n 3: install: cannot stat '/home/avinal/Documents/my_git/fossology/build/src/delagent/agent_tests/..//../../install/defconf/Db.conf': No such file or directory\n 3: install: cannot stat '/home/avinal/Documents/my_git/fossology/build/src/delagent/agent_tests/..//VERSION': No such file or directory\n 3: sh: 1: ../../../testing/db/createTestDB.php: not found\n 3: Failed to run ../../../testing/db/createTestDB.php -c /home/avinal/Documents/my_git/fossologbuild/src/delagent/agent_tests/testconf -e, exit code is:127 .\n 3/8 Test #3: delagent_unit_test ...............***Failed 0.02 sec\n"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Not sure about the reason. I was suspecting Makefile but since they are gone now, I think PHP files are calling some shell commands causing this."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Suggestions/Changes from Gaurav for fixing tests."})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["For clib-tests, it needs to be called from PHP file (via PHPUnit) as it requires setting up a dummy repo. Check the ",(0,t.jsx)(s.code,{children:"src/lib/c/test/Makefile"})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["For missing services.xml, the test cases include ",(0,t.jsx)(s.code,{children:"src/lib/php/common-container.php"})," which loads the file. It expects it to be in current dir. Can be solved in two ways"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Create another common-container.php just for test cases with correct paths."}),"\n",(0,t.jsx)(s.li,{children:"Edit the current file and take the help of environment variables. For example, if a test variable is exported in env, find the XML relative to it otherwise continue as normal and this variable can be exported by CMake during the test."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Scheduler tests do need ",(0,t.jsx)(s.code,{children:"fossology_testconfig"})," from Makefile.deps which set up the srv and create test configurations, DB, etc."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Another shell script can be written to do all that and call it from CMake. The PHP file called makes everything required in /tmp so not an issue."}),"\n",(0,t.jsxs)(s.li,{children:["The locations like ",(0,t.jsx)(s.code,{children:"LOG_DIR, FOSSDB_CONF"}),", etc. in CMakeLists.txt can be changed to some other values. I am guessing this is the reason you were asked for the fossy password."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["File ",(0,t.jsx)(s.code,{children:"src/copyright/agent_tests/Functional/cli_test.sh"})," needs to be edited to take paths relative to build dir. It can also be made into a .in file which is generated from CMake? So every path can easily be updated."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"For PHP agents with missing version.php issue, there is a hack possible"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Check ",(0,t.jsx)(s.a,{href:"https://www.php.net/manual/en/function.set-include-path.php",children:"https://www.php.net/manual/en/function.set-include-path.php"})]}),"\n",(0,t.jsx)(s.li,{children:"Another hack will be to use soft links for version.php in the source."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Other PHP issues like ",(0,t.jsx)(s.code,{children:"PHP Fatal error: Uncaught Error: Class 'Fossology\\Lib\\Agent\\Agent' not found"})," can only be solved by editing composer.json before doing composer install (look for autoload: psr-4 )."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["For delagent, pkgagent, mimetype issues, something can be done here: ",(0,t.jsx)(s.a,{href:"https://github.com/avinal/fossology/blob/avinal/feat/testing/src/testing/db/c/libfodbreposysconf.c#L349",children:"https://github.com/avinal/fossology/blob/avinal/feat/testing/src/testing/db/c/libfodbreposysconf.c#L349"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Raise a pull request for all the progress till now."}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Refactor the test source code according to suggestions."}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Implement remaining testing configurations."}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>o});var t=n(67294);const i={},l=t.createContext(i);function o(e){const s=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4986eea2.cf929aec.js b/assets/js/4986eea2.cf929aec.js new file mode 100644 index 0000000000..699b27776b --- /dev/null +++ b/assets/js/4986eea2.cf929aec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[110],{70070:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>n,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>h});var i=t(85893),d=t(11151);const l={title:"Week 4",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},n=void 0,o={id:"2023/rest/updates/samuel/2023-06-22",title:"Week 4",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-06-22.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-06-22",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-06-22.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 4",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 3",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-15"},next:{title:"Week 5",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-29"}},a={},h=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Schedule bulk scan API <code>/uploads/{id}/items/{itemId}/bulk-scan</code>",id:"1-schedule-bulk-scan-api-uploadsiditemsitemidbulk-scan",level:4},{value:"2. Three-pointers API <code>/uploads/{id}/items/{itemId}/prev-next</code>",id:"2-three-pointers-api-uploadsiditemsitemidprev-next",level:4},{value:"Default",id:"default",level:5},{value:"With the <code>withLicenses</code> parameter",id:"with-the-withlicenses-parameter",level:5},{value:"With the <code>noClearing</code> parameter",id:"with-the-noclearing-parameter",level:5},{value:"3. Bulk history API <code>/uploads/{id}/items/{itemId}/bulk-scan</code>",id:"3-bulk-history-api-uploadsiditemsitemidbulk-scan",level:4},{value:"4. Clearing progress API <code>/uploads/{id}/items/{itemId}/clearing-progress</code>",id:"4-clearing-progress-api-uploadsiditemsitemidclearing-progress",level:4},{value:"5. Highlight positions API <code>/uploads/{id}/items/{itemId}/highlight</code>",id:"5-highlight-positions-api-uploadsiditemsitemidhighlight",level:4},{value:"6. License tree-view API <code>/uploads/{id}/items/{itemId}/tree/view</code>",id:"6-license-tree-view-api-uploadsiditemsitemidtreeview",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function r(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",h5:"h5",img:"img",li:"li",p:"p",ul:"ul",...(0,d.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Added the REST API to schedule the bulk scan: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2483",children:"#2483"})]}),"\n",(0,i.jsxs)(s.li,{children:["Added the REST API to handle the three-pointers functionality: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2480",children:"#2480"})]}),"\n",(0,i.jsxs)(s.li,{children:["Added the REST API to retrieve the bulk history of the upload & item: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2481",children:"#2481"})]}),"\n",(0,i.jsxs)(s.li,{children:["Added the REST API to get the clearing progress status of the upload & item: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2494",children:"#2494"})]}),"\n",(0,i.jsxs)(s.li,{children:["Added the REST API to retrieve the positions that should be highlighted in the contents of the file: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2484",children:"#2484"})]}),"\n",(0,i.jsxs)(s.li,{children:["Added the REST API to get the license tree-view of the upload and the item: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2492",children:"#2492"})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,i.jsxs)(s.h4,{id:"1-schedule-bulk-scan-api-uploadsiditemsitemidbulk-scan",children:["1. Schedule bulk scan API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/items/{itemId}/bulk-scan"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"schedule-bulk-scan",src:t(6051).Z+"",width:"1831",height:"397"})}),"\n",(0,i.jsxs)(s.h4,{id:"2-three-pointers-api-uploadsiditemsitemidprev-next",children:["2. Three-pointers API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/items/{itemId}/prev-next"})]}),"\n",(0,i.jsx)(s.h5,{id:"default",children:"Default"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"three-pointers-default",src:t(28296).Z+"",width:"892",height:"581"})}),"\n",(0,i.jsxs)(s.h5,{id:"with-the-withlicenses-parameter",children:["With the ",(0,i.jsx)(s.code,{children:"withLicenses"})," parameter"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"three-pointers-with-licenses",src:t(93294).Z+"",width:"1164",height:"597"})}),"\n",(0,i.jsxs)(s.h5,{id:"with-the-noclearing-parameter",children:["With the ",(0,i.jsx)(s.code,{children:"noClearing"})," parameter"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"three-pointers-no-clearing",src:t(4604).Z+"",width:"1400",height:"534"})}),"\n",(0,i.jsxs)(s.h4,{id:"3-bulk-history-api-uploadsiditemsitemidbulk-scan",children:["3. Bulk history API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/items/{itemId}/bulk-scan"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"bulk-history",src:t(60143).Z+"",width:"1834",height:"756"})}),"\n",(0,i.jsxs)(s.h4,{id:"4-clearing-progress-api-uploadsiditemsitemidclearing-progress",children:["4. Clearing progress API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/items/{itemId}/clearing-progress"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"clearing-progress",src:t(76522).Z+"",width:"1505",height:"298"})}),"\n",(0,i.jsxs)(s.h4,{id:"5-highlight-positions-api-uploadsiditemsitemidhighlight",children:["5. Highlight positions API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/items/{itemId}/highlight"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"highlight-positions",src:t(43550).Z+"",width:"1838",height:"751"})}),"\n",(0,i.jsxs)(s.h4,{id:"6-license-tree-view-api-uploadsiditemsitemidtreeview",children:["6. License tree-view API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/items/{itemId}/tree/view"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"license-tree-view",src:t(40066).Z+"",width:"1112",height:"651"})}),"\n",(0,i.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Add and test the REST API to get licenses histogram for an upload."}),"\n",(0,i.jsx)(s.li,{children:"Add and test the REST API to get edited licenses list for an upload"}),"\n",(0,i.jsx)(s.li,{children:"Add and test the REST API to get the licenses count summary API"}),"\n",(0,i.jsx)(s.li,{children:"Add and test the REST API to get licenses reuse summary API"}),"\n",(0,i.jsx)(s.li,{children:"Add and test the REST API to get all agents for the upload."}),"\n",(0,i.jsx)(s.li,{children:"Add and test the REST API To get the all agents revisions."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,d.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},60143:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/bulk_history-3a95b8187dc7152574b6bb18cd632cfd.png"},76522:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/clearing_progress-f74dcad5df2a77c002cac74cede1e052.png"},43550:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/highlight_positions-28bfaf48c5b9ce1017c5a9723d0e8fe3.png"},40066:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/license_tree_view-9df583156bea34c9552960f27047cf7e.png"},6051:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/schedule_bulk_scan-2b48462b84459bf7dc102adeda0af84e.png"},28296:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/three_pointers_default-79491e6919bd649b5b00aa2212f55ea8.png"},4604:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/three_pointers_no_clearing-8838be0c60e0d51871e8b545f2408dc6.png"},93294:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/three_pointers_with_licenses-b384bc1e5475a5b9819eb8e2130ed0b6.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>n});var i=t(67294);const d={},l=i.createContext(d);function n(e){const s=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:n(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4b1a116b.5bc9bacd.js b/assets/js/4b1a116b.5bc9bacd.js new file mode 100644 index 0000000000..fb442feba8 --- /dev/null +++ b/assets/js/4b1a116b.5bc9bacd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2267],{52077:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>r});var s=t(85893),o=t(11151);const i={sidebar_position:3,title:"Installing scancode"},c=void 0,l={id:"2021/scancode/installation",title:"Installing scancode",description:"\x3c!--",source:"@site/docs/2021/scancode/installation.md",sourceDirName:"2021/scancode",slug:"/2021/scancode/installation",permalink:"/gsoc/docs/2021/scancode/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/installation.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Installing scancode"},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-27"},next:{title:"Copyright UI",permalink:"/gsoc/docs/2021/scancode/copyright"}},a={},r=[];function d(n){const e={a:"a",code:"code",em:"em",li:"li",ol:"ol",p:"p",...(0,o.a)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:"The steps to install scancode-toolkit:"}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Install ",(0,s.jsx)(e.a,{href:"https://scancode-toolkit.readthedocs.io/en/latest/getting-started/install.html#prerequisites",children:"Prerequisites"})]}),"\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.em,{children:"NOTE:"})," scancode supports all Python versions from 3.6 to 3.9 for ",(0,s.jsx)(e.code,{children:"pip"})," installation"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Run ",(0,s.jsx)(e.code,{children:"$ python3 -m pip install --upgrade pip setuptools wheel"})," to install the latest versions of base utilities."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Run ",(0,s.jsx)(e.code,{children:"$ python3 -m pip install scancode-toolkit"})," to install the latest version of ScanCode."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.p,{children:"The steps to uninstall scancode-toolkit:"}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsxs)(e.li,{children:["Run ",(0,s.jsx)(e.code,{children:"$ python3 -m pip uninstall scancode-toolkit"})]}),"\n"]})]})}function p(n={}){const{wrapper:e}={...(0,o.a)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(d,{...n})}):d(n)}},11151:(n,e,t)=>{t.d(e,{Z:()=>l,a:()=>c});var s=t(67294);const o={},i=s.createContext(o);function c(n){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:c(n.components),s.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ba0f0ad.e287a33d.js b/assets/js/4ba0f0ad.e287a33d.js new file mode 100644 index 0000000000..924df64ad0 --- /dev/null +++ b/assets/js/4ba0f0ad.e287a33d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2012],{71181:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>r});var t=n(85893),i=n(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 7",o={id:"2023/laas/updates/2023-07-14",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-07-14.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-07-14",permalink:"/gsoc/docs/2023/laas/updates/2023-07-14",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-07-14.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-07"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-21"}},d={},r=[{value:"Attendees",id:"attendees",level:2},{value:"Updates",id:"updates",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Conclusion and future plan",id:"conclusion-and-future-plan",level:2}];function c(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-7",children:"Week 7"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July, 14, 2023)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"updates",children:"Updates"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Added the tests for the basic user endpoints."}),"\n",(0,t.jsx)(s.li,{children:"Updated the authentication as per the suggestions."}),"\n",(0,t.jsx)(s.li,{children:"Updated the previous pr."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Change the meta to pagination meta for better description."}),"\n",(0,t.jsx)(s.li,{children:"To update the data of spdx id in the database."}),"\n",(0,t.jsx)(s.li,{children:"Need to add the filters in the search database."}),"\n",(0,t.jsx)(s.li,{children:"We can use the inheritance of struct for the database."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion-and-future-plan",children:"Conclusion and future plan"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Add more tests and update the previous pull requests."}),"\n",(0,t.jsx)(s.li,{children:"Do changes as per the suggestion."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>l});var t=n(67294);const i={},a=t.createContext(i);function l(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c75aaac.4c2648ae.js b/assets/js/4c75aaac.4c2648ae.js new file mode 100644 index 0000000000..0814dc1206 --- /dev/null +++ b/assets/js/4c75aaac.4c2648ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2148],{60031:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>h,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var n=t(85893),i=t(11151);const r={title:"Week 3",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},h=void 0,l={id:"2022/reuse/updates/2022-06-27",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-06-27.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-06-27",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-06-27.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 3",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-20"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-04"}},o={},a=[{value:"Meeting 8",id:"meeting-8",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 9",id:"meeting-9",level:2},{value:"Attendees",id:"attendees-1",level:2},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3}];function c(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-8",children:"Meeting 8"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 28th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Mentors reviewed pull request ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2238",children:"#2238"})," and suggested few changes."]}),"\n",(0,n.jsxs)(s.li,{children:["Current REUSE status","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["When running reuse lint, the result is as follows:","\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"Files with copyright information: 4065 / 4360\nFiles with license information: 3302 / 4360\n"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Few doubts were cleared regarding the comment formatting of the ",(0,n.jsx)(s.code,{children:"nomos/agent/split_words"}),", ",(0,n.jsx)(s.code,{children:"nomos/agent/GenCodeCopyright"})," and ",(0,n.jsx)(s.code,{children:"ojo/agent/ojoregex.cc"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"The merge conflict with the base branch was resolved with the help of Gaurav sir."}),"\n",(0,n.jsx)(s.li,{children:"Validated the correct header of License text files."}),"\n",(0,n.jsx)(s.li,{children:"We discussed the problem of bad licenses and missing license reports from reuse.software tools. In the next project meeting, we will try to find a solution."}),"\n",(0,n.jsx)(s.li,{children:"Gaurav sir directed me to start work on the second part of GSOC project from fourth week."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"meeting-9",children:"Meeting 9"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 30th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,n.jsx)(s.h2,{id:"attendees-1",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Implemented all the suggestions proposed by Gaurav sir."}),"\n",(0,n.jsx)(s.li,{children:"I Will work on further files."}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>h});var n=t(67294);const i={},r=n.createContext(i);function h(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c81a1bc.438ac785.js b/assets/js/4c81a1bc.438ac785.js new file mode 100644 index 0000000000..7450c82e3f --- /dev/null +++ b/assets/js/4c81a1bc.438ac785.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2147],{29987:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>h,default:()=>o,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var s=i(85893),r=i(11151);const t={title:"week-07",author:"Aaditya Singh"},h="Meeting 11",l={id:"2024/scheduler/updates/General/2024-06-20",title:"week-07",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/General/2024-06-20.md",sourceDirName:"2024/scheduler/updates/General",slug:"/2024/scheduler/updates/General/2024-06-20",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/General/2024-06-20.md",tags:[],version:"current",frontMatter:{title:"week-07",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-06",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-13"},next:{title:"Week-08",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-27"}},a={},c=[{value:"Participants:",id:"participants",level:2},{value:"Not Present:",id:"not-present",level:2},{value:"Overview",id:"overview",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"meeting-11",children:"Meeting 11"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 20, 2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"participants",children:"Participants:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"not-present",children:"Not Present:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Mentor:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": Shared general updates about the project."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Contributors:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Focused on Semantic Search to find closely related results."}),"\n",(0,s.jsx)(n.li,{children:"Evaluated a semantic transformer and developed a basic license identifier (Demo of current work)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Was absent."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Following discussions with mentors, conducted a gap analysis and worked on the system architecture (Demo of current structure)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Developed SPDX 3.0 JSON format, noting that the validation tool does not support this format (Discussion with Linux community needed by Gaurav)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Completed a UI for license expression including comment acknowledgements and related texts (Demo of current implementation)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Implemented OAUTH through an API and is now working on copyright endpoints for user copyrights (Demo of OAUTH)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Modified the nomos scanner to include byte information, initiated work on custom keyword functionality, and revised GH Action workflow (Significant time reduction)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Added unit tests for APIs related to License, Group, and Upload, and is now focusing on completing license API tests."}),"\n",(0,s.jsx)(n.li,{children:"Exploring FOSSology through YouTube tutorials."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>h});var s=i(67294);const r={},t=s.createContext(r);function h(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:h(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c8d4bbb.9e87d248.js b/assets/js/4c8d4bbb.9e87d248.js new file mode 100644 index 0000000000..08bd46cd30 --- /dev/null +++ b/assets/js/4c8d4bbb.9e87d248.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3369],{5910:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>a,frontMatter:()=>r,metadata:()=>d,toc:()=>h});var i=s(85893),o=s(11151);const r={title:"Week 7",author:"Shruti Agarwal"},n=void 0,d={id:"2021/ui/updates/shruti/2021-07-27",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-07-27.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-07-27",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-07-27.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 6",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-20"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-03"}},l={},h=[{value:"Screenshots",id:"screenshots",level:2},{value:"Fix errors",id:"fix-errors",level:3},{value:"Header hover",id:"header-hover",level:3},{value:"Header active",id:"header-active",level:3},{value:"Header dropdown",id:"header-dropdown",level:3},{value:"Contributions",id:"contributions",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Blank screen is coming on ",(0,i.jsx)(t.a,{href:"https://fossology.github.io/FOSSologyUI/",children:"https://fossology.github.io/FOSSologyUI/"}),", added the public url to the ",(0,i.jsx)(t.code,{children:"deploy.yml"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["Created the ",(0,i.jsx)(t.code,{children:".env"})," file from ",(0,i.jsx)(t.code,{children:".env.sample"})," for the deployment."]}),"\n",(0,i.jsxs)(t.li,{children:["Added the route basename so that later it can also serve on ",(0,i.jsx)(t.code,{children:"localhost/react"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"Added the auth variables needed for login mechanism in env."}),"\n",(0,i.jsx)(t.li,{children:"Fixed the invalid errors in all the pages, due to airbnb style we have converted the error message to new Error class and which was giving invalid errors on the bad requests."}),"\n",(0,i.jsxs)(t.li,{children:["Added the active class to nav-items and changed the dropdown item colour to the theme primary colour instead of bootstrap primary colour.","\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Added the secondary colour to the theme.js for the darker shade of active element."}),"\n",(0,i.jsx)(t.li,{children:"Added the styling in the globalStyle.js for the hover, focus and dropdown."}),"\n",(0,i.jsx)(t.li,{children:"Added the location for the paths in header component."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["Added the ",(0,i.jsx)(t.code,{children:"import-parse"})," property in .eslintrc to resolve the parsing errors."]}),"\n",(0,i.jsx)(t.li,{children:"Fixed the groups api function by removing credentials which is defined in sendRequest."}),"\n",(0,i.jsxs)(t.li,{children:["Vcs page was getting broken on making the request. Closes ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/issues/111",children:"#111"}),".","\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Changed the promise rejection parameter."}),"\n",(0,i.jsx)(t.li,{children:"Changd the retries left property in sendrequest."}),"\n",(0,i.jsx)(t.li,{children:"Returned the function if retries are greater than 0."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.li,{children:"Added the React helmet dependency which also has MIT license."}),"\n",(0,i.jsx)(t.li,{children:"Created the helper component for the customize title on all the pages."}),"\n",(0,i.jsx)(t.li,{children:"Updated all the titles of pages."}),"\n",(0,i.jsx)(t.li,{children:"Fixed the names of api and services functions."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsx)(t.h3,{id:"fix-errors",children:"Fix errors"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"fix-errors",src:s(50476).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"header-hover",children:"Header hover"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"header-hover",src:s(9187).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"header-active",children:"Header active"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"header-active",src:s(60066).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h3,{id:"header-dropdown",children:"Header dropdown"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"header-dropdown",src:s(8881).Z+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/102/commits/497e59c189d6d20722ffa9baecbb547994b3a1fb",children:"fix(gh-pages): added the public url"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/102/commits/767da3b32950cf45284fdc243ac8bfd2d7f4f35b",children:"feat(env): added the env variables for gh-pages"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/102/commits/421b122457e4630159ff5102f1f6b29bee2fd3cd",children:"fix(base-directory): fixed the base directory of all the pages"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/106",children:"feat(env): added the auth variables in env"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/110",children:"fix(errors): fixed the invalid errors"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/114/commits/d76e86c60df684765c22d3f82e363b9c6f5f2657",children:"feat(active-navbar): added the active class to nav items"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/114/commits/314b8eb03e509f78db8e667138d3dbe6ea9e157c",children:"fix(test): update snapshot to for active nav item"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/114/commits/8e0ec6171782c1b8f6cf11c6b299bdfd4685b6d7",children:"feat(navbar): added hover and active styling"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/114/commits/328318c38d2f090d15660fe75b2f4d71bdc195ee",children:"fix(groups): fixed the groups api function"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/118/commits/64ffcf1e5762fd45196563d4e28e3f52eaddc7f9",children:"feat(react-helmet): added the react helmet dependency"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/118/commits/cd0eb7a65ec9552e905ffa7283c730e4979414ec",children:"feat(component): added the Title component"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/118/commits/798474e35601f594fa4fdf23b909811d600c323b",children:"feat(title): Added the customize title to every page"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/118/commits/feec5732160e4da642c8196706d77236d2915976",children:"feat(title): added the title for create license"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/119",children:"fix(api): sanitize the names of api functions"})}),"\n"]})]})}function a(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},50476:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/fixError-1c1b3d3126955950c91c26d2ba353375.png"},60066:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/headerActive-9e8c070b26a266a40e45cb2e1d024e88.png"},8881:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/headerDropdown-404d20bd018c65c42934304f856aa1c6.png"},9187:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/headerHover-ef71a7d8a776e1882f4d8fa47473be30.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>n});var i=s(67294);const o={},r=i.createContext(o);function n(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ef6f78e.7510edc6.js b/assets/js/4ef6f78e.7510edc6.js new file mode 100644 index 0000000000..143d761c2f --- /dev/null +++ b/assets/js/4ef6f78e.7510edc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2200],{6438:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>h,metadata:()=>a,toc:()=>c});var i=s(85893),t=s(11151);const h={sidebar_position:10,title:"Week 10"},r=void 0,a={id:"2022/minutes/04-08-2022",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/minutes/04-08-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/04-08-2022",permalink:"/gsoc/docs/2022/minutes/04-08-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/04-08-2022.md",tags:[],version:"current",sidebarPosition:10,frontMatter:{sidebar_position:10,title:"Week 10"},sidebar:"2022",previous:{title:"Week 9",permalink:"/gsoc/docs/2022/minutes/28-07-2022"},next:{title:"Week 11",permalink:"/gsoc/docs/2022/minutes/11-08-2022"}},l={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function o(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 04-08-2022."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Discussion/KT on database needs to be done by ",(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),". which is planned on next week."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Working on remaining comments my mentors and training a doc to vec modal. as siggested by mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Last week i have modified the text content. was facing some issue with debug and was not getting anything in UI clarified with mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on documentation part and finished. currently working in coping license results from license folder to files. facing some issues with database clarified with mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Finished my exams and worked on token API. facing some cors issue on my browser. clarified my it with mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Since last week im working in getting clearing status of file tree view. currently struck on writing a query. clarified my quesions with mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I was not able to contribute much last week as this the last week of my college. But i have added a confirmation message if someone tries to delete a group."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var i=s(67294);const t={},h=i.createContext(t);function r(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f00ca68.54c5f8d5.js b/assets/js/4f00ca68.54c5f8d5.js new file mode 100644 index 0000000000..130ace314b --- /dev/null +++ b/assets/js/4f00ca68.54c5f8d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2489],{89452:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>t,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=s(85893),h=s(11151);const r={sidebar_position:2,title:"Week 2"},t=void 0,l={id:"2024/minutes/2024-06-06",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-06-06.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-06-06",permalink:"/gsoc/docs/2024/minutes/2024-06-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-06-06.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Week 2"},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/minutes/2024-05-30"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/minutes/2024-06-13"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,h.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Welcome to meeting minutes page for GSoC 2024 at FOSSology 06-06-2024."}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": General updates regarding project."]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),": Proposes to use some grammatical tool like ",(0,i.jsx)(e.a,{href:"https://languagetool.org/",children:"https://languagetool.org/"})," to create the GSoC documentation."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Code to parse comment text of a file from fossology and prompt it to multiple LLM's. LLM is giving license names and also gives multiple licenses, need to cleanup/reorder the data."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Shows short demo on current work."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"For this week i have gone through end-to-end flow and code of safaa project. Created a PPT and presented it to mentors, currently working on scripts to extract data from fossology."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Based on my last discussion with mentors, rewriting the scheduler code from C language to go. Raised a PR for the same."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Also looking into different approaches to finish this."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"As per my discussion with mentors im using the JSON format to convert the license expression and store it to database. Currently working on creating UI for the same."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Finished implementation of OAUTH via API. Currently looking into API upgrade from V1 to V2."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Worked on pulling the line number's of finding. Successfully able to fetch the information, in the integration part i was able to fetch keyword information but facing issues for copyright."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,h.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},11151:(n,e,s)=>{s.d(e,{Z:()=>l,a:()=>t});var i=s(67294);const h={},r=i.createContext(h);function t(n){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(h):n.components||h:t(n.components),i.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f0b91aa.3ec59774.js b/assets/js/4f0b91aa.3ec59774.js new file mode 100644 index 0000000000..c8b198bd47 --- /dev/null +++ b/assets/js/4f0b91aa.3ec59774.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3459],{6288:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>a,contentTitle:()=>t,default:()=>o,frontMatter:()=>h,metadata:()=>l,toc:()=>c});var s=i(85893),r=i(11151);const h={sidebar_position:4,title:"Week 4"},t=void 0,l={id:"2024/minutes/2024-06-20",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-06-20.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-06-20",permalink:"/gsoc/docs/2024/minutes/2024-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-06-20.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Week 4"},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/minutes/2024-06-13"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/minutes/2024-06-27"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,r.a)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:"Welcome to meeting minutes page for GSoC 2024 at FOSSology 20-06-2024."}),"\n",(0,s.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": General updates regarding project."]}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"Worked on Semantic Search which tries to find similar match."}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"Test semantic transformer, and work on basic license identifier.(Demo on current implementation)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"Based on my last discussion with mentors, I have created a gap analysis. and worked on the architecture (Demo on current structure)."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"Worked on generation of SPDX 3.0 JSON format. Validation tool is not compatible with SPDX 3.0 JSON format(Gaurav will speak with linux community regarding this). working on RDF report."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"Finished work on creating UI for license expression. implemented adding comments acknowledgements and text for license expression.(Demo on current implementation)"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"Finished implementation of OAUTH via API(Demo on OAUTH). Currently working on copyright endpoing to get user copyrights."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:"Editing the nomos scanner including byte info(Stuck), Started working on custom keyword part, Change in GH Action Workflow (Working), 4 mints for new workflow earlier 17 secs."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"I have added the unit test cases for API's like License, Group and upload. I will be looking to finish with the license API test cases this week."}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"Looking into youtube videos to understand FOSSology More."}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(d,{...n})}):d(n)}},11151:(n,e,i)=>{i.d(e,{Z:()=>l,a:()=>t});var s=i(67294);const r={},h=s.createContext(r);function t(n){const e=s.useContext(h);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:t(n.components),s.createElement(h.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f7200c3.304e6a77.js b/assets/js/4f7200c3.304e6a77.js new file mode 100644 index 0000000000..85c620ac2f --- /dev/null +++ b/assets/js/4f7200c3.304e6a77.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7250],{96367:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=t(85893),i=t(11151);const r={title:"Week 11",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},o=void 0,a={id:"2022/reuse/updates/2022-08-23",title:"Week 11",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-08-23.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-08-23",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-08-23.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 11",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-16"},next:{title:"Week 12",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-30"}},c={},u=[{value:"Meeting 23",id:"meeting-23",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3}];function l(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-23",children:"Meeting 23"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 23rd, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Currently working on issue ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - Detecting licenses declared in LICENSE file and LICENSES folder."]}),"\n",(0,n.jsx)(s.li,{children:"A few doubts were cleared regarding the above issue."}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>o});var n=t(67294);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51844f27.03b9472a.js b/assets/js/51844f27.03b9472a.js new file mode 100644 index 0000000000..c5084a6af3 --- /dev/null +++ b/assets/js/51844f27.03b9472a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7899],{58692:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var t=n(85893),o=n(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2021/ui/"},r=void 0,a={id:"2021/ui/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2021/ui/index.md",sourceDirName:"2021/ui",slug:"/2021/ui/",permalink:"/gsoc/docs/2021/ui/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2021/ui/"},sidebar:"2021",previous:{title:"First Evaluation",permalink:"/gsoc/docs/2021/scancode/first_evaluation"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-15"}},c={},l=[{value:"Migration of UI @ FOSSology",id:"migration-of-ui--fossology",level:2},{value:"Project Overview",id:"project-overview",level:3},{value:"Objectives",id:"objectives",level:3},{value:"Authors",id:"authors",level:3}];function h(e){const i={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.h2,{id:"migration-of-ui--fossology",children:["Migration of UI @ ",(0,t.jsx)(i.a,{href:"https://github.com/fossology",children:"FOSSology"})]}),"\n",(0,t.jsx)(i.h3,{id:"project-overview",children:"Project Overview"}),"\n",(0,t.jsx)(i.p,{children:"The UI Migration project is an effort focused on generating the new component-based architecture with the integration of the APIs. To make the project more efficient and easily accessible, an entire code base shift from Symfony-Twig to React.js is proposed. React.js features an incrementally adaptable architecture that focuses on declarative rendering and component composition. React.js component system will enable us to organize the current working APIs appropriately."}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Mentors"}),": ",(0,t.jsx)(i.a,{href:"https://github.com/mcjaeger",children:"Michael"}),", ",(0,t.jsx)(i.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),", ",(0,t.jsx)(i.a,{href:"https://github.com/viv9k",children:"Vivek"}),", ",(0,t.jsx)(i.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"}),", ",(0,t.jsx)(i.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})]}),"\n",(0,t.jsx)(i.h3,{id:"objectives",children:"Objectives"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Working on good interactive design, with a modern look."}),"\n",(0,t.jsx)(i.li,{children:"Integrating the APIs to the new component-based UI structure."}),"\n",(0,t.jsx)(i.li,{children:"Seamless routing and page transitions."}),"\n",(0,t.jsx)(i.li,{children:"Giving the power of the node engine to our UI. Making all NPM accessible."}),"\n",(0,t.jsx)(i.li,{children:"Writing detailed \u200b documentation of the project, to make the\ncodebase simpler for other contributors."}),"\n"]}),"\n",(0,t.jsxs)(i.p,{children:["Check out the ",(0,t.jsx)(i.a,{href:"installation",children:"installation steps"})," for the project."]}),"\n",(0,t.jsx)(i.h3,{id:"authors",children:"Authors"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"mailto:mail2shruti.ag@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://www.linkedin.com/in/shruti-ag",children:"Linkedin"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.a,{href:"https://github.com/Aman-Codes",children:"Aman Dwivedi"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"mailto:aman.dwivedi5@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://www.linkedin.com/in/aman-dwivedi",children:"Linkedin"})}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:i}={...(0,o.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,i,n)=>{n.d(i,{Z:()=>a,a:()=>r});var t=n(67294);const o={},s=t.createContext(o);function r(e){const i=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/519b30ff.4db020d4.js b/assets/js/519b30ff.4db020d4.js new file mode 100644 index 0000000000..b219e70b18 --- /dev/null +++ b/assets/js/519b30ff.4db020d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8515],{94972:s=>{s.exports=JSON.parse('{"tag":{"label":"spdx30","permalink":"/gsoc/docs/tags/spdx-30","allTagsPath":"/gsoc/docs/tags","count":6,"items":[{"id":"2024/spdx30/updates/2024-05-07","title":"Community bonding","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-05-07"},{"id":"2024/spdx30/updates/2024-05-28","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-05-28"},{"id":"2024/spdx30/updates/2024-06-04","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-04"},{"id":"2024/spdx30/updates/2024-06-11","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-11"},{"id":"2024/spdx30/updates/2024-06-18","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-18"},{"id":"2024/spdx30/updates/2024-06-25","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-25"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/5287211b.4b45f380.js b/assets/js/5287211b.4b45f380.js new file mode 100644 index 0000000000..da080b399b --- /dev/null +++ b/assets/js/5287211b.4b45f380.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5754],{48339:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=t(85893),i=t(11151);const r={title:"Week 2",author:"Abdelrahman Jamal"},a=void 0,c={id:"2023/copyrights/updates/2023-06-07",title:"Week 2",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-06-07.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-06-07",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-06-07.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 1",permalink:"/gsoc/docs/2023/copyrights/updates/2023-05-31"},next:{title:"Week 3",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-14"}},o={},l=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Refactoring",id:"refactoring",level:3},{value:"Discussion with Team",id:"discussion-with-team",level:3},{value:"Learning",id:"learning",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Incremental Refactoring",id:"incremental-refactoring",level:3},{value:"Post-exams Focus",id:"post-exams-focus",level:3}];function d(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June,07,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsx)(n.h3,{id:"refactoring",children:"Refactoring"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Conducted a refactor of some parts of the copyright code."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussion-with-team",children:"Discussion with Team"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Ayush and Kaushlendra provided feedback on my updates. We concluded that the refactored code might not comprehensively address all edge cases, warranting further modifications."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"learning",children:"Learning"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav provided guidance on how to rebase a branch for squashing commits from the terminal\u2014a valuable lesson after my struggles in the previous week."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,s.jsx)(n.h3,{id:"incremental-refactoring",children:"Incremental Refactoring"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I'll continue with the methodical refactoring of the copyright code, taking it step by step."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"post-exams-focus",children:"Post-exams Focus"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Once my exams conclude, my attention will shift to constructing the dataset. The main challenge lies in accurately determining the inherent copyright script within a given string. To tackle this, I anticipate leveraging Fossology in conjunction with various annotation tools."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>a});var s=t(67294);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/52bd7b70.a296ebb4.js b/assets/js/52bd7b70.a296ebb4.js new file mode 100644 index 0000000000..b71800a485 --- /dev/null +++ b/assets/js/52bd7b70.a296ebb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6482],{16455:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>a});var n=t(85893),o=t(11151);const l={title:"Week 8",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},i=void 0,c={id:"2022/ui/updates/samuel/2022-08-11",title:"Week 8",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-08-11.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-08-11",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-08-11.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 8",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 6 & 7",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-02"},next:{title:"Week 9",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-18"}},r={},a=[{value:"Activities",id:"activities",level:2},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3},{value:"PULL REQUESTS",id:"pull-requests",level:3},{value:"NEXT WEEK'S EXPECTATIONS",id:"next-weeks-expectations",level:3}];function h(e){const s={a:"a",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"BACKEND"}),"\n",(0,n.jsx)(s.p,{children:"i. Provided the tests for the 3 APIs I've been working on."}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Change group member's api: (",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2259",children:"https://github.com/fossology/fossology/pull/2259"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:["Get group member's api: (",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2251",children:"https://github.com/fossology/fossology/pull/2251"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:["list groups that can be delete: (",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2247",children:"https://github.com/fossology/fossology/pull/2247"}),")"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"ii. Fixed the Issue of the multiple upload calls: (Shruti3004/FOSSology-REST-API#2)"}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"FRONTEND"}),"\n",(0,n.jsx)(s.p,{children:"i. Created and integrated manage-group-users PAGE.\nii. Fixed the issue of the multiple upload calls on the frontend.\niii. Provided tests for the fix of Multiple upload calls on the frontend."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"MULTIPLE-CALLS ISSUE:"}),"\n",(0,n.jsx)(s.p,{children:"Request Format:"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"request-1",src:t(66842).Z+"",width:"1158",height:"736"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"request-2",src:t(83302).Z+"",width:"1919",height:"815"})}),"\n",(0,n.jsx)(s.p,{children:"Expected Response:"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"response",src:t(29960).Z+"",width:"913",height:"343"})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"MANAGE-GROUP-USERS PAGE"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"https://user-images.githubusercontent.com/66276301/183613559-6a682fe1-303c-46a1-83f2-d710092a3606.mp4",children:"https://user-images.githubusercontent.com/66276301/183613559-6a682fe1-303c-46a1-83f2-d710092a3606.mp4"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"pull-requests",children:"PULL REQUESTS"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["MULTIPLE-CALLS ISSUE:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2287",children:"https://github.com/fossology/fossology/pull/2287"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/249",children:"https://github.com/fossology/FOSSologyUI/pull/249"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["MANAGE-GROUP-USERS PAGE","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/248",children:"https://github.com/fossology/FOSSologyUI/pull/248"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"next-weeks-expectations",children:"NEXT WEEK'S EXPECTATIONS"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"Add and test the API for fossology Maintenance on the backend."}),"\n",(0,n.jsx)(s.li,{children:"Integrate the fossology Maintenance API on the frontend."}),"\n",(0,n.jsx)(s.li,{children:"Provide tests for the multiple-calls implementation on the backend."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},66842:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/request-c81f9d56a4b76c990db631580fcdead8.png"},83302:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/request2-5aabedbcd90523436adc3eb1b7972c79.png"},29960:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/response-2526028a38e61ff1ad391d610def7311.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>c,a:()=>i});var n=t(67294);const o={},l=n.createContext(o);function i(e){const s=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5403b838.3df7814e.js b/assets/js/5403b838.3df7814e.js new file mode 100644 index 0000000000..b4abaef954 --- /dev/null +++ b/assets/js/5403b838.3df7814e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7282],{15694:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var n=t(85893),i=t(11151);const a={title:"Week 10",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"21st August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 10"]},l=void 0,r={id:"2022/ui/updates/krishna/2022-08-21",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-08-21.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-08-21",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-21",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-08-21.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 10",permalink:"/gsoc/docs/tags/week-10"}],version:"current",frontMatter:{title:"Week 10",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"21st August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 10"]},sidebar:"2022",previous:{title:"Week 9",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-14"},next:{title:"Week 11",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-28"}},o={},d=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"Uploads permssions page",id:"uploads-permssions-page",level:2},{value:"UI Demo",id:"ui-demo",level:2},{value:"PR Link : feat(UI): Upload permissions page UI and API Implementation done #251",id:"pr-link--featui-upload-permissions-page-ui-and-api-implementation-done-251",level:3},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function c(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Sl. No."}),(0,n.jsx)(s.th,{children:"Initial Goals"}),(0,n.jsx)(s.th,{children:"Completed"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"1."}),(0,n.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,n.jsx)(s.td,{children:"Done"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"2."}),(0,n.jsx)(s.td,{children:"Create the upload permissions page in the react UI and implement the APIs"}),(0,n.jsx)(s.td,{children:"Done"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"3."}),(0,n.jsx)(s.td,{children:"Implement the user APIs in the react UI for add and edit user page"}),(0,n.jsx)(s.td,{children:"Not started"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"uploads-permssions-page",children:"Uploads permssions page"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["The UI Implementation of ",(0,n.jsx)(s.code,{children:"Upload Permissions"})," page is done."]}),"\n",(0,n.jsx)(s.li,{children:"I was succesfully able to render all the groups with their respective permissions using a tablular view."}),"\n",(0,n.jsx)(s.li,{children:"The updation of the upload permissions is also working perfectly."}),"\n",(0,n.jsxs)(s.li,{children:["This task included","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Create the static UI."]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Implement data retrieval from html forms."]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Implement the new API in PR ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2275",children:"#2275"}),"."]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Test everything."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"ui-demo",children:"UI Demo"}),"\n",(0,n.jsx)("iframe",{width:"560",height:"315",src:"https://user-images.githubusercontent.com/71918441/184526229-9f333dc6-d573-4b57-9171-80d1bfe30163.mp4",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,n.jsxs)(s.h3,{id:"pr-link--featui-upload-permissions-page-ui-and-api-implementation-done-251",children:["PR Link : ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/251",children:"feat(UI): Upload permissions page UI and API Implementation done #251"})]}),"\n",(0,n.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"This PR is currently in review and if any changes are requested, I'll be solving them in the coming week."}),"\n",(0,n.jsxs)(s.li,{children:["Implementing the user APIs --- ",(0,n.jsx)(s.code,{children:"POST /users"})," and ",(0,n.jsx)(s.code,{children:"PUT /users/{id}"})," in the react UI for add and edit user page respectively."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>r,a:()=>l});var n=t(67294);const i={},a=n.createContext(i);function l(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5493c0e6.45caa5a8.js b/assets/js/5493c0e6.45caa5a8.js new file mode 100644 index 0000000000..0da70eea8f --- /dev/null +++ b/assets/js/5493c0e6.45caa5a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6552],{40545:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>h,metadata:()=>o,toc:()=>a});var t=s(85893),i=s(11151);const h={sidebar_position:1,title:"Week 1"},r=void 0,o={id:"2022/minutes/02-06-2022",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/minutes/02-06-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/02-06-2022",permalink:"/gsoc/docs/2022/minutes/02-06-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/02-06-2022.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Week 1"},sidebar:"2022",previous:{title:"Installation",permalink:"/gsoc/docs/2022/ui/installation"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/minutes/09-06-2022"}},l={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2},{value:"Meetings & Timings for individual projects",id:"meetings--timings-for-individual-projects",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael c Jaeger"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.p,{children:["Welcome to the first updates meeting from ",(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2022/",children:"Tool"})," to track the updates.\nEvery student need to update the weekly progress.\nFor more details refer ",(0,t.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2021/",children:"GSOC 2021"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," explains about the tool."]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Project setup done. Deciding upon two ideas to import dataset. Actively contacting mentors"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Was able to set up project. Couldn't do much as I was busy with exams."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Project setup done contributed few PRs for fossology community(merged). Looking in to reuse project."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Project setup done. Contacting mentors, understanding Spasht. Need to work on open PR's from fossology community."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Done with project set up. Contributed few PRs. Contacted Shruthi for quesions and understanding."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Sent/shared a document with mentors about what needs to be done. Installed and set up project done. Doing some research on project."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Project setup done. Fixed some issues for UI project. Looking in to the code to find more issues."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"I've done setting up the project ."}),"\n",(0,t.jsx)(n.li,{children:"I've mastered the front-end (FossologyUI) project structure."}),"\n",(0,t.jsx)(n.li,{children:"I've got familiar to your flow of the project built on top of PHP Slim framework.\nand I went across through your APIs documentation and saw the done and the ones still on the queue."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meetings--timings-for-individual-projects",children:"Meetings & Timings for individual projects"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"UI Project - every tuesday 8:00 pm to 9:00 pm IST (4:30 pm to 5:30 pm europe)."}),"\n",(0,t.jsx)(n.li,{children:"Spasht - every wednesday 4:30 pm to 5:00 pm IST."}),"\n",(0,t.jsx)(n.li,{children:"Reuse - every tuesday 5:30 pm to 6:00 pm IST."}),"\n",(0,t.jsx)(n.li,{children:"Atarashi - every tuesday 5:00 pm to 5:30 pm IST."}),"\n",(0,t.jsx)(n.li,{children:"Introduction of Project - every thursday 5:00 pm to 5:30pm for Feng, 2:30 pm to 3:00pm in India. # , 11:00 am to 11:30 am in Europe."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>r});var t=s(67294);const i={},h=t.createContext(i);function r(e){const n=t.useContext(h);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/54fdf17a.ade91eab.js b/assets/js/54fdf17a.ade91eab.js new file mode 100644 index 0000000000..40ed87dcd8 --- /dev/null +++ b/assets/js/54fdf17a.ade91eab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4064],{72862:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>r});var i=s(85893),n=s(11151);const a={title:"Week 12",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},l=void 0,o={id:"2022/ui/updates/samuel/2022-09-08",title:"Week 12",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-09-08.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-09-08",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-09-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-09-08.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 12",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-25"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-09-1"}},d={},r=[{value:"CONTRIBUTIONS",id:"contributions",level:2},{value:"FRONTEND",id:"frontend",level:2},{value:"<strong>1.Created the page for importing the csv-license file.</strong>",id:"1created-the-page-for-importing-the-csv-license-file",level:3},{value:"<strong>SCREENSHOTS</strong>",id:"screenshots",level:4},{value:"2. Finalized the changes that were caused by changing the upload file request",id:"2-finalized-the-changes-that-were-caused-by-changing-the-upload-file-request",level:3},{value:"3. Updated Manage-group-users page",id:"3-updated-manage-group-users-page",level:3},{value:"BACKEND",id:"backend",level:2},{value:"1. Finalized the backend work of fixing the multiple Upload API calls.",id:"1-finalized-the-backend-work-of-fixing-the-multiple-upload-api-calls",level:3},{value:"2. Finalized Delete Admin License Candidate API",id:"2-finalized-delete-admin-license-candidate-api",level:3},{value:"NEXT WEEK'S EXPECTATIONS",id:"next-weeks-expectations",level:2}];function c(e){const t={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"contributions",children:"CONTRIBUTIONS"}),"\n",(0,i.jsx)(t.h2,{id:"frontend",children:"FRONTEND"}),"\n",(0,i.jsx)(t.h3,{id:"1created-the-page-for-importing-the-csv-license-file",children:(0,i.jsx)(t.strong,{children:"1.Created the page for importing the csv-license file."})}),"\n",(0,i.jsx)(t.p,{children:"This week i've been creating the new page for importing the license which was not available on the UI project."}),"\n",(0,i.jsx)(t.h4,{id:"screenshots",children:(0,i.jsx)(t.strong,{children:"SCREENSHOTS"})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"import-csv-license",src:s(77292).Z+"",width:"1920",height:"868"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Pull request:"}),(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2287",children:"fix(API): merge multiple upload-api calls into one"})]}),"\n",(0,i.jsx)(t.h3,{id:"2-finalized-the-changes-that-were-caused-by-changing-the-upload-file-request",children:"2. Finalized the changes that were caused by changing the upload file request"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"uploaded-request-changed",src:s(36456).Z+"",width:"1158",height:"736"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Pull request:"})," ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/249",children:"fix(MULTIPLE-API-CALLS) merge multiple upload-api calls into one"})]}),"\n",(0,i.jsx)(t.h3,{id:"3-updated-manage-group-users-page",children:"3. Updated Manage-group-users page"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"managage-group-users",src:s(76785).Z+"",width:"1920",height:"869"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Pull request:"})," ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/248",children:"feat(UI): added manage group-users page "})]}),"\n",(0,i.jsx)(t.h2,{id:"backend",children:"BACKEND"}),"\n",(0,i.jsx)(t.h3,{id:"1-finalized-the-backend-work-of-fixing-the-multiple-upload-api-calls",children:"1. Finalized the backend work of fixing the multiple Upload API calls."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Pull request:"})," ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/259",children:"feat(UI): Import CSV-license file PAGE "})]}),"\n",(0,i.jsx)(t.h3,{id:"2-finalized-delete-admin-license-candidate-api",children:"2. Finalized Delete Admin License Candidate API"}),"\n",(0,i.jsx)(t.p,{children:"The API should return the message if the delete operation was not successful."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Pull request"}),": ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2298",children:"feat(API): delete admin-license candidate"})]}),"\n",(0,i.jsx)(t.h2,{id:"next-weeks-expectations",children:"NEXT WEEK'S EXPECTATIONS"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Continuous modification of my PRs that are still on the queue."}),"\n",(0,i.jsx)(t.li,{children:"Write my final GSOC documentation for the closing evaluation."}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},76785:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/manage_group_users_updated-0d0b2d8aa1c2767e8cd479a738ce26f7.png"},77292:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/importCsvLicenseFile-e893b6794604d89bd3d263dd5bc75e26.png"},36456:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/uploadedRequestFormatChanged-c81f9d56a4b76c990db631580fcdead8.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>l});var i=s(67294);const n={},a=i.createContext(n);function l(e){const t=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),i.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/552c3796.83b3d417.js b/assets/js/552c3796.83b3d417.js new file mode 100644 index 0000000000..db3520c9c4 --- /dev/null +++ b/assets/js/552c3796.83b3d417.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9291],{48515:e=>{e.exports=JSON.parse('{"tag":{"label":"reuse","permalink":"/gsoc/docs/tags/reuse","allTagsPath":"/gsoc/docs/tags","count":14,"items":[{"id":"2022/reuse/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-02"},{"id":"2022/reuse/updates/2022-06-13","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-13"},{"id":"2022/reuse/updates/2022-08-16","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-16"},{"id":"2022/reuse/updates/2022-08-23","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-23"},{"id":"2022/reuse/updates/2022-08-30","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-30"},{"id":"2022/reuse/updates/2022-09-06","title":"Week 13","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-09-06"},{"id":"2022/reuse/updates/2022-06-20","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-20"},{"id":"2022/reuse/updates/2022-06-27","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-06-27"},{"id":"2022/reuse/updates/2022-07-04","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-04"},{"id":"2022/reuse/updates/2022-07-11","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-11"},{"id":"2022/reuse/updates/2022-07-18","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-18"},{"id":"2022/reuse/updates/2022-07-25","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-07-25"},{"id":"2022/reuse/updates/2022-08-02","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-02"},{"id":"2022/reuse/updates/2022-08-09","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/reuse/updates/2022-08-09"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/55e1dc83.2888f4ec.js b/assets/js/55e1dc83.2888f4ec.js new file mode 100644 index 0000000000..955c1791d8 --- /dev/null +++ b/assets/js/55e1dc83.2888f4ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1519],{32816:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>a,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var t=s(85893),o=s(11151);const i={title:"Week 9",author:"Aman Dwivedi"},r=void 0,d={id:"2021/ui/updates/aman/2021-08-10",title:"Week 9",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-08-10.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-08-10",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-08-10.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-03"},next:{title:"Week 10",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-17"}},l={},c=[{value:"Screenshot of added pages",id:"screenshot-of-added-pages",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Updated the Fossology version API pull request"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Updated the styling of the group dropdown to highlight the currently selected group"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added border to login form in dark theme"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Created copyright table using ",(0,t.jsx)(n.code,{children:"react-table"})," library"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added select option, pagination, sorting features"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added a cross button to deactivate the copyright statement"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Created test cases for the copyright table"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added export report option on the browse page"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Update the backend code to expose the Content-Disposition header required for downloading a file"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"screenshot-of-added-pages",children:"Screenshot of added pages"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"copyright table",src:s(2666).Z+"",width:"1516",height:"670"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"login form border",src:s(7663).Z+"",width:"869",height:"305"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"highlighted current user group",src:s(43944).Z+"",width:"376",height:"517"})}),"\n",(0,t.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/141",children:"feat(fossology-version): use fossology version from info API"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/142",children:"fix(highlight-group): highlight the current selected group"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/143",children:"fix(login-form): add border to form in dark theme"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/147",children:"feat(copyright): add copyright table"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/150",children:"feat(report): add export report option on browse page"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/14",children:"fix(headers): expose Content-Disposition header"})}),"\n"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},2666:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/copyrightTable-256df0b56bce95d94e411df7d4fd00f3.gif"},43944:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/highlightedCurrentGroup-9dc2a34210c7ee8e8ef3f334f49ba7e1.png"},7663:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/loginFormBorder-e403d31885f4987c1d730cdc8e763b13.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>r});var t=s(67294);const o={},i=t.createContext(o);function r(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/55f0866e.9a594f12.js b/assets/js/55f0866e.9a594f12.js new file mode 100644 index 0000000000..0a7eb1b697 --- /dev/null +++ b/assets/js/55f0866e.9a594f12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2759],{9174:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var i=s(85893),t=s(11151);const o={title:"Community Bonding",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"4th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","community bonding"]},r=void 0,l={id:"2022/ui/updates/krishna/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-06-02.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-06-02",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"community bonding",permalink:"/gsoc/docs/tags/community-bonding"}],version:"current",frontMatter:{title:"Community Bonding",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"4th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","community bonding"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/ayush/2022-06-02"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-20"}},d={},a=[{value:"Weekly Meeting 1 <em>(June 2nd, 2022)</em>",id:"weekly-meeting-1-june-2nd-2022",level:2},{value:"Discussions",id:"discussions",level:3},{value:"Contributions so far",id:"contributions-so-far",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"UI Meeting 1 <em>(June 7th, 2022)</em>",id:"ui-meeting-1-june-7th-2022",level:2},{value:"Discussions",id:"discussions-1",level:3},{value:"Contributions",id:"contributions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3},{value:"Weekly Meeting 2 <em>(June 9th, 2022)</em>",id:"weekly-meeting-2-june-9th-2022",level:2},{value:"Discussions",id:"discussions-2",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-2",level:3}];function c(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.h2,{id:"weekly-meeting-1-june-2nd-2022",children:["Weekly Meeting 1 ",(0,i.jsx)(n.em,{children:"(June 2nd, 2022)"})]}),"\n",(0,i.jsx)(n.p,{children:"GSOC 2022 first weekly update meeting during community bonding period."}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Different topics were discussed related to the projects."}),"\n",(0,i.jsx)(n.li,{children:"Separate project discussion with mentors were done."}),"\n",(0,i.jsx)(n.li,{children:"Different meeting timings for separate project discussions were decided."}),"\n",(0,i.jsxs)(n.li,{children:["Timing for the reactUI project updates is decided to be on ",(0,i.jsx)(n.strong,{children:"Tuesday, 8:00pm to 9:00pm IST"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Docusaurus tool was explained by the mentors for documenting the weekly updates for fossology."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"contributions-so-far",children:"Contributions so far"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/209",children:[(0,i.jsx)(n.strong,{children:"#209"})," Removal of credentials for the REST API"]})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/196",children:[(0,i.jsx)(n.strong,{children:"#196"})," Disabled deletion for default users"]})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"During the remaining time of community bonding I will be learning more about php development so that the learning curve can be reduced later when I'll start the development of the REST APIs later in the coding period."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"There are small fixes that needs to be done on the reactUI project to make the dev environment clean. SO I'll be putting some PRs related to that soon."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h2,{id:"ui-meeting-1-june-7th-2022",children:["UI Meeting 1 ",(0,i.jsx)(n.em,{children:"(June 7th, 2022)"})]}),"\n",(0,i.jsx)(n.p,{children:"GSOC 2022 first UI update meeting during community bonding period."}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Refactored few components where I found styling issues."}),"\n",(0,i.jsx)(n.li,{children:"Learning more about the codebase, routing and layouts."}),"\n",(0,i.jsx)(n.li,{children:"Proposed an enhancement regarding the use of async-await wherever possible."}),"\n",(0,i.jsx)(n.li,{children:"Learning more about testing in javascript."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/215",children:[(0,i.jsx)(n.strong,{children:"#215"})," update(ui): Design related fixes (Navbar and browse page)"]})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/187",children:[(0,i.jsx)(n.strong,{children:"#187"})," fix (components/widgets/input): Warning while loading delete user page"]})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I will be creating an excel sheet to list down all the UI related requirements along with the asignees and the status for each tasks so that each task can be tracked regularly by mentors."}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h2,{id:"weekly-meeting-2-june-9th-2022",children:["Weekly Meeting 2 ",(0,i.jsx)(n.em,{children:"(June 9th, 2022)"})]}),"\n",(0,i.jsx)(n.p,{children:"GSOC 2022 second weekly update meeting during community bonding period."}),"\n",(0,i.jsx)(n.h3,{id:"discussions-2",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Updates were discussed from each project."}),"\n",(0,i.jsxs)(n.li,{children:["It was decided that ",(0,i.jsx)(n.strong,{children:"Anupam Sir"})," will take a session on creating a REST API for the UI Team."]}),"\n",(0,i.jsxs)(n.li,{children:["I mentioned that the creation of the excel sheet for the UI Task Updates is completed.\nHere is the ",(0,i.jsx)(n.a,{href:"https://docs.google.com/spreadsheets/d/1w37AlnCd8ld8ZWC9RocC9E0Foif9M0WWGT_fichsPTs/edit?usp=sharing",children:"Link"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-2",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["I will move on to creating the admin pages.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add User"}),"\n",(0,i.jsx)(n.li,{children:"Edit User Account"}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>r});var i=s(67294);const t={},o=i.createContext(t);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/578b1197.2302b917.js b/assets/js/578b1197.2302b917.js new file mode 100644 index 0000000000..a5a26c4750 --- /dev/null +++ b/assets/js/578b1197.2302b917.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4821],{64404:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>h,toc:()=>o});var n=t(85893),a=t(11151);const i={title:"Week 3",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,h={id:"2022/atarashi/updates/2022-06-27",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-06-27.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-06-27",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-06-27.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 3",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-20"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-04"}},l={},o=[{value:"Meeting 5",id:"meeting-5",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 30th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Raised ",(0,n.jsx)(s.strong,{children:"PR's"})," on both ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva"})," and\n",(0,n.jsx)(s.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/atarashi/pull/100",children:"Add agent for logistic regression model"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation/pull/5",children:"feat(package): Add logreg package"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Started working on creating the packages for the trained model. For example the folder structure for\n",(0,n.jsx)(s.strong,{children:"LogisticRegression"})," model should look like:"]}),"\n",(0,n.jsxs)(s.p,{children:["\u2514\u2500\u2500 logreg\n\u251c\u2500\u2500 MANIFEST.in\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 setup.py\n\u2514\u2500\u2500 src\n\u251c\u2500\u2500 LICENSE\n\u251c\u2500\u2500 logreg\n\u2502 \u251c\u2500\u2500 data\n\u2502 \u2502 \u2514\u2500\u2500 logreg\n\u2502 \u2514\u2500\u2500 ",(0,n.jsx)(s.strong,{children:"init"}),".py\n\u2514\u2500\u2500 model_train.py"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Implemented ",(0,n.jsx)(s.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html",children:"Linear support vector machine"}),"\nmodel on dataset and got the accuracy of ",(0,n.jsx)(s.strong,{children:"63%"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Will create the ",(0,n.jsx)(s.a,{href:"https://pypi.org/",children:"python package"})," for both models that\nhas been implemented till now."]}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>h,a:()=>r});var n=t(67294);const a={},i=n.createContext(a);function r(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5a8545f2.7d2508e8.js b/assets/js/5a8545f2.7d2508e8.js new file mode 100644 index 0000000000..4f5b9c1966 --- /dev/null +++ b/assets/js/5a8545f2.7d2508e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8245],{35540:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>r});var i=s(85893),c=s(11151);const o={title:"Week 6",author:"Sarita Singh"},t=void 0,d={id:"2021/scancode/updates/2021-07-13",title:"Week 6",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-07-13.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-07-13",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Sarita Singh"},sidebar:"2021",previous:{title:"Week 5",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-06"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-20"}},l={},r=[{value:"Coding Week 6",id:"coding-week-6",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 5 Progress",id:"week-5-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,c.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-6",children:"Coding Week 6"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-13"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-5-progress",children:"Week 5 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Added ScanCodeFindings table in Copyright Browser on UI."}),"\n",(0,i.jsx)(n.li,{children:"Working on populating this table with scancode_copyright data."}),"\n",(0,i.jsxs)(n.li,{children:["Created tables for ",(0,i.jsx)(n.code,{children:"scancode_copyright_event"})," and ",(0,i.jsx)(n.code,{children:"scancode_author_event"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Added copyright and license text in source code."}),"\n",(0,i.jsx)(n.li,{children:"Added comments for source code."}),"\n",(0,i.jsxs)(n.li,{children:["Merged ",(0,i.jsx)(n.code,{children:"LicenseMatch"})," to ",(0,i.jsx)(n.code,{children:"Match"})," class"]}),"\n",(0,i.jsxs)(n.li,{children:["Instead of using ",(0,i.jsx)(n.code,{children:"vector"})," of ",(0,i.jsx)(n.code,{children:"LicenseMatch"})," class, using ",(0,i.jsx)(n.code,{children:"map"})," of type Match class in ",(0,i.jsx)(n.code,{children:"scancode_wrapper"})," to save parsed value of result scanned by ScanCode."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Instead of using RuleBits as done by decider, using flags as scancode CLI options conventions would be nice."}),"\n",(0,i.jsxs)(n.li,{children:["These could be various flags:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"-l -> license"}),"\n",(0,i.jsx)(n.li,{children:"-c -> copyright and holder"}),"\n",(0,i.jsx)(n.li,{children:"-e -> email in the file, and"}),"\n",(0,i.jsx)(n.li,{children:"-u -> URL in the file"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["These flags would be used in ",(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/blob/feat/newagent/scancode-toolkit/src/scancode/agent/scancode_wrapper.cc#L76",children:"ScanCode command"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Gaurav suggested to look for ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/maintagent/ui/maintagent.php#L86",children:"Maintagent UI"}),". It uses flags ( more verbose )."]}),"\n",(0,i.jsx)(n.li,{children:"It would be nice to implement ScanCode for CLI, can do this after once done with copyright/author UI."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add flags for ScanCode command to keep it verbose and match with scancode CLI flags."}),"\n",(0,i.jsx)(n.li,{children:"Try to complete copyright UI by next meet."}),"\n",(0,i.jsx)(n.li,{children:"Next task would be to implement ScanCode for CLI options once done with copyright/author UI."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,c.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>t});var i=s(67294);const c={},o=i.createContext(c);function t(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:t(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5aaea04f.a6109f4c.js b/assets/js/5aaea04f.a6109f4c.js new file mode 100644 index 0000000000..499e65d4b4 --- /dev/null +++ b/assets/js/5aaea04f.a6109f4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5203],{94166:i=>{i.exports=JSON.parse('{"tag":{"label":"react","permalink":"/gsoc/docs/tags/react","allTagsPath":"/gsoc/docs/tags","count":35,"items":[{"id":"2022/ui/updates/ayush/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/ayush/2022-06-02"},{"id":"2022/ui/updates/krishna/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-02"},{"id":"2022/ui/updates/samuel/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-06-02"},{"id":"2022/ui/updates/soham/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-06-02"},{"id":"2022/ui/updates/krishna/2022-06-20","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-20"},{"id":"2022/ui/updates/samuel/2021-06-24","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2021-06-24"},{"id":"2022/ui/updates/soham/2022-06-24","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-06-24"},{"id":"2022/ui/updates/krishna/2022-08-21","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-21"},{"id":"2022/ui/updates/samuel/2022-08-25","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-25"},{"id":"2022/ui/updates/samuel/2022-09-1","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-09-1"},{"id":"2022/ui/updates/soham/2022-08-08","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-08"},{"id":"2022/ui/updates/krishna/2022-08-28","title":"Week 11","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-28"},{"id":"2022/ui/updates/krishna/2022-09-04","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-09-04"},{"id":"2022/ui/updates/samuel/2022-09-08","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-09-08"},{"id":"2022/ui/updates/krishna/2022-06-27","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-27"},{"id":"2022/ui/updates/samuel/2022-06-30","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-06-30"},{"id":"2022/ui/updates/soham/2022-07-3","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-3"},{"id":"2022/ui/updates/krishna/2022-07-04","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-04"},{"id":"2022/ui/updates/samuel/2022-07-07","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-07-07"},{"id":"2022/ui/updates/soham/2022-07-7","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-7"},{"id":"2022/ui/updates/krishna/2022-07-11","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-11"},{"id":"2022/ui/updates/samuel/2022-07-14","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-07-14"},{"id":"2022/ui/updates/soham/2022-07-8","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-8"},{"id":"2022/ui/updates/krishna/2022-07-17","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-17"},{"id":"2022/ui/updates/samuel/2022-07-21","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-07-21"},{"id":"2022/ui/updates/soham/2022-07-9","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-9"},{"id":"2022/ui/updates/krishna/2022-07-24","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-24"},{"id":"2022/ui/updates/samuel/2022-08-02","title":"Week 6 & 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-02"},{"id":"2022/ui/updates/soham/2022-08-01","title":"Week 6 and 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-01"},{"id":"2022/ui/updates/krishna/2022-07-31","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-31"},{"id":"2022/ui/updates/krishna/2022-08-07","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-07"},{"id":"2022/ui/updates/samuel/2022-08-11","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-11"},{"id":"2022/ui/updates/soham/2022-08-05","title":"Week 8 and 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-05"},{"id":"2022/ui/updates/krishna/2022-08-14","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-14"},{"id":"2022/ui/updates/samuel/2022-08-18","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/samuel/2022-08-18"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/5bb82e60.3b5d47f6.js b/assets/js/5bb82e60.3b5d47f6.js new file mode 100644 index 0000000000..02510d55b3 --- /dev/null +++ b/assets/js/5bb82e60.3b5d47f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6681],{24408:(t,s,e)=>{e.r(s),e.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>n,metadata:()=>a,toc:()=>c});var o=e(85893),i=e(11151);const n={title:"Week 12",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},l=void 0,a={id:"2023/rest/updates/samuel/2023-08-17",title:"Week 12",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-08-17.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-08-17",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-08-17.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 12",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 11",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-10"},next:{title:"Community bonding",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-05-11"}},r={},c=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Import the obligation list from CSV API <code>/license/obligation/import-csv</code>",id:"1-import-the-obligation-list-from-csv-api-licenseobligationimport-csv",level:4},{value:"2. Export the obligation list as CSV API <code>/license/obligation/export-csv</code>",id:"2-export-the-obligation-list-as-csv-api-licenseobligationexport-csv",level:4},{value:"3. FOSSology API configurations to support V1 Rest APIs",id:"3-fossology-api-configurations-to-support-v1-rest-apis",level:4},{value:"How to test",id:"how-to-test",level:4}];function h(t){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["Added the REST API to Import the obligation list from CSV: ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2563",children:"#2563"})]}),"\n",(0,o.jsxs)(s.li,{children:["Added the REST API to Export the obligation list as CSV ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2574",children:"#2574"})]}),"\n",(0,o.jsxs)(s.li,{children:["Enhanced the FOSSology API configurations to support V1 Rest APIs: ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2576",children:"#2576"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,o.jsxs)(s.h4,{id:"1-import-the-obligation-list-from-csv-api-licenseobligationimport-csv",children:["1. Import the obligation list from CSV API ",(0,o.jsx)(s.code,{children:"/license/obligation/import-csv"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"import-obligation-list",src:e(23679).Z+"",width:"1496",height:"517"})}),"\n",(0,o.jsxs)(s.h4,{id:"2-export-the-obligation-list-as-csv-api-licenseobligationexport-csv",children:["2. Export the obligation list as CSV API ",(0,o.jsx)(s.code,{children:"/license/obligation/export-csv"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"export-obligation-list",src:e(9929).Z+"",width:"1495",height:"544"})}),"\n",(0,o.jsx)(s.h4,{id:"3-fossology-api-configurations-to-support-v1-rest-apis",children:"3. FOSSology API configurations to support V1 Rest APIs"}),"\n",(0,o.jsx)(s.h4,{id:"how-to-test",children:"How to test"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsxs)(s.strong,{children:["1. Add this block of code in the ",(0,o.jsx)(s.code,{children:"getInfo"})," method from ",(0,o.jsx)(s.code,{children:"InfoController"}),":"]})}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"update-get-info",src:e(49067).Z+"",width:"680",height:"274"})}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.strong,{children:"2. Call the Version 2 API"})}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"call-version2-api",src:e(89861).Z+"",width:"1504",height:"321"})}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.strong,{children:"3. Call the Version 1 API"})}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"call-version1-api",src:e(38290).Z+"",width:"1502",height:"561"})})]})}function d(t={}){const{wrapper:s}={...(0,i.a)(),...t.components};return s?(0,o.jsx)(s,{...t,children:(0,o.jsx)(h,{...t})}):h(t)}},9929:(t,s,e)=>{e.d(s,{Z:()=>o});const o=e.p+"assets/images/export_obligation_list-a167c6fa51dbe9b16cadca406476e875.png"},23679:(t,s,e)=>{e.d(s,{Z:()=>o});const o=e.p+"assets/images/import_obligation_list-3256323ac0919a90446572cbae45bb5f.png"},49067:(t,s,e)=>{e.d(s,{Z:()=>o});const o=e.p+"assets/images/how_to_test_1-ae0a1ea41f454243e02204a15e57e602.png"},89861:(t,s,e)=>{e.d(s,{Z:()=>o});const o=e.p+"assets/images/how_to_test_2-f567b95182715cfe7d09eae072448448.png"},38290:(t,s,e)=>{e.d(s,{Z:()=>o});const o=e.p+"assets/images/how_to_test_3-01cd60fed982c3068708c21964641ec1.png"},11151:(t,s,e)=>{e.d(s,{Z:()=>a,a:()=>l});var o=e(67294);const i={},n=o.createContext(i);function l(t){const s=o.useContext(n);return o.useMemo((function(){return"function"==typeof t?t(s):{...s,...t}}),[s,t])}function a(t){let s;return s=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:l(t.components),o.createElement(n.Provider,{value:s},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.0c4238df.js b/assets/js/5e95c892.0c4238df.js new file mode 100644 index 0000000000..00579d07a0 --- /dev/null +++ b/assets/js/5e95c892.0c4238df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9661],{41892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>o});r(67294);var c=r(36905),u=r(8264),a=r(35281),n=r(18790),t=r(46040),l=r(85893);function o(e){return(0,l.jsx)(u.FG,{className:(0,c.Z)(a.k.wrapper.docsPages),children:(0,l.jsx)(t.Z,{children:(0,n.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5efb33e7.76f8a2d6.js b/assets/js/5efb33e7.76f8a2d6.js new file mode 100644 index 0000000000..cba27fd63c --- /dev/null +++ b/assets/js/5efb33e7.76f8a2d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2664],{46182:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>a,frontMatter:()=>c,metadata:()=>d,toc:()=>l});var i=s(85893),t=s(11151);const c={title:"Community bonding",author:"Aaditya Singh"},o=void 0,d={id:"2024/scheduler/updates/2023-05-30",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/2023-05-30.md",sourceDirName:"2024/scheduler/updates",slug:"/2024/scheduler/updates/2023-05-30",permalink:"/gsoc/docs/2024/scheduler/updates/2023-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/2023-05-30.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-10",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12"},next:{title:"week-01",permalink:"/gsoc/docs/2024/scheduler/updates/2024-05-09"}},r={},l=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Discussion:",id:"discussion",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Discussion:",id:"discussion-1",level:3},{value:"Week 1 Activities",id:"week-1-activities",level:2}];function u(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 7, 2024)"})}),"\n",(0,i.jsx)(n.h3,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Mentors and contributors introduced themselves."}),"\n",(0,i.jsx)(n.li,{children:"Agreed on the time and platform for general weekly meetings."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 9, 2024)"})}),"\n",(0,i.jsx)(n.h3,{id:"discussion-1",children:"Discussion:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Mentors emphasized the importance of communication in open source."}),"\n",(0,i.jsx)(n.li,{children:"Held a general Q&A session."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"week-1-activities",children:"Week 1 Activities"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 9, 2024 - May 15, 2024)"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Explored parts of the codebase related to the project and UI."}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>o});var i=s(67294);const t={},c=i.createContext(t);function o(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5f91dd84.7e6b555b.js b/assets/js/5f91dd84.7e6b555b.js new file mode 100644 index 0000000000..a259d998a0 --- /dev/null +++ b/assets/js/5f91dd84.7e6b555b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1964],{73095:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=i(85893),t=i(11151);const o={sidebar_position:13,title:"Week 10"},l=void 0,r={id:"2023/minutes/2023-08-17",title:"Week 10",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-08-17.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-08-17",permalink:"/gsoc/docs/2023/minutes/2023-08-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-08-17.md",tags:[],version:"current",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"Week 10"},sidebar:"2023",previous:{title:"Week 9",permalink:"/gsoc/docs/2023/minutes/2023-08-10"},next:{title:"Week 11",permalink:"/gsoc/docs/2023/minutes/2023-08-24"}},h={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/kaushl2208",children:"Kaushlendra Pratap Singh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Completed project documentation for GSoC model."}),"\n",(0,s.jsx)(n.li,{children:"Looking for low hanging fruits."}),"\n",(0,s.jsxs)(n.li,{children:["Found specific cases like ",(0,s.jsx)(n.code,{children:"copyright <name>"})," which is missidentified. NER can help."]}),"\n",(0,s.jsx)(n.li,{children:"Will be working for edge cases using NER. But pretrained models are not accurate enough in detecting name and orgs."}),"\n",(0,s.jsx)(n.li,{children:"Looking for smaller pre-trained models to use."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Working on Obligation endpoints. Some changes suggested by mentors on endpoint name."}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"GET"})," api is working, working on ",(0,s.jsx)(n.code,{children:"DELETE"}),". Will continue work on create and edit endpoints."]}),"\n",(0,s.jsx)(n.li,{children:"Next endpoints to work on will be IPRA/Keyword, etc."}),"\n",(0,s.jsx)(n.li,{children:"Following the v2 guidelines for new endpoints."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Raised PR for ScanCode improvements ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2569",children:"#2569"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"The idea is to invoke ScanCode API only once for the entire upload."}),"\n",(0,s.jsxs)(n.li,{children:["Working for final report ",(0,s.jsx)(n.a,{href:"https://github.com/its-sushant/GSoC-23/tree/main",children:"available here"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Made changes on Audit, continuing work on Obligations."}),"\n",(0,s.jsx)(n.li,{children:"Showed demo of updated the audit and changes endpoint."}),"\n",(0,s.jsxs)(n.li,{children:["Created data structures for obligations, had questions about the endpoints","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Following endpoints will be required for obligation:","\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Create Obligation (with optional list of associated licenses)."}),"\n",(0,s.jsx)(n.li,{children:"Edit the obligation"}),"\n",(0,s.jsx)(n.li,{children:"Delete the obligation"}),"\n",(0,s.jsx)(n.li,{children:"Add new licenses to associated license list of the obligation."}),"\n",(0,s.jsx)(n.li,{children:"Remove licenses from associated license list of the obligation."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>l});var s=i(67294);const t={},o=s.createContext(t);function l(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5fb82b8f.9da07fa0.js b/assets/js/5fb82b8f.9da07fa0.js new file mode 100644 index 0000000000..56d76e2ad5 --- /dev/null +++ b/assets/js/5fb82b8f.9da07fa0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5376],{45850:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var i=s(85893),t=s(11151);const r={sidebar_position:9,title:"Week 6"},o=void 0,l={id:"2023/minutes/2023-07-06",title:"Week 6",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-07-06.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-07-06",permalink:"/gsoc/docs/2023/minutes/2023-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-07-06.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"Week 6"},sidebar:"2023",previous:{title:"Week 5",permalink:"/gsoc/docs/2023/minutes/2023-06-29"},next:{title:"Week 7",permalink:"/gsoc/docs/2023/minutes/2023-07-20"}},h={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/HastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Done authentication for endpoints."}),"\n",(0,i.jsxs)(n.li,{children:["Added auth for all endpoints.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Suggestion is to add authentication for non ",(0,i.jsx)(n.code,{children:"GET"})," endpoints like create license, update, get user, create users, etc."]}),"\n",(0,i.jsx)(n.li,{children:"The endpoints to get all licenses, license by shortname, search license should not have authentication."}),"\n",(0,i.jsxs)(n.li,{children:["Please check response status code and response body should have same code (like ",(0,i.jsx)(n.code,{children:"401"}),")."]}),"\n",(0,i.jsx)(n.li,{children:"Cleanup the code a bit."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Merge conflict resolution required for ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/LicenseDb/pull/11",children:"#11"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Tried to generate dataset using FOSSology (instead of ChatGPT)."}),"\n",(0,i.jsx)(n.li,{children:"Scanned opensource projects to get data. But needed manual annotation, which is time consuming."}),"\n",(0,i.jsxs)(n.li,{children:["Could use ",(0,i.jsx)(n.a,{href:"https://github.com/nexB/scancode-toolkit",children:"scancode-toolkit"})," instead to annotate copyrights instead."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Focused on updating PR with changes requested."}),"\n",(0,i.jsxs)(n.li,{children:["Working on new endpoints for Customize page. Created ",(0,i.jsx)(n.code,{children:"GET"})," endpoint, had discussion with mentor and will incorporate the changes suggested."]}),"\n",(0,i.jsx)(n.li,{children:"Worked on Conf endpoints as well. Need review from mentors."}),"\n",(0,i.jsxs)(n.li,{children:["Made the changes to have pagination in Copyright fetch endpoint ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/2475",children:"#2475"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Suggestion from Avinal is to add some more descriptions to the issues created for the REST API project.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Could work more on the title (they currently have only short names)."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Create endpoints for Standard License Comments and Acknowledgements."}),"\n",(0,i.jsx)(n.li,{children:"Working on endpoint for Candidate license Merge and Dashboards."}),"\n",(0,i.jsx)(n.li,{children:"Presented how the current pages looks like in the UI and what different endpoints will be needed to achieve the same results."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>o});var i=s(67294);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5fe8cd37.3e2d6933.js b/assets/js/5fe8cd37.3e2d6933.js new file mode 100644 index 0000000000..0cf5370875 --- /dev/null +++ b/assets/js/5fe8cd37.3e2d6933.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7633],{82512:a=>{a.exports=JSON.parse('{"tag":{"label":"license as a service","permalink":"/gsoc/docs/tags/license-as-a-service","allTagsPath":"/gsoc/docs/tags","count":12,"items":[{"id":"2023/laas/updates/2023-06-02","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-02"},{"id":"2023/laas/updates/2023-06-09","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-09"},{"id":"2023/laas/updates/2023-06-16","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-16"},{"id":"2023/laas/updates/2023-06-23","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-23"},{"id":"2023/laas/updates/2023-06-30","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-30"},{"id":"2023/laas/updates/2023-07-07","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-07"},{"id":"2023/laas/updates/2023-07-14","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-14"},{"id":"2023/laas/updates/2023-07-21","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-21"},{"id":"2023/laas/updates/2023-07-28","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-28"},{"id":"2023/laas/updates/2023-08-04","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-08-04"},{"id":"2023/laas/updates/2023-05-11","title":"Community bonding","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-05-11"},{"id":"2023/laas/finalevaluation","title":"Final Evaluation","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/finalevaluation"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/60a71940.b3a4a6bc.js b/assets/js/60a71940.b3a4a6bc.js new file mode 100644 index 0000000000..e945f80c47 --- /dev/null +++ b/assets/js/60a71940.b3a4a6bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4516],{37265:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>t,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>h});var r=n(85893),i=n(11151);const a={title:"Week 1",author:"Shreya"},t="Coding Week-1 Meeting",o={id:"2021/minerva/updates/2021-06-15",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-06-15.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-06-15",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-06-15.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Shreya"},sidebar:"2021",previous:{title:"Week 0",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-22"}},c={},h=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:2},{value:"Week 1 Progress",id:"week-1-progress",level:2},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function l(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h1,{id:"coding-week-1-meeting",children:"Coding Week-1 Meeting"}),"\n",(0,r.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"To handle Regex expansion - approaches were discussed."}),"\n",(0,r.jsx)(s.li,{children:"The First approach was to generate random characters generated from .{0,30}. This was discarded because it won't\r\nprovide semantic meaning to generated texts."}),"\n",(0,r.jsx)(s.li,{children:"Second, to skip the character generation portion but it will hamper similarity matching algorithms based on distances. So it was also discarded."}),"\n",(0,r.jsx)(s.li,{children:"Third approach to generate meaningful sentences using python library and licenses vocabulary."}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"week-1-progress",children:"Week 1 Progress"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["Extracted License header and regex from STRINGS.in file using ",(0,r.jsx)(s.a,{href:"https://colab.research.google.com/drive/1I0LGz_yrhPeKzc8NBWv_2OMmo5A-wSvm?usp=sharing",children:"extractregex()"})]}),"\n",(0,r.jsxs)(s.li,{children:["935 datasets of Motosoto licenses saved in drive in which regex expansion isn't considered : ",(0,r.jsx)(s.a,{href:"https://drive.google.com/drive/u/2/folders/1zvConH7W2oyQozwfPa-ZUHr2aWJcSPaU",children:"Drive link"})]}),"\n",(0,r.jsxs)(s.li,{children:["Regex Expansion - here are the expansions for the special macros in STRINGS.in file: ",(0,r.jsx)(s.a,{href:"https://github.com/fossology/fossology/blob/9053f619aaab5e59ed37bdbf86f2a2969f8c76de/src/nomos/agent/GENSEARCHDATA#L82-L83",children:"regex_expansion"})]}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.code,{children:"sed -e 's/ =FEW= /.{0,30}/g' -e 's/ =SOME= /.{0,60}/g' -e 's/ =ANY= /.*/g' \\ -e 's/=YEAR=/(19|20)[0-9][0-9][ ,-]+/g'"})}),"\n",(0,r.jsxs)(s.ol,{start:"4",children:["\n",(0,r.jsxs)(s.li,{children:["To handle regex expansion 3 approaches were discussed which can be found in this ",(0,r.jsx)(s.a,{href:"https://colab.research.google.com/drive/1SBO6rC5kAx07X5-XgnH67y6NXHxnfhMN?authuser=2#scrollTo=O3P2KIWNGX0a",children:"colab"})]}),"\n",(0,r.jsxs)(s.li,{children:["Worksamples : ",(0,r.jsx)(s.a,{href:"https://colab.research.google.com/drive/1I0LGz_yrhPeKzc8NBWv_2OMmo5A-wSvm?authuser=2",children:"ExtractRegex"}),", ",(0,r.jsx)(s.a,{href:"https://colab.research.google.com/drive/1wLmO6D4o5BPL1cT2UxSeFqk0HNa4S8PM?usp=sharing",children:"ExtractRough"}),", ",(0,r.jsx)(s.a,{href:"https://colab.research.google.com/drive/1SBO6rC5kAx07X5-XgnH67y6NXHxnfhMN?authuser=2#scrollTo=O3P2KIWNGX0a",children:"GeneratingLicenses"})]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"To work on 3rd approach and generate words that follow a sequence."}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>t});var r=n(67294);const i={},a=r.createContext(i);function t(e){const s=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/60d9b5fd.a26f7025.js b/assets/js/60d9b5fd.a26f7025.js new file mode 100644 index 0000000000..bb209acff6 --- /dev/null +++ b/assets/js/60d9b5fd.a26f7025.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9113],{32985:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>h,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var i=s(85893),r=s(11151);const t={title:"week-04",author:"Aaditya Singh"},h="Meeting 6",c={id:"2024/scheduler/updates/Discussion/2024-05-31",title:"week-04",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/Discussion/2024-05-31.md",sourceDirName:"2024/scheduler/updates/Discussion",slug:"/2024/scheduler/updates/Discussion/2024-05-31",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/Discussion/2024-05-31.md",tags:[],version:"current",frontMatter:{title:"week-04",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-10",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-07-11"},next:{title:"week-06",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14"}},l={},d=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Contributor",id:"contributor",level:3},{value:"Current Scheduler Design",id:"current-scheduler-design",level:4},{value:"Alignment with Documentation",id:"alignment-with-documentation",level:3},{value:"New Scheduler Design",id:"new-scheduler-design",level:4},{value:"Trade-offs",id:"trade-offs",level:4},{value:"Effectiveness of New Design",id:"effectiveness-of-new-design",level:3},{value:"Addressing FOSSology Issue",id:"addressing-fossology-issue",level:3},{value:"Wfx Project Approach",id:"wfx-project-approach",level:3},{value:"Goals for the Week",id:"goals-for-the-week",level:3}];function o(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 31, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,i.jsx)(n.h3,{id:"contributor",children:"Contributor"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Focused on framing the current scheduler by studying the Job Scheduler ",(0,i.jsx)(n.code,{children:"wiki"})," ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/wiki/Job-Scheduler",children:"Documentation"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"current-scheduler-design",children:"Current Scheduler Design"}),"\n",(0,i.jsx)(n.p,{children:"The schematic from the documentation provides an architectural overview of the current Job Scheduler:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"CurrentDesign",src:s(72070).Z+"",width:"765",height:"288"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Architectural Overview:"})}),"\n",(0,i.jsx)(n.p,{children:"The design is based on a client-server model, featuring:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Scheduler Port"}),": Serves as the communication hub between clients and the scheduler."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Main Thread"}),": Responsible for job queuing, allocation, and event management."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Worker Threads"}),": Implement specific tasks asynchronously, enhancing throughput and response times."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Key Components:"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Scheduler"}),": Manages all job scheduling operations and acts as the primary interface for job requests."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Asynchronous Workers"}),": Improve processing time by handling tasks in parallel."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Logging and Monitoring"}),": Provides integrated systems for real-time monitoring and issue troubleshooting."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"alignment-with-documentation",children:"Alignment with Documentation"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Confirmed alignment with the current architecture of the job scheduler."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"new-scheduler-design",children:"New Scheduler Design"}),"\n",(0,i.jsx)(n.p,{children:"The revised design focuses on a more efficient multithreaded approach:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"NewDesign",src:s(46789).Z+"",width:"607",height:"585"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Architectural Overview:"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Main Thread"}),": Coordinates with various components and manages task execution."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Worker Thread"}),": Manages interactions between different services to prevent conflicts."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Event Queue"}),": Ensures proper handling of system-level events and error logging."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Key Components:"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Scheduler"}),": Uses a round-robin technique to manage tasks, ensuring efficient CPU time distribution."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Queue Storage"}),": Manages tasks dynamically to adapt to workload changes."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"trade-offs",children:"Trade-offs"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Feature"}),(0,i.jsx)(n.th,{children:"Old Job Scheduler"}),(0,i.jsx)(n.th,{children:"New Job Scheduler"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Maintainability"}),(0,i.jsx)(n.td,{children:"Easier"}),(0,i.jsx)(n.td,{children:"More challenging"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Monitoring"}),(0,i.jsx)(n.td,{children:"Centralized"}),(0,i.jsx)(n.td,{children:"Decentralized"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Resource Management"}),(0,i.jsx)(n.td,{children:"Static"}),(0,i.jsx)(n.td,{children:"Dynamic"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"effectiveness-of-new-design",children:"Effectiveness of New Design"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Suggests a finite state machine architecture might be more suitable given the complexity, as it facilitates easier tracking and management."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"addressing-fossology-issue",children:"Addressing FOSSology Issue"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/issues/2742",children:"#2742"})}),": Problem with incorrect MIME type recognition for text files."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),': Error found due to the "Ignore SCM files" option affecting MIME type recognition.']}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"wfx-project-approach",children:"Wfx Project Approach"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": Expressed interest in holding an internal discussion about the ",(0,i.jsx)(n.a,{href:"https://github.com/siemens/wfx",children:"wfx"})," project approach."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"goals-for-the-week",children:"Goals for the Week"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Contributor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Goals include rewriting the existing C code to Go and implementing a queue in Golang."]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},46789:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/arch_ver.01-8c8c978ac3068d7508a4cecce69fea8b.jpg"},72070:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/c_arch-d1ca92e8b9c2cad3d510dabc21986f63.jpg"},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>h});var i=s(67294);const r={},t=i.createContext(r);function h(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:h(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/617ad78a.f37e9dfb.js b/assets/js/617ad78a.f37e9dfb.js new file mode 100644 index 0000000000..fe39bdab15 --- /dev/null +++ b/assets/js/617ad78a.f37e9dfb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8595],{26868:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var i=t(85893),s=t(11151);const l={title:"Week 6",author:"Abdelrahman Jamal"},a="Meeting 6",o={id:"2024/license-detection/updates/2024-07-04",title:"Week 6",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-07-04.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-07-04",permalink:"/gsoc/docs/2024/license-detection/updates/2024-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-07-04.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-27"},next:{title:"Week 7",permalink:"/gsoc/docs/2024/license-detection/updates/2024-07-11"}},r={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Integration of Semantic Search with LLMs",id:"integration-of-semantic-search-with-llms",level:3},{value:"Revised Approach",id:"revised-approach",level:3},{value:"Key Findings",id:"key-findings",level:3},{value:"Conclusions and Next Steps",id:"conclusions-and-next-steps",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July 4,2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsx)(n.h3,{id:"integration-of-semantic-search-with-llms",children:"Integration of Semantic Search with LLMs"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Initial Attempt"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Prompt: The initial prompt focused on providing text and metadata to the LLM for license identification."}),"\n",(0,i.jsx)(n.li,{children:"Issues: The LLM attempted to match all provided lines to a license, even when many lines were clearly irrelevant to licensing."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Initial Prompt"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"[Task]\nYou are provided with text extracted from a file, along with potential license matches identified by a semantic search tool.\nYour task is to carefully analyze the provided text and metadata to determine the actual software license(s) present in the original file.\nOut of the 10 provided lines, not all matches will be correct or relevant, so focus on the most relevant lines in your analysis.\n\n[Metadata Explanation]\nThe metadata provided for each line is a tuple containing four elements:\n * **Line:** The actual line of text extracted from the file.\n * **Potential License Match:** The name of a license that the semantic search tool believes the line might belong to.\n * **License ID:** The SPDX identifier of the potential license match.\n * **Matched License Text:** The specific text within the potential license that the line was matched to.\n\n[Guidelines]\n1. **License Identification:** If a license is found, clearly state its name and its corresponding SPDX identifier (e.g., MIT License, SPDX-License-Identifier: MIT). If multiple licenses are found, list them all.\n2. **Evidence and Reasoning (Focus on Relevance and Clarity):**\n * For each identified license, extract the specific text snippet(s) from the provided text that confirm its presence. Include surrounding context if it helps clarify the license's applicability. Prioritize the most relevant lines of text.\n * Explain why the identified license is the most likely match, taking into account the potential license matches and the matched license text provided in the metadata.\n * Only consider matches that are clear and obviously correct. The semantic search tool will always attempt to match lines to licenses, but these matches are not always accurate.\n3. **Override Semantic Search:** If the semantic search tool's suggested match seems incorrect, feel free to disregard it and rely on your own knowledge and analysis to determine the correct license. Provide a clear explanation of why you chose a different license.\n4. **Exclude Irrelevant Information:**\n * Disregard copyright notices and statements and lines of code as they do not indicate the software license.\n * Focus only on text that is found in licenses or clearly identifies licenses.\n5. **No License Scenario:** If no license is detected in the text, explicitly state \"No software license found.\"\n6. **Ambiguity:** If the license cannot be confidently determined due to ambiguity or conflicting information, clearly state this and provide an explanation.\n7. **Response Format:** Provide the results in the following format:\n * **Licenses = [list of identified licenses]**\n * **SPDX-IDs = [list of corresponding SPDX identifiers]**\n\n If no licenses are found, both lists should be empty:\n * **Licenses = []**\n * **SPDX-IDs = []**\n\n[Text and Metadata]\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Outcome: The LLM tried too hard to relate irrelevant lines to licenses, resulting in many false positives."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"revised-approach",children:"Revised Approach"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Second Attempt"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Prompt: Changed the task to identify relevant lines before determining licenses."}),"\n",(0,i.jsx)(n.li,{children:"Issues: Reduced the number of irrelevant lines identified, but the problem of false positives persisted."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Second Prompt"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'[Task]\nFrom the following tuples, select those that are relevant to software licensing and ignore the rest.\nA relevant tuple is a tuple that contains a line of text that is relevant and can be used to identify a license.\n\n[Tuples]\nEach tuple consists of three elements:\n 1. **Line:** The actual line of text extracted from the file. This is the element you need to evaluate for relevance to software licensing.\n 2. **Potential License Match:** The name of a license that the semantic search tool suggests the line might belong to (provided for reference).\n 3. **License ID:** The SPDX identifier of the potential license match (provided for reference).\n\n[Guidelines]\n1. **Select License-Specific Lines:** Choose only lines that:\n * Explicitly mention license terms\n * Directly quote from known license texts\n * Include specific license references or titles.\n\n2. **Ignore Irrelevant Lines:**\n * Disregard lines that do not explicitly mention license terms.\n * Ignore copyright notices, code snippets, comments, and general documentation.\n * Ignore code documentation lines that seem to be documenting code or just general instructions or information.\n * Do not select lines that are general descriptions, code, or comments unrelated to license terms.\n\n3. **No License:** If no license is found, state "No software license found."\n4. **Ambiguity:** If uncertain, explain the ambiguity.\n5. **Response Format:**\n * **Relevant Lines = [list of relevant lines]**\n * **Licenses = [list of identified licenses from relevant lines]**\n * **SPDX-IDs = [list of corresponding SPDX identifiers from relevant lines]**\n\n[Text and Metadata]\n'})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Outcome: The LLM still included irrelevant lines in its output, indicating a persistent issue with following the prompt guidelines."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"key-findings",children:"Key Findings"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Performance Issues: Despite detailed prompts, the LLMs struggled to correctly identify relevant lines and accurately match licenses."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"RAG Exploration: Suggested by Kaushl, Retrieval-Augmented Generation (RAG) may provide a more robust solution to improve accuracy in license identification."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusions-and-next-steps",children:"Conclusions and Next Steps"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Improve Semantic Search: Continue refining the semantic search approach for better initial filtering of potential license lines."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"RAG Implementation: Investigate and implement RAG to enhance the LLM's ability to accurately identify relevant lines and match licenses."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Further Prompt Engineering: Experiment with additional prompt variations to improve LLM performance."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Performance Metrics: Establish metrics to evaluate the effectiveness of the integrated approach and analyze the results for further improvements."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>a});var i=t(67294);const s={},l=i.createContext(s);function a(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/61dfadde.e124e4ca.js b/assets/js/61dfadde.e124e4ca.js new file mode 100644 index 0000000000..c38c5d0508 --- /dev/null +++ b/assets/js/61dfadde.e124e4ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5168],{18849:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>a});var s=i(85893),r=i(11151);const t={sidebar_position:1,title:"Introduction",slug:"/2024/scheduler/"},o=void 0,c={id:"2024/scheduler/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/scheduler/index.md",sourceDirName:"2024/scheduler",slug:"/2024/scheduler/",permalink:"/gsoc/docs/2024/scheduler/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/scheduler/"},sidebar:"2024",previous:{title:"Google Summer of Code Proposals 2024",permalink:"/gsoc/docs/2024/GSoC-projects"},next:{title:"week-04",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-05-30"}},l={},a=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"Architecture Overview",id:"architecture-overview",level:3},{value:"What should be done?",id:"what-should-be-done",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,s.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"mailto:singh.aaditya889@gmail.com",children:"Email"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://linkedin.com/in/aadi-singh",children:"LinkedIn"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://twitter.com/__Aadityasingh",children:"Twitter"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,s.jsx)(n.p,{children:"Scheduler overhaul"}),"\n",(0,s.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,s.jsxs)(n.p,{children:["This project aims to enhance the job scheduling capabilities of ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology",children:"FOSSology"})," by transitioning from a C-based implementation to a Go-based system. The overhaul focuses on leveraging Go's modern language features to improve concurrency, performance, and maintainability. This transition addresses the scalability and system ",(0,s.jsx)(n.em,{children:"throughput"})," challenges in the current scheduler."]}),"\n",(0,s.jsx)(n.h3,{id:"architecture-overview",children:"Architecture Overview"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"C-architecture",src:i(72070).Z+"",width:"765",height:"288"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"The Current architecture"})," utilises the a multi-threaded approach to manage job scheduling & execution.It is structured around several key ",(0,s.jsx)(n.em,{children:"components"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Main Thread"}),": Acts as the scheduler's control unit, managing worker threads and overseeing system operations like resource allocation and health monitoring."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Job Execution Queue"}),": Holds and manages incoming job requests, facilitating efficient job processing and priority control."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Worker Threads"}),": Executes jobs from the queue under the main thread\u2019s management, optimizing resource use and performance."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Scheduler Logic"}),": Determines the execution order of jobs based on priority and resource availability, ensuring systematic and efficient processing."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Database Interaction"}),": Handles storage of job logs and results, supporting tracking, auditing, and data persistence."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Error Handling Mechanism"}),": Manages job execution errors to ensure stability and prevent system-wide impacts from failures."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Resource Allocation"}),": Distributes resources across jobs and threads to avoid contention and ensure efficient execution."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Key Challenges"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Concurrency and Synchronization"}),": Ensuring that multiple worker threads operate without interfering with each other requires meticulous management of resources and synchronization."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Efficiency and Throughput"}),": The system must optimize the processing of jobs to minimize wait times and maximize the throughput of the scheduler."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Scalability"}),": As the number of jobs increases, the system must scale appropriately to handle the increased load without degradation in performance."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Flexibility"}),": Adapting to varied job types and changing operational conditions while maintaining performance and reliability."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,s.jsx)(n.p,{children:"What are the plans for the project?"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Refactor Existing Code"}),": Transitioning the existing C codebase to Go, restructuring components to fit the Go idiom."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Why Go?"})}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Concurrency and Performance"}),": Go's native goroutine and channel-based concurrency model is highly efficient for processes that require concurrent execution, which is critical for job scheduling."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Memory Safety"}),": Automatic memory management and garbage collection in Go reduce the risk of memory-related errors, a common challenge in C due to its manual memory handling."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Simplicity and Productivity"}),": Go's clean and concise syntax, along with its powerful standard library, enables rapid development and easier maintenance compared to the verbose and complex C code."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Robust Tooling"}),": The Go toolchain provides out-of-the-box support for testing, formatting, and documentation, enhancing development workflow and product quality."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Cross-Platform Compatibility"}),": Go simplifies the build process with its strong support for cross-platform compilation, making it easier to manage and deploy on various systems without code changes."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Optimize Concurrency Handling"}),": Implementing a robust concurrency model using goroutines and channels to handle multiple jobs efficiently."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"How it would be achieved ?"})}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.em,{children:"new scheduler architecture"})," will utilise:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"architecture",src:i(81145).Z+"",width:"1097",height:"747"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Go Routines for Task Management"}),": Efficiently handling multiple jobs in parallel to optimize resource usage."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Channels for Communication"}),": Using channels to manage job queues and worker communication, ensuring thread-safe operations."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Modular Design"}),": Structuring the scheduler with clear separation of concerns, allowing for easier updates and maintenance."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["To ensure consistency and maintainability of the codebase, the following ",(0,s.jsx)(n.em,{children:"coding standards"})," will be applied:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Format and Style"}),": using ",(0,s.jsx)(n.code,{children:"gofmt"})," and ",(0,s.jsx)(n.code,{children:"golint"})," for formatting and linting the code."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Error Handling"}),": Follow Go's idiomatic way of error handling. Always check for errors where they can occur and handle them gracefully."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Commenting and Documentation"}),": Write clear comments for all public functions and methods, using Godoc conventions. Document all packages and provide examples where necessary."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Concurrency Practices"}),": Use goroutines and channels appropriately. Avoid common pitfalls like race conditions by using synchronization primitives from the ",(0,s.jsx)(n.code,{children:"sync"})," package when needed."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Testing"}),": Write comprehensive unit tests for all components using Go's built-in ",(0,s.jsx)(n.code,{children:"testing"})," package. Aim for a high level of test coverage to ensure reliability and facilitate future changes."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Enhance Error Handling"}),": Utilizing Go's built-in error handling to create a more reliable and fault-tolerant scheduler."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Integrate with Existing Systems"}),": Ensuring the new Go-based scheduler integrates seamlessly with the current FOSSology ecosystem."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Test and Deploy"}),": Thoroughly test the new system for performance and reliability before full deployment."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Document the System"}),": Provide comprehensive documentation to support future development and use of the scheduler."]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},72070:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/c_arch-d1ca92e8b9c2cad3d510dabc21986f63.jpg"},81145:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/golang_arch-845b2fcaba867fd8c16c3061cf774283.png"},11151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>o});var s=i(67294);const r={},t=s.createContext(r);function o(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/634ef2d6.d3a1c6a9.js b/assets/js/634ef2d6.d3a1c6a9.js new file mode 100644 index 0000000000..14b90d0530 --- /dev/null +++ b/assets/js/634ef2d6.d3a1c6a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7705],{33437:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>h,metadata:()=>l,toc:()=>c});var s=i(85893),t=i(11151);const h={title:"Community bonding",author:"Abdelrahman Jamal"},r="Meeting 1",l={id:"2023/copyrights/updates/2023-05-11",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-05-11.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-05-11",permalink:"/gsoc/docs/2023/copyrights/updates/2023-05-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-05-11.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Introduction",permalink:"/gsoc/docs/2023/copyrights/"},next:{title:"Week 1",permalink:"/gsoc/docs/2023/copyrights/updates/2023-05-31"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Attendees:",id:"attendees-1",level:2},{value:"Discussion:",id:"discussion-1",level:2},{value:"Attendees:",id:"attendees-2",level:2},{value:"Discussion:",id:"discussion-2",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May,11,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,s.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Introductions of all the contributors and mentors."}),"\n",(0,s.jsx)(n.li,{children:"The meeting time for the general meeting, as well as the project-specific meetings, were decided."}),"\n",(0,s.jsx)(n.li,{children:"My project's weekly meeting time is Wednesday at 11:30 UTC (17:00 IST)."}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May,18,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees-1",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion-1",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I asked about extending my project's timeline to the one on the GSoC dashboard. Gaurav asked me to contact him, Shaheem or Anupam on Slack/Email about that."}),"\n",(0,s.jsx)(n.li,{children:"Informed everyone about my final exams' schedule and the fact that I will not be able to do much work during that time. Everyone was very understanding."}),"\n",(0,s.jsx)(n.li,{children:"I'll contact Kaushlendra by next week to have a meeting about the project."}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.strong,{children:"I should contact my mentors regarding the dependencies that my project will use to ensure that there are no license conflicts."})}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May,25,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees-2",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion-2",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"As I was studying for exams I wasn't able to do much in the week preceding the meeting."}),"\n",(0,s.jsx)(n.li,{children:"Informed everyone that I'll be meeting with my mentors tomorrow to discuss my project in more detail."}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.strong,{children:["Gaurav suggested watching the ",(0,s.jsx)(n.a,{href:"https://youtu.be/TZqU5ZALI7U",children:"FOSSology workflow YouTube video"})," to give us a better idea about how the tool works."]})}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var s=i(67294);const t={},h=s.createContext(t);function r(e){const n=s.useContext(h);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/64da718d.43876fae.js b/assets/js/64da718d.43876fae.js new file mode 100644 index 0000000000..c4683ee74d --- /dev/null +++ b/assets/js/64da718d.43876fae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9094],{72309:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var n=t(85893),i=t(11151);const r={title:"Week 10",author:"Shreya Singh"},a="Coding Week-10 Meeting",o={id:"2021/minerva/updates/2021-08-17",title:"Week 10",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-08-17.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-08-17",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-08-17.md",tags:[],version:"current",frontMatter:{title:"Week 10",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Week 9",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-10"},next:{title:"Installation",permalink:"/gsoc/docs/2021/minerva/installation"}},l={},h=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week-10 Progress",id:"week-10-progress",level:3}];function d(e){const s={a:"a",h1:"h1",h3:"h3",li:"li",ol:"ol",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"coding-week-10-meeting",children:"Coding Week-10 Meeting"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"To fix filepaths, remove duplicate scripts and hardcoded paths, update Readme and weekly reports after which the data generation repository could be integrated to Fossology"}),"\n",(0,n.jsxs)(s.li,{children:["Push all the licenses generated to repo and test different approaches using ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyML/",children:"https://github.com/fossology/FOSSologyML/"})]}),"\n",(0,n.jsx)(s.li,{children:"Integrating the Repo under Fossology."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"week-10-progress",children:"Week-10 Progress"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["Fixed the ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva-Dataset"})," filepaths, imports, duplicated codes."]}),"\n",(0,n.jsx)(s.li,{children:"Shifted licenses download from Requests to urllib."}),"\n",(0,n.jsx)(s.li,{children:"Updated Readme,Documentation and related files for final evaluation."}),"\n",(0,n.jsx)(s.li,{children:"Added a README.md to all folders which do not contain Python scripts"}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>a});var n=t(67294);const i={},r=n.createContext(i);function a(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6540906a.6323037f.js b/assets/js/6540906a.6323037f.js new file mode 100644 index 0000000000..870289d395 --- /dev/null +++ b/assets/js/6540906a.6323037f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2597],{91271:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>t,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=s(85893),h=s(11151);const r={sidebar_position:7,title:"Week 7"},t=void 0,l={id:"2024/minutes/2024-07-11",title:"Week 7",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-07-11.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-07-11",permalink:"/gsoc/docs/2024/minutes/2024-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-07-11.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Week 7"},sidebar:"2024",previous:{title:"Week 6",permalink:"/gsoc/docs/2024/minutes/2024-07-04"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/rest/"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,h.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Welcome to Minutes of Meeting page for GSoC 2024 at FOSSology happened on 04-07-2024."}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": General updates regarding project. Explained the importance of the Weekly Progress Reports."]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Worked on LLM, Different models are now being tested with the General Statements."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Test LLM results on given test files from nomos. ideas to implement/gather acknowledgements and obligations."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Started coding in Go for the scheduler created the database file."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"JSON format is done, JSON-LD validation is on going."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"RDF reports are generated. Working on tag-value report."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Working on REUSE."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Worked on endpoints to support ScanCode copyrights."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Jobs Endpoint, Pull request is there. (Unit test cases are failing)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Working on implemention of some standard for fossology action"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Finalising the additional test cases for Controllers and Models including permission, license, agents."}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,h.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},11151:(n,e,s)=>{s.d(e,{Z:()=>l,a:()=>t});var i=s(67294);const h={},r=i.createContext(h);function t(n){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(h):n.components||h:t(n.components),i.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/66259119.b4084bbf.js b/assets/js/66259119.b4084bbf.js new file mode 100644 index 0000000000..3fa98fc37c --- /dev/null +++ b/assets/js/66259119.b4084bbf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9956],{98935:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>r});var o=t(85893),n=t(11151);const i={title:"Week 7",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},c=void 0,a={id:"2023/rest/updates/soham/2023-07-28",title:"Week 7",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-07-28.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-07-28",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-07-28.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 7",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 6",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-16"},next:{title:"Week 8",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-08-05"}},d={},r=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Response for Banner message <code>/customise/banner</code>",id:"1-response-for-banner-message-customisebanner",level:4},{value:"2. Conf Update endpoint <code>/uploads/{id}/conf</code>",id:"2-conf-update-endpoint-uploadsidconf",level:4},{value:"3. Update customise data <code>/customise</code>",id:"3-update-customise-data-customise",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function l(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["GET request endpoint to recieve the banner message. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/customise/banner"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2553",children:"#2553"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Update endpoint for Conf data updation. ",(0,o.jsx)(s.code,{children:"PUT"})," ",(0,o.jsx)(s.code,{children:"/uploads/{UploadId}/conf"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2549",children:"#2549"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Updated Pull Request to get conf info from the server. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/uploads/{id}/conf"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2505",children:"#2505"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Update endpoint for Customise data. ",(0,o.jsx)(s.code,{children:"PUT"})," ",(0,o.jsx)(s.code,{children:"/customise"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2545",children:"#2545"}),"."]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsxs)(s.h4,{id:"1-response-for-banner-message-customisebanner",children:["1. Response for Banner message ",(0,o.jsx)(s.code,{children:"/customise/banner"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"banner-message",src:t(44553).Z+"",width:"486",height:"282"})}),"\n",(0,o.jsxs)(s.h4,{id:"2-conf-update-endpoint-uploadsidconf",children:["2. Conf Update endpoint ",(0,o.jsx)(s.code,{children:"/uploads/{id}/conf"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"conf-update",src:t(78441).Z+"",width:"688",height:"531"})}),"\n",(0,o.jsxs)(s.h4,{id:"3-update-customise-data-customise",children:["3. Update customise data ",(0,o.jsx)(s.code,{children:"/customise"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"customise-update",src:t(34295).Z+"",width:"651",height:"611"})}),"\n",(0,o.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"Update the existing update endpoints to eliminate sql injection possiblities"}),"\n",(0,o.jsx)(s.li,{children:"Start working on the obligations endpoints."}),"\n",(0,o.jsx)(s.li,{children:"Discuss with the mentors on the priority of the upcoming endpoints."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},44553:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/bannermsg-4823aa6620f5920623a09d26d9d1d75b.png"},78441:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/updateconf-90308a3fe52ceeef5d81a4f621098bbb.png"},34295:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/updatecustomise-2144df07fa6ac95cf0f8d911f89f1291.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>c});var o=t(67294);const n={},i=o.createContext(n);function c(e){const s=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/662f7d94.80b43dc0.js b/assets/js/662f7d94.80b43dc0.js new file mode 100644 index 0000000000..c044b43bf0 --- /dev/null +++ b/assets/js/662f7d94.80b43dc0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8593],{67618:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>t,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=s(85893),h=s(11151);const r={sidebar_position:5,title:"Week 5"},t=void 0,l={id:"2024/minutes/2024-06-27",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-06-27.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-06-27",permalink:"/gsoc/docs/2024/minutes/2024-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-06-27.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Week 5"},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/minutes/2024-06-20"},next:{title:"Week 6",permalink:"/gsoc/docs/2024/minutes/2024-07-04"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,h.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Welcome to meeting minutes page for GSoC 2024 at FOSSology 20-06-2024."}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": General updates regarding project."]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Worked on Semantic Search which tries to find similar match."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Test semantic transformer, Provide the information to LLM."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Was sick couldnt work much, I have implemented deadlock and heartbeat for scheduler and also user first approch(demo on further changes on arch)."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Worked on generation of SPDX 3.0 RDF format. will start works on tag/value report."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Working on report generation part to include license expressions. verified few SPDX reports after the implementation."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Finished implementation of OAUTH via API(Demo on OAUTH). finished working on oneshot analysis for licenses and copyrights. working on scancode agent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"I have finished working on keyword functionality now one can provide path to CONF file. this scripts will scan for given keywords in differential scan as well as repo scan."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,h.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},11151:(n,e,s)=>{s.d(e,{Z:()=>l,a:()=>t});var i=s(67294);const h={},r=i.createContext(h);function t(n){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(h):n.components||h:t(n.components),i.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/66572fad.f4594857.js b/assets/js/66572fad.f4594857.js new file mode 100644 index 0000000000..846bcddb65 --- /dev/null +++ b/assets/js/66572fad.f4594857.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6635],{15388:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var t=s(85893),i=s(11151);const l={title:"Week 8",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},a=void 0,r={id:"2021/buildsystem/updates/2021-07-30",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-07-30.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-07-30",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-07-30.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 8",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-23"},next:{title:"Week 9",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-08-06"}},o={},c=[{value:"Meeting 12",id:"meeting-12",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 8 Progress",id:"week-8-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"meeting-12",children:"Meeting 12"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July 30th, 2021)"})}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"week-8-progress",children:"Week 8 Progress"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"CMake Packaging configuration almost completed."}),"\n",(0,t.jsx)(n.li,{children:"Packages can be built according to the FOSSology previous packaging structure."}),"\n",(0,t.jsx)(n.li,{children:"Initial testing configuration added."}),"\n",(0,t.jsx)(n.li,{children:"Ninja build has been fixed."}),"\n",(0,t.jsxs)(n.li,{children:["To test the current progress, follow the instructions ",(0,t.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"How is the testing implemented in FOSSology?"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Not all agents have testing implemented."}),"\n",(0,t.jsxs)(n.li,{children:["There are two types of tests ",(0,t.jsx)(n.em,{children:"Unit"})," and ",(0,t.jsx)(n.em,{children:"Functional"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"At first, the test executable calls multiple PHP scripts to create a test environment. And then tests are executed."}),"\n",(0,t.jsxs)(n.li,{children:["Files related to testing and common for all the agents are in ",(0,t.jsx)(n.code,{children:"src/testing"})]}),"\n",(0,t.jsxs)(n.li,{children:["Other tests depends on ",(0,t.jsx)(n.code,{children:"phpunit"}),". This ",(0,t.jsx)(n.em,{children:"PHPUnit"})," is generated inside ",(0,t.jsx)(n.code,{children:"vendor"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"As of now, the testing configurations are hardcoded, what should I do, because it seems the testing configuration will require changes to a lot of files?"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Decide a deadline for the testing configuration and if until that point there is not very productive implementation then move to the next task that is implementing CI."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"As of now building, installation, and packaging via CMake is working and in a stable state. To create an initial Pull Request. This would also be useful in case of the final evaluation and further testing will be based on this PR itself."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Fix any bugs or if there is the scope of improvement in Building, Installation and Packaging do that."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Prepare for an initial PR."}),"\n",(0,t.jsx)(n.li,{children:"Fix known bugs and apply Improvements."}),"\n",(0,t.jsx)(n.li,{children:"Work on testing configurations."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>a});var t=s(67294);const i={},l=t.createContext(i);function a(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66defe51.bae16ff2.js b/assets/js/66defe51.bae16ff2.js new file mode 100644 index 0000000000..fb7d19e9b8 --- /dev/null +++ b/assets/js/66defe51.bae16ff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7526],{19884:s=>{s.exports=JSON.parse('{"tag":{"label":"spasht","permalink":"/gsoc/docs/tags/spasht","allTagsPath":"/gsoc/docs/tags","count":6,"items":[{"id":"2022/spasht/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-02"},{"id":"2022/spasht/updates/2022-06-08","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-08"},{"id":"2022/spasht/updates/2022-06-15","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-15"},{"id":"2022/spasht/updates/2022-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-22"},{"id":"2022/spasht/updates/2022-07-06","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-07-06"},{"id":"2022/spasht/updates/2022-07-13","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-07-13"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/6875c492.4ea91ce1.js b/assets/js/6875c492.4ea91ce1.js new file mode 100644 index 0000000000..826e6d1550 --- /dev/null +++ b/assets/js/6875c492.4ea91ce1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8610],{99703:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(95999),a=n(32244),i=n(85893);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),l&&(0,i.jsx)(a.Z,{permalink:l,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(9460),a=n(33665),i=n(85893);function l(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},41714:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(67294);var s=n(36905),a=n(95999),i=n(88824),l=n(8264),r=n(35281),o=n(33692),c=n(61460),g=n(99703),d=n(90197),u=n(79985),h=n(22212),p=n(92503),m=n(85893);function x(e){const t=function(){const{selectMessage:e}=(0,i.c)();return t=>e(t,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(l.d,{title:n}),(0,m.jsx)(d.Z,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const l=x(t);return(0,m.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(h.Z,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(p.Z,{as:"h1",children:l}),(0,m.jsx)(o.Z,{href:t.allTagsPath,children:(0,m.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.Z,{items:n}),(0,m.jsx)(g.Z,{metadata:i})]})}function f(e){return(0,m.jsxs)(l.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},22212:(e,t,n)=>{n.d(t,{Z:()=>h});n(67294);var s=n(36905),a=n(95999),i=n(35742),l=n(85893);function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var g=n(35281),d=n(59047);function u(e){let{className:t}=e;return(0,l.jsx)(d.Z,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,s.Z)(t,g.k.common.unlistedBanner),children:(0,l.jsx)(o,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/6950.f508f4c1.js b/assets/js/6950.f508f4c1.js new file mode 100644 index 0000000000..01f6737d81 --- /dev/null +++ b/assets/js/6950.f508f4c1.js @@ -0,0 +1,2 @@ +/*! For license information please see 6950.f508f4c1.js.LICENSE.txt */ +(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6950],{94184:(e,t)=>{var n;!function(){"use strict";var i={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var s=r.apply(null,n);s&&e.push(s)}}else if("object"===o){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var a in n)i.call(n,a)&&n[a]&&e.push(a)}}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},86010:(e,t,n)=>{"use strict";function i(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=i(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}n.d(t,{Z:()=>r});const r=function(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=i(e))&&(r&&(r+=" "),r+=t);return r}},86995:function(e,t,n){var i,r,o;r=[t,n(8532)],i=function(e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(t);function i(e){return e&&e.__esModule?e:{default:e}}e.default=n.default},void 0===(o="function"==typeof i?i.apply(t,r):i)||(e.exports=o)},8532:function(e,t,n){var i,r,o;r=[t,n(67294),n(45697)],i=function(e,t,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setHasSupportToCaptureOption=d;var i=o(t),r=o(n);function o(e){return e&&e.__esModule?e:{default:e}}var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};function a(e,t){var n={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var f=!1;function d(e){f=e}try{addEventListener("test",null,Object.defineProperty({},"capture",{get:function(){d(!0)}}))}catch(y){}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{capture:!0};return f?e:e.capture}function m(e){if("touches"in e){var t=e.touches[0];return{x:t.pageX,y:t.pageY}}return{x:e.screenX,y:e.screenY}}var v=function(e){function t(){var e;u(this,t);for(var n=arguments.length,i=Array(n),r=0;r<n;r++)i[r]=arguments[r];var o=c(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i)));return o._handleSwipeStart=o._handleSwipeStart.bind(o),o._handleSwipeMove=o._handleSwipeMove.bind(o),o._handleSwipeEnd=o._handleSwipeEnd.bind(o),o._onMouseDown=o._onMouseDown.bind(o),o._onMouseMove=o._onMouseMove.bind(o),o._onMouseUp=o._onMouseUp.bind(o),o._setSwiperRef=o._setSwiperRef.bind(o),o}return p(t,e),l(t,[{key:"componentDidMount",value:function(){this.swiper&&this.swiper.addEventListener("touchmove",this._handleSwipeMove,h({capture:!0,passive:!1}))}},{key:"componentWillUnmount",value:function(){this.swiper&&this.swiper.removeEventListener("touchmove",this._handleSwipeMove,h({capture:!0,passive:!1}))}},{key:"_onMouseDown",value:function(e){this.props.allowMouseEvents&&(this.mouseDown=!0,document.addEventListener("mouseup",this._onMouseUp),document.addEventListener("mousemove",this._onMouseMove),this._handleSwipeStart(e))}},{key:"_onMouseMove",value:function(e){this.mouseDown&&this._handleSwipeMove(e)}},{key:"_onMouseUp",value:function(e){this.mouseDown=!1,document.removeEventListener("mouseup",this._onMouseUp),document.removeEventListener("mousemove",this._onMouseMove),this._handleSwipeEnd(e)}},{key:"_handleSwipeStart",value:function(e){var t=m(e),n=t.x,i=t.y;this.moveStart={x:n,y:i},this.props.onSwipeStart(e)}},{key:"_handleSwipeMove",value:function(e){if(this.moveStart){var t=m(e),n=t.x,i=t.y,r=n-this.moveStart.x,o=i-this.moveStart.y;this.moving=!0,this.props.onSwipeMove({x:r,y:o},e)&&e.cancelable&&e.preventDefault(),this.movePosition={deltaX:r,deltaY:o}}}},{key:"_handleSwipeEnd",value:function(e){this.props.onSwipeEnd(e);var t=this.props.tolerance;this.moving&&this.movePosition&&(this.movePosition.deltaX<-t?this.props.onSwipeLeft(1,e):this.movePosition.deltaX>t&&this.props.onSwipeRight(1,e),this.movePosition.deltaY<-t?this.props.onSwipeUp(1,e):this.movePosition.deltaY>t&&this.props.onSwipeDown(1,e)),this.moveStart=null,this.moving=!1,this.movePosition=null}},{key:"_setSwiperRef",value:function(e){this.swiper=e,this.props.innerRef(e)}},{key:"render",value:function(){var e=this.props,t=(e.tagName,e.className),n=e.style,r=e.children,o=(e.allowMouseEvents,e.onSwipeUp,e.onSwipeDown,e.onSwipeLeft,e.onSwipeRight,e.onSwipeStart,e.onSwipeMove,e.onSwipeEnd,e.innerRef,e.tolerance,a(e,["tagName","className","style","children","allowMouseEvents","onSwipeUp","onSwipeDown","onSwipeLeft","onSwipeRight","onSwipeStart","onSwipeMove","onSwipeEnd","innerRef","tolerance"]));return i.default.createElement(this.props.tagName,s({ref:this._setSwiperRef,onMouseDown:this._onMouseDown,onTouchStart:this._handleSwipeStart,onTouchEnd:this._handleSwipeEnd,className:t,style:n},o),r)}}]),t}(t.Component);v.displayName="ReactSwipe",v.propTypes={tagName:r.default.string,className:r.default.string,style:r.default.object,children:r.default.node,allowMouseEvents:r.default.bool,onSwipeUp:r.default.func,onSwipeDown:r.default.func,onSwipeLeft:r.default.func,onSwipeRight:r.default.func,onSwipeStart:r.default.func,onSwipeMove:r.default.func,onSwipeEnd:r.default.func,innerRef:r.default.func,tolerance:r.default.number.isRequired},v.defaultProps={tagName:"div",allowMouseEvents:!1,onSwipeUp:function(){},onSwipeDown:function(){},onSwipeLeft:function(){},onSwipeRight:function(){},onSwipeStart:function(){},onSwipeMove:function(){},onSwipeEnd:function(){},innerRef:function(){},tolerance:0},e.default=v},void 0===(o="function"==typeof i?i.apply(t,r):i)||(e.exports=o)},12751:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e,t,n){var i=0===e?e:e+t;return"translate3d"+("("+("horizontal"===n?[i,0,0]:[0,i,0]).join(",")+")")}},94954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fadeAnimationHandler=t.slideStopSwipingHandler=t.slideSwipeAnimationHandler=t.slideAnimationHandler=void 0;var i,r=n(67294),o=(i=n(12751))&&i.__esModule?i:{default:i},s=n(98918);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.slideAnimationHandler=function(e,t){var n={},i=t.selectedItem,a=i,l=r.Children.count(e.children)-1;if(e.infiniteLoop&&(i<0||i>l))return a<0?e.centerMode&&e.centerSlidePercentage&&"horizontal"===e.axis?n.itemListStyle=(0,s.setPosition)(-(l+2)*e.centerSlidePercentage-(100-e.centerSlidePercentage)/2,e.axis):n.itemListStyle=(0,s.setPosition)(100*-(l+2),e.axis):a>l&&(n.itemListStyle=(0,s.setPosition)(0,e.axis)),n;var c=(0,s.getPosition)(i,e),p=(0,o.default)(c,"%",e.axis),f=e.transitionTime+"ms";return n.itemListStyle={WebkitTransform:p,msTransform:p,OTransform:p,transform:p},t.swiping||(n.itemListStyle=u(u({},n.itemListStyle),{},{WebkitTransitionDuration:f,MozTransitionDuration:f,OTransitionDuration:f,transitionDuration:f,msTransitionDuration:f})),n};t.slideSwipeAnimationHandler=function(e,t,n,i){var o={},a="horizontal"===t.axis,u=r.Children.count(t.children),l=(0,s.getPosition)(n.selectedItem,t),c=t.infiniteLoop?(0,s.getPosition)(u-1,t)-100:(0,s.getPosition)(u-1,t),p=a?e.x:e.y,f=p;0===l&&p>0&&(f=0),l===c&&p<0&&(f=0);var d=l+100/(n.itemSize/f),h=Math.abs(p)>t.swipeScrollTolerance;return t.infiniteLoop&&h&&(0===n.selectedItem&&d>-100?d-=100*u:n.selectedItem===u-1&&d<100*-u&&(d+=100*u)),(!t.preventMovementUntilSwipeScrollTolerance||h||n.swipeMovementStarted)&&(n.swipeMovementStarted||i({swipeMovementStarted:!0}),o.itemListStyle=(0,s.setPosition)(d,t.axis)),h&&!n.cancelClick&&i({cancelClick:!0}),o};t.slideStopSwipingHandler=function(e,t){var n=(0,s.getPosition)(t.selectedItem,e);return{itemListStyle:(0,s.setPosition)(n,e.axis)}};t.fadeAnimationHandler=function(e,t){var n=e.transitionTime+"ms",i="ease-in-out",r={position:"absolute",display:"block",zIndex:-2,minHeight:"100%",opacity:0,top:0,right:0,left:0,bottom:0,transitionTimingFunction:i,msTransitionTimingFunction:i,MozTransitionTimingFunction:i,WebkitTransitionTimingFunction:i,OTransitionTimingFunction:i};return t.swiping||(r=u(u({},r),{},{WebkitTransitionDuration:n,MozTransitionDuration:n,OTransitionDuration:n,transitionDuration:n,msTransitionDuration:n})),{slideStyle:r,selectedStyle:u(u({},r),{},{opacity:1,position:"relative"}),prevStyle:u({},r)}}},18684:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var o=i?Object.getOwnPropertyDescriptor(e,r):null;o&&(o.get||o.set)?Object.defineProperty(n,r,o):n[r]=e[r]}n.default=e,t&&t.set(e,n);return n}(n(67294)),r=p(n(86995)),o=p(n(25702)),s=p(n(45040)),a=p(n(16513)),u=p(n(885)),l=n(98918),c=n(94954);function p(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function h(){return h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},h.apply(this,arguments)}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){O(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function b(e,t){return b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},b(e,t)}function w(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,i=g(e);if(t){var r=g(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return function(e,t){if(t&&("object"===d(t)||"function"==typeof t))return t;return S(e)}(this,n)}}function S(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var P=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(d,e);var t,n,p,f=w(d);function d(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),O(S(t=f.call(this,e)),"thumbsRef",void 0),O(S(t),"carouselWrapperRef",void 0),O(S(t),"listRef",void 0),O(S(t),"itemsRef",void 0),O(S(t),"timer",void 0),O(S(t),"animationHandler",void 0),O(S(t),"setThumbsRef",(function(e){t.thumbsRef=e})),O(S(t),"setCarouselWrapperRef",(function(e){t.carouselWrapperRef=e})),O(S(t),"setListRef",(function(e){t.listRef=e})),O(S(t),"setItemsRef",(function(e,n){t.itemsRef||(t.itemsRef=[]),t.itemsRef[n]=e})),O(S(t),"autoPlay",(function(){i.Children.count(t.props.children)<=1||(t.clearAutoPlay(),t.props.autoPlay&&(t.timer=setTimeout((function(){t.increment()}),t.props.interval)))})),O(S(t),"clearAutoPlay",(function(){t.timer&&clearTimeout(t.timer)})),O(S(t),"resetAutoPlay",(function(){t.clearAutoPlay(),t.autoPlay()})),O(S(t),"stopOnHover",(function(){t.setState({isMouseEntered:!0},t.clearAutoPlay)})),O(S(t),"startOnLeave",(function(){t.setState({isMouseEntered:!1},t.autoPlay)})),O(S(t),"isFocusWithinTheCarousel",(function(){return!!t.carouselWrapperRef&&!((0,a.default)().activeElement!==t.carouselWrapperRef&&!t.carouselWrapperRef.contains((0,a.default)().activeElement))})),O(S(t),"navigateWithKeyboard",(function(e){if(t.isFocusWithinTheCarousel()){var n="horizontal"===t.props.axis,i=n?37:38;(n?39:40)===e.keyCode?t.increment():i===e.keyCode&&t.decrement()}})),O(S(t),"updateSizes",(function(){if(t.state.initialized&&t.itemsRef&&0!==t.itemsRef.length){var e="horizontal"===t.props.axis,n=t.itemsRef[0];if(n){var i=e?n.clientWidth:n.clientHeight;t.setState({itemSize:i}),t.thumbsRef&&t.thumbsRef.updateSizes()}}})),O(S(t),"setMountState",(function(){t.setState({hasMount:!0}),t.updateSizes()})),O(S(t),"handleClickItem",(function(e,n){0!==i.Children.count(t.props.children)&&(t.state.cancelClick?t.setState({cancelClick:!1}):(t.props.onClickItem(e,n),e!==t.state.selectedItem&&t.setState({selectedItem:e})))})),O(S(t),"handleOnChange",(function(e,n){i.Children.count(t.props.children)<=1||t.props.onChange(e,n)})),O(S(t),"handleClickThumb",(function(e,n){t.props.onClickThumb(e,n),t.moveTo(e)})),O(S(t),"onSwipeStart",(function(e){t.setState({swiping:!0}),t.props.onSwipeStart(e)})),O(S(t),"onSwipeEnd",(function(e){t.setState({swiping:!1,cancelClick:!1,swipeMovementStarted:!1}),t.props.onSwipeEnd(e),t.clearAutoPlay(),t.state.autoPlay&&t.autoPlay()})),O(S(t),"onSwipeMove",(function(e,n){t.props.onSwipeMove(n);var i=t.props.swipeAnimationHandler(e,t.props,t.state,t.setState.bind(S(t)));return t.setState(v({},i)),!!Object.keys(i).length})),O(S(t),"decrement",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;t.moveTo(t.state.selectedItem-("number"==typeof e?e:1))})),O(S(t),"increment",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;t.moveTo(t.state.selectedItem+("number"==typeof e?e:1))})),O(S(t),"moveTo",(function(e){if("number"==typeof e){var n=i.Children.count(t.props.children)-1;e<0&&(e=t.props.infiniteLoop?n:0),e>n&&(e=t.props.infiniteLoop?0:n),t.selectItem({selectedItem:e}),t.state.autoPlay&&!1===t.state.isMouseEntered&&t.resetAutoPlay()}})),O(S(t),"onClickNext",(function(){t.increment(1)})),O(S(t),"onClickPrev",(function(){t.decrement(1)})),O(S(t),"onSwipeForward",(function(){t.increment(1),t.props.emulateTouch&&t.setState({cancelClick:!0})})),O(S(t),"onSwipeBackwards",(function(){t.decrement(1),t.props.emulateTouch&&t.setState({cancelClick:!0})})),O(S(t),"changeItem",(function(e){return function(n){(0,l.isKeyboardEvent)(n)&&"Enter"!==n.key||t.moveTo(e)}})),O(S(t),"selectItem",(function(e){t.setState(v({previousItem:t.state.selectedItem},e),(function(){t.setState(t.animationHandler(t.props,t.state))})),t.handleOnChange(e.selectedItem,i.Children.toArray(t.props.children)[e.selectedItem])})),O(S(t),"getInitialImage",(function(){var e=t.props.selectedItem,n=t.itemsRef&&t.itemsRef[e];return(n&&n.getElementsByTagName("img")||[])[0]})),O(S(t),"getVariableItemHeight",(function(e){var n=t.itemsRef&&t.itemsRef[e];if(t.state.hasMount&&n&&n.children.length){var i=n.children[0].getElementsByTagName("img")||[];if(i.length>0){var r=i[0];if(!r.complete){r.addEventListener("load",(function e(){t.forceUpdate(),r.removeEventListener("load",e)}))}}var o=(i[0]||n.children[0]).clientHeight;return o>0?o:null}return null}));var n={initialized:!1,previousItem:e.selectedItem,selectedItem:e.selectedItem,hasMount:!1,isMouseEntered:!1,autoPlay:e.autoPlay,swiping:!1,swipeMovementStarted:!1,cancelClick:!1,itemSize:1,itemListStyle:{},slideStyle:{},selectedStyle:{},prevStyle:{}};return t.animationHandler="function"==typeof e.animationHandler&&e.animationHandler||"fade"===e.animationHandler&&c.fadeAnimationHandler||c.slideAnimationHandler,t.state=v(v({},n),t.animationHandler(e,n)),t}return t=d,(n=[{key:"componentDidMount",value:function(){this.props.children&&this.setupCarousel()}},{key:"componentDidUpdate",value:function(e,t){e.children||!this.props.children||this.state.initialized||this.setupCarousel(),!e.autoFocus&&this.props.autoFocus&&this.forceFocus(),t.swiping&&!this.state.swiping&&this.setState(v({},this.props.stopSwipingHandler(this.props,this.state))),e.selectedItem===this.props.selectedItem&&e.centerMode===this.props.centerMode||(this.updateSizes(),this.moveTo(this.props.selectedItem)),e.autoPlay!==this.props.autoPlay&&(this.props.autoPlay?this.setupAutoPlay():this.destroyAutoPlay(),this.setState({autoPlay:this.props.autoPlay}))}},{key:"componentWillUnmount",value:function(){this.destroyCarousel()}},{key:"setupCarousel",value:function(){var e=this;this.bindEvents(),this.state.autoPlay&&i.Children.count(this.props.children)>1&&this.setupAutoPlay(),this.props.autoFocus&&this.forceFocus(),this.setState({initialized:!0},(function(){var t=e.getInitialImage();t&&!t.complete?t.addEventListener("load",e.setMountState):e.setMountState()}))}},{key:"destroyCarousel",value:function(){this.state.initialized&&(this.unbindEvents(),this.destroyAutoPlay())}},{key:"setupAutoPlay",value:function(){this.autoPlay();var e=this.carouselWrapperRef;this.props.stopOnHover&&e&&(e.addEventListener("mouseenter",this.stopOnHover),e.addEventListener("mouseleave",this.startOnLeave))}},{key:"destroyAutoPlay",value:function(){this.clearAutoPlay();var e=this.carouselWrapperRef;this.props.stopOnHover&&e&&(e.removeEventListener("mouseenter",this.stopOnHover),e.removeEventListener("mouseleave",this.startOnLeave))}},{key:"bindEvents",value:function(){(0,u.default)().addEventListener("resize",this.updateSizes),(0,u.default)().addEventListener("DOMContentLoaded",this.updateSizes),this.props.useKeyboardArrows&&(0,a.default)().addEventListener("keydown",this.navigateWithKeyboard)}},{key:"unbindEvents",value:function(){(0,u.default)().removeEventListener("resize",this.updateSizes),(0,u.default)().removeEventListener("DOMContentLoaded",this.updateSizes);var e=this.getInitialImage();e&&e.removeEventListener("load",this.setMountState),this.props.useKeyboardArrows&&(0,a.default)().removeEventListener("keydown",this.navigateWithKeyboard)}},{key:"forceFocus",value:function(){var e;null===(e=this.carouselWrapperRef)||void 0===e||e.focus()}},{key:"renderItems",value:function(e){var t=this;return this.props.children?i.Children.map(this.props.children,(function(n,r){var s=r===t.state.selectedItem,a=r===t.state.previousItem,u=s&&t.state.selectedStyle||a&&t.state.prevStyle||t.state.slideStyle||{};t.props.centerMode&&"horizontal"===t.props.axis&&(u=v(v({},u),{},{minWidth:t.props.centerSlidePercentage+"%"})),t.state.swiping&&t.state.swipeMovementStarted&&(u=v(v({},u),{},{pointerEvents:"none"}));var l={ref:function(e){return t.setItemsRef(e,r)},key:"itemKey"+r+(e?"clone":""),className:o.default.ITEM(!0,r===t.state.selectedItem,r===t.state.previousItem),onClick:t.handleClickItem.bind(t,r,n),style:u};return i.default.createElement("li",l,t.props.renderItem(n,{isSelected:r===t.state.selectedItem,isPrevious:r===t.state.previousItem}))})):[]}},{key:"renderControls",value:function(){var e=this,t=this.props,n=t.showIndicators,r=t.labels,o=t.renderIndicator,s=t.children;return n?i.default.createElement("ul",{className:"control-dots"},i.Children.map(s,(function(t,n){return o&&o(e.changeItem(n),n===e.state.selectedItem,n,r.item)}))):null}},{key:"renderStatus",value:function(){return this.props.showStatus?i.default.createElement("p",{className:"carousel-status"},this.props.statusFormatter(this.state.selectedItem+1,i.Children.count(this.props.children))):null}},{key:"renderThumbs",value:function(){return this.props.showThumbs&&this.props.children&&0!==i.Children.count(this.props.children)?i.default.createElement(s.default,{ref:this.setThumbsRef,onSelectItem:this.handleClickThumb,selectedItem:this.state.selectedItem,transitionTime:this.props.transitionTime,thumbWidth:this.props.thumbWidth,labels:this.props.labels,emulateTouch:this.props.emulateTouch},this.props.renderThumbs(this.props.children)):null}},{key:"render",value:function(){var e=this;if(!this.props.children||0===i.Children.count(this.props.children))return null;var t=this.props.swipeable&&i.Children.count(this.props.children)>1,n="horizontal"===this.props.axis,s=this.props.showArrows&&i.Children.count(this.props.children)>1,a=s&&(this.state.selectedItem>0||this.props.infiniteLoop)||!1,u=s&&(this.state.selectedItem<i.Children.count(this.props.children)-1||this.props.infiniteLoop)||!1,l=this.renderItems(!0),c=l.shift(),p=l.pop(),f={className:o.default.SLIDER(!0,this.state.swiping),onSwipeMove:this.onSwipeMove,onSwipeStart:this.onSwipeStart,onSwipeEnd:this.onSwipeEnd,style:this.state.itemListStyle,tolerance:this.props.swipeScrollTolerance},d={};if(n){if(f.onSwipeLeft=this.onSwipeForward,f.onSwipeRight=this.onSwipeBackwards,this.props.dynamicHeight){var m=this.getVariableItemHeight(this.state.selectedItem);d.height=m||"auto"}}else f.onSwipeUp="natural"===this.props.verticalSwipe?this.onSwipeBackwards:this.onSwipeForward,f.onSwipeDown="natural"===this.props.verticalSwipe?this.onSwipeForward:this.onSwipeBackwards,f.style=v(v({},f.style),{},{height:this.state.itemSize}),d.height=this.state.itemSize;return i.default.createElement("div",{"aria-label":this.props.ariaLabel,className:o.default.ROOT(this.props.className),ref:this.setCarouselWrapperRef,tabIndex:this.props.useKeyboardArrows?0:void 0},i.default.createElement("div",{className:o.default.CAROUSEL(!0),style:{width:this.props.width}},this.renderControls(),this.props.renderArrowPrev(this.onClickPrev,a,this.props.labels.leftArrow),i.default.createElement("div",{className:o.default.WRAPPER(!0,this.props.axis),style:d},t?i.default.createElement(r.default,h({tagName:"ul",innerRef:this.setListRef},f,{allowMouseEvents:this.props.emulateTouch}),this.props.infiniteLoop&&p,this.renderItems(),this.props.infiniteLoop&&c):i.default.createElement("ul",{className:o.default.SLIDER(!0,this.state.swiping),ref:function(t){return e.setListRef(t)},style:this.state.itemListStyle||{}},this.props.infiniteLoop&&p,this.renderItems(),this.props.infiniteLoop&&c)),this.props.renderArrowNext(this.onClickNext,u,this.props.labels.rightArrow),this.renderStatus()),this.renderThumbs())}}])&&y(t.prototype,n),p&&y(t,p),d}(i.default.Component);t.default=P,O(P,"displayName","Carousel"),O(P,"defaultProps",{ariaLabel:void 0,axis:"horizontal",centerSlidePercentage:80,interval:3e3,labels:{leftArrow:"previous slide / item",rightArrow:"next slide / item",item:"slide item"},onClickItem:l.noop,onClickThumb:l.noop,onChange:l.noop,onSwipeStart:function(){},onSwipeEnd:function(){},onSwipeMove:function(){return!1},preventMovementUntilSwipeScrollTolerance:!1,renderArrowPrev:function(e,t,n){return i.default.createElement("button",{type:"button","aria-label":n,className:o.default.ARROW_PREV(!t),onClick:e})},renderArrowNext:function(e,t,n){return i.default.createElement("button",{type:"button","aria-label":n,className:o.default.ARROW_NEXT(!t),onClick:e})},renderIndicator:function(e,t,n,r){return i.default.createElement("li",{className:o.default.DOT(t),onClick:e,onKeyDown:e,value:n,key:n,role:"button",tabIndex:0,"aria-label":"".concat(r," ").concat(n+1)})},renderItem:function(e){return e},renderThumbs:function(e){var t=i.Children.map(e,(function(e){var t=e;if("img"!==e.type&&(t=i.Children.toArray(e.props.children).find((function(e){return"img"===e.type}))),t)return t}));return 0===t.filter((function(e){return e})).length?(console.warn("No images found! Can't build the thumb list without images. If you don't need thumbs, set showThumbs={false} in the Carousel. Note that it's not possible to get images rendered inside custom components. More info at https://github.com/leandrowd/react-responsive-carousel/blob/master/TROUBLESHOOTING.md"),[]):t},statusFormatter:l.defaultStatusFormatter,selectedItem:0,showArrows:!0,showIndicators:!0,showStatus:!0,showThumbs:!0,stopOnHover:!0,swipeScrollTolerance:5,swipeable:!0,transitionTime:350,verticalSwipe:"standard",width:"100%",animationHandler:"slide",swipeAnimationHandler:c.slideSwipeAnimationHandler,stopSwipingHandler:c.slideStopSwipingHandler})},50629:()=>{},98918:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPosition=t.getPosition=t.isKeyboardEvent=t.defaultStatusFormatter=t.noop=void 0;var i,r=n(67294),o=(i=n(12751))&&i.__esModule?i:{default:i};t.noop=function(){};t.defaultStatusFormatter=function(e,t){return"".concat(e," of ").concat(t)};t.isKeyboardEvent=function(e){return!!e&&e.hasOwnProperty("key")};t.getPosition=function(e,t){if(t.infiniteLoop&&++e,0===e)return 0;var n=r.Children.count(t.children);if(t.centerMode&&"horizontal"===t.axis){var i=-e*t.centerSlidePercentage,o=n-1;return e&&(e!==o||t.infiniteLoop)?i+=(100-t.centerSlidePercentage)/2:e===o&&(i+=100-t.centerSlidePercentage),i}return 100*-e};t.setPosition=function(e,t){var n={};return["WebkitTransform","MozTransform","MsTransform","OTransform","transform","msTransform"].forEach((function(i){n[i]=(0,o.default)(e,"%",t)})),n}},45040:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var o=i?Object.getOwnPropertyDescriptor(e,r):null;o&&(o.get||o.set)?Object.defineProperty(n,r,o):n[r]=e[r]}n.default=e,t&&t.set(e,n);return n}(n(67294)),r=l(n(25702)),o=n(74528),s=l(n(12751)),a=l(n(86995)),u=l(n(885));function l(e){return e&&e.__esModule?e:{default:e}}function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},f.apply(this,arguments)}function d(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,i=y(e);if(t){var r=y(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return function(e,t){if(t&&("object"===p(t)||"function"==typeof t))return t;return v(e)}(this,n)}}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(p,e);var t,n,l,c=m(p);function p(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),b(v(t=c.call(this,e)),"itemsWrapperRef",void 0),b(v(t),"itemsListRef",void 0),b(v(t),"thumbsRef",void 0),b(v(t),"setItemsWrapperRef",(function(e){t.itemsWrapperRef=e})),b(v(t),"setItemsListRef",(function(e){t.itemsListRef=e})),b(v(t),"setThumbsRef",(function(e,n){t.thumbsRef||(t.thumbsRef=[]),t.thumbsRef[n]=e})),b(v(t),"updateSizes",(function(){if(t.props.children&&t.itemsWrapperRef&&t.thumbsRef){var e=i.Children.count(t.props.children),n=t.itemsWrapperRef.clientWidth,r=t.props.thumbWidth?t.props.thumbWidth:(0,o.outerWidth)(t.thumbsRef[0]),s=Math.floor(n/r),a=s<e,u=a?e-s:0;t.setState((function(e,n){return{itemSize:r,visibleItems:s,firstItem:a?t.getFirstItem(n.selectedItem):0,lastPosition:u,showArrows:a}}))}})),b(v(t),"handleClickItem",(function(e,n,i){if(!function(e){return e.hasOwnProperty("key")}(i)||"Enter"===i.key){var r=t.props.onSelectItem;"function"==typeof r&&r(e,n)}})),b(v(t),"onSwipeStart",(function(){t.setState({swiping:!0})})),b(v(t),"onSwipeEnd",(function(){t.setState({swiping:!1})})),b(v(t),"onSwipeMove",(function(e){var n=e.x;if(!t.state.itemSize||!t.itemsWrapperRef||!t.state.visibleItems)return!1;var r=i.Children.count(t.props.children),o=-100*t.state.firstItem/t.state.visibleItems;0===o&&n>0&&(n=0),o===100*-Math.max(r-t.state.visibleItems,0)/t.state.visibleItems&&n<0&&(n=0);var a=o+100/(t.itemsWrapperRef.clientWidth/n);return t.itemsListRef&&["WebkitTransform","MozTransform","MsTransform","OTransform","transform","msTransform"].forEach((function(e){t.itemsListRef.style[e]=(0,s.default)(a,"%",t.props.axis)})),!0})),b(v(t),"slideRight",(function(e){t.moveTo(t.state.firstItem-("number"==typeof e?e:1))})),b(v(t),"slideLeft",(function(e){t.moveTo(t.state.firstItem+("number"==typeof e?e:1))})),b(v(t),"moveTo",(function(e){e=(e=e<0?0:e)>=t.state.lastPosition?t.state.lastPosition:e,t.setState({firstItem:e})})),t.state={selectedItem:e.selectedItem,swiping:!1,showArrows:!1,firstItem:0,visibleItems:0,lastPosition:0},t}return t=p,(n=[{key:"componentDidMount",value:function(){this.setupThumbs()}},{key:"componentDidUpdate",value:function(e){this.props.selectedItem!==this.state.selectedItem&&this.setState({selectedItem:this.props.selectedItem,firstItem:this.getFirstItem(this.props.selectedItem)}),this.props.children!==e.children&&this.updateSizes()}},{key:"componentWillUnmount",value:function(){this.destroyThumbs()}},{key:"setupThumbs",value:function(){(0,u.default)().addEventListener("resize",this.updateSizes),(0,u.default)().addEventListener("DOMContentLoaded",this.updateSizes),this.updateSizes()}},{key:"destroyThumbs",value:function(){(0,u.default)().removeEventListener("resize",this.updateSizes),(0,u.default)().removeEventListener("DOMContentLoaded",this.updateSizes)}},{key:"getFirstItem",value:function(e){var t=e;return e>=this.state.lastPosition&&(t=this.state.lastPosition),e<this.state.firstItem+this.state.visibleItems&&(t=this.state.firstItem),e<this.state.firstItem&&(t=e),t}},{key:"renderItems",value:function(){var e=this;return this.props.children.map((function(t,n){var o=r.default.ITEM(!1,n===e.state.selectedItem),s={key:n,ref:function(t){return e.setThumbsRef(t,n)},className:o,onClick:e.handleClickItem.bind(e,n,e.props.children[n]),onKeyDown:e.handleClickItem.bind(e,n,e.props.children[n]),"aria-label":"".concat(e.props.labels.item," ").concat(n+1),style:{width:e.props.thumbWidth}};return i.default.createElement("li",f({},s,{role:"button",tabIndex:0}),t)}))}},{key:"render",value:function(){var e=this;if(!this.props.children)return null;var t,n=i.Children.count(this.props.children)>1,o=this.state.showArrows&&this.state.firstItem>0,u=this.state.showArrows&&this.state.firstItem<this.state.lastPosition,l=-this.state.firstItem*(this.state.itemSize||0),c=(0,s.default)(l,"px",this.props.axis),p=this.props.transitionTime+"ms";return t={WebkitTransform:c,MozTransform:c,MsTransform:c,OTransform:c,transform:c,msTransform:c,WebkitTransitionDuration:p,MozTransitionDuration:p,MsTransitionDuration:p,OTransitionDuration:p,transitionDuration:p,msTransitionDuration:p},i.default.createElement("div",{className:r.default.CAROUSEL(!1)},i.default.createElement("div",{className:r.default.WRAPPER(!1),ref:this.setItemsWrapperRef},i.default.createElement("button",{type:"button",className:r.default.ARROW_PREV(!o),onClick:function(){return e.slideRight()},"aria-label":this.props.labels.leftArrow}),n?i.default.createElement(a.default,{tagName:"ul",className:r.default.SLIDER(!1,this.state.swiping),onSwipeLeft:this.slideLeft,onSwipeRight:this.slideRight,onSwipeMove:this.onSwipeMove,onSwipeStart:this.onSwipeStart,onSwipeEnd:this.onSwipeEnd,style:t,innerRef:this.setItemsListRef,allowMouseEvents:this.props.emulateTouch},this.renderItems()):i.default.createElement("ul",{className:r.default.SLIDER(!1,this.state.swiping),ref:function(t){return e.setItemsListRef(t)},style:t},this.renderItems()),i.default.createElement("button",{type:"button",className:r.default.ARROW_NEXT(!u),onClick:function(){return e.slideLeft()},"aria-label":this.props.labels.rightArrow})))}}])&&d(t.prototype,n),l&&d(t,l),p}(i.Component);t.default=w,b(w,"displayName","Thumbs"),b(w,"defaultProps",{axis:"horizontal",labels:{leftArrow:"previous slide / item",rightArrow:"next slide / item",item:"slide item"},selectedItem:0,thumbWidth:80,transitionTime:350})},25702:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=(i=n(94184))&&i.__esModule?i:{default:i};var o={ROOT:function(e){return(0,r.default)(function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({"carousel-root":!0},e||"",!!e))},CAROUSEL:function(e){return(0,r.default)({carousel:!0,"carousel-slider":e})},WRAPPER:function(e,t){return(0,r.default)({"thumbs-wrapper":!e,"slider-wrapper":e,"axis-horizontal":"horizontal"===t,"axis-vertical":"horizontal"!==t})},SLIDER:function(e,t){return(0,r.default)({thumbs:!e,slider:e,animated:!t})},ITEM:function(e,t,n){return(0,r.default)({thumb:!e,slide:e,selected:t,previous:n})},ARROW_PREV:function(e){return(0,r.default)({"control-arrow control-prev":!0,"control-disabled":e})},ARROW_NEXT:function(e){return(0,r.default)({"control-arrow control-next":!0,"control-disabled":e})},DOT:function(e){return(0,r.default)({dot:!0,selected:e})}};t.default=o},74528:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.outerWidth=void 0;t.outerWidth=function(e){var t=e.offsetWidth,n=getComputedStyle(e);return t+=parseInt(n.marginLeft)+parseInt(n.marginRight)}},10615:(e,t,n)=>{"use strict";Object.defineProperty(t,"lr",{enumerable:!0,get:function(){return i.default}});var i=s(n(18684)),r=n(50629),o=s(n(45040));function s(e){return e&&e.__esModule?e:{default:e}}},16513:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(){return document}},885:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(){return window}}}]); \ No newline at end of file diff --git a/assets/js/6950.f508f4c1.js.LICENSE.txt b/assets/js/6950.f508f4c1.js.LICENSE.txt new file mode 100644 index 0000000000..827f2732cb --- /dev/null +++ b/assets/js/6950.f508f4c1.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/assets/js/6955c460.cdaea024.js b/assets/js/6955c460.cdaea024.js new file mode 100644 index 0000000000..23f9868e36 --- /dev/null +++ b/assets/js/6955c460.cdaea024.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9817],{50589:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var o=n(85893),s=n(11151);const i={title:"Week 4",author:"Abdelrahman Jamal"},a=void 0,l={id:"2023/copyrights/updates/2023-06-21",title:"Week 4",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-06-21.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-06-21",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-21",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-06-21.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 3",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-14"},next:{title:"Week 5",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-28"}},r={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Copyright Dataset Creation",id:"copyright-dataset-creation",level:3},{value:"Methodology Challenge",id:"methodology-challenge",level:3},{value:"Fossology API",id:"fossology-api",level:3},{value:"LDA Model",id:"lda-model",level:3},{value:"Problems and Solutions:",id:"problems-and-solutions",level:2},{value:"Problem 1",id:"problem-1",level:3},{value:"Solution 1",id:"solution-1",level:3},{value:"Problem 2",id:"problem-2",level:3},{value:"Solution 2",id:"solution-2",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Dataset Creation",id:"dataset-creation",level:3}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:(0,o.jsx)(t.em,{children:"(June,21,2023)"})}),"\n",(0,o.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"updates",children:"Updates:"}),"\n",(0,o.jsx)(t.h3,{id:"copyright-dataset-creation",children:"Copyright Dataset Creation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Initiated the process of curating a copyright dataset. Instead of manual procedures via the Fossology UI, automation was explored through the chat-gpt-3.5 API. A series of functions were designed to traverse directories, extract commented content in files, and forward that text along with a specific prompt to the chat-gpt API. This was meant to isolate any copyright content within. Though mostly successful, iterations were required for improvement. The related code is accessible ",(0,o.jsx)(t.a,{href:"https://gist.github.com/Hero2323/bff12400cec5ab54467ea35ba89e976f",children:"here"}),", and my findings are hosted ",(0,o.jsx)(t.a,{href:"https://drive.google.com/drive/folders/10cvdBEWOgr2JSWqR7X7Oz0xl-Nn2VcGU?usp=drive_link",children:"here"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"methodology-challenge",children:"Methodology Challenge"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"The aforementioned approach, albeit innovative, was rendered non-viable for the project due to the necessity of employing Fossology for the dataset creation, ensuring the rectification of its false positives."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"fossology-api",children:"Fossology API"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Acquired information about the existence of a Fossology API capable of extracting Fossology-generated copyright statements. This can be harnessed for dataset formulation."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"lda-model",children:"LDA Model"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Executed a basic LDA (Latent Dirichlet Allocation) model centered around two topics - copyright and non-copyright. The results were promising, indicating pertinent associations. The respective code can be located ",(0,o.jsx)(t.a,{href:"https://gist.github.com/Hero2323/3e22bc0af40323d502de6f26ef2886ab",children:"here"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"problems-and-solutions",children:"Problems and Solutions:"}),"\n",(0,o.jsx)(t.h3,{id:"problem-1",children:"Problem 1"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"The task of manually creating a dataset is monotonous, protracted, and susceptible to errors."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"solution-1",children:"Solution 1"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Automated the task employing chatGPT. However, it necessitated meticulous prompt structuring to derive semi-reliable results."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"problem-2",children:"Problem 2"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Uncertainty about file segments to forward to chatGPT for copyright extraction."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"solution-2",children:"Solution 2"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Developed a function to solely capture commented lines from predominant extensions. In instances of its inadequacy, the entire file was dispatched to chatGPT, a measure which eventually proved counterproductive. Subsequent insights from Gaurav introduced me to ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/Nirjas",children:"Nirjas, a Python library under the Fossology project"}),", already adept at this task."]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,o.jsx)(t.h3,{id:"dataset-creation",children:"Dataset Creation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Engage in the formulation of the dataset leveraging the Fossology API."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>a});var o=n(67294);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/69b10dc4.2d0a4f5e.js b/assets/js/69b10dc4.2d0a4f5e.js new file mode 100644 index 0000000000..f44f4baa1d --- /dev/null +++ b/assets/js/69b10dc4.2d0a4f5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4399],{71232:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 3","permalink":"/gsoc/docs/tags/week-3","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-07-04","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-04"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/6accd836.486a7cd7.js b/assets/js/6accd836.486a7cd7.js new file mode 100644 index 0000000000..2c97fd554c --- /dev/null +++ b/assets/js/6accd836.486a7cd7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5854],{11945:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var t=s(85893),i=s(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},r="Week 3",l={id:"2023/laas/updates/2023-06-16",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-06-16.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-06-16",permalink:"/gsoc/docs/2023/laas/updates/2023-06-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-06-16.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-09"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-23"}},o={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Update",id:"update",level:2},{value:"Conclusion and future plan",id:"conclusion-and-future-plan",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"week-3",children:"Week 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June, 16, 2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"For update & create, shortanme should not be there in parameter of URL."}),"\n",(0,t.jsx)(n.li,{children:"Add error for invalid URL."}),"\n",(0,t.jsx)(n.li,{children:"SPDX id will aso be a required field in create."}),"\n",(0,t.jsx)(n.li,{children:"update will be done using query parameter."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"update",children:"Update"}),"\n",(0,t.jsx)(n.p,{children:"Created two basic end points and different struct for error to create structured\nerror message."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Get all licenses:"}),"\n",(0,t.jsx)(n.p,{children:"to get all the details of the licenses present in the database.\ngets the data of all the data components present in the database."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Get licenses by shortname:"}),"\n",(0,t.jsx)(n.p,{children:"to get the data of the license with the shortname passed as a parameter.\nerror when no such license found."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and future plan"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Work on the other end points and add documentation."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>r});var t=s(67294);const i={},a=t.createContext(i);function r(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6ae2d8c6.a4609038.js b/assets/js/6ae2d8c6.a4609038.js new file mode 100644 index 0000000000..abc870e9bc --- /dev/null +++ b/assets/js/6ae2d8c6.a4609038.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1415],{362:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>r,default:()=>o,frontMatter:()=>n,metadata:()=>d,toc:()=>c});var l=s(85893),i=s(11151);const n={sidebar_position:1,title:"GSoC'24 @ FOSSology",slug:"/2024"},r=void 0,d={id:"2024/index",title:"GSoC'24 @ FOSSology",description:"\x3c!--",source:"@site/docs/2024/index.md",sourceDirName:"2024",slug:"/2024",permalink:"/gsoc/docs/2024",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"GSoC'24 @ FOSSology",slug:"/2024"},sidebar:"2024",next:{title:"Google Summer of Code Proposals 2024",permalink:"/gsoc/docs/2024/GSoC-projects"}},h={},c=[{value:"Projects",id:"projects",level:3},{value:"Proposed Mentors",id:"proposed-mentors",level:3},{value:"Meetings table",id:"meetings-table",level:3},{value:"Photo",id:"photo",level:3}];function a(e){const t={a:"a",em:"em",h3:"h3",li:"li",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(t.p,{children:["FOSSology is looking forward for participating in\n",(0,l.jsx)(t.a,{href:"https://opensource.googleblog.com/2024/01/google-summer-of-code-2024-mentor-organization-applications-now-open.html",children:"Google Summer of Code 2024"}),"."]}),"\n",(0,l.jsxs)(t.p,{children:["You can visit our ",(0,l.jsx)(t.a,{href:"/gsoc/docs/2024/GSoC-projects",children:"idea page for GSoC 2024"}),"."]}),"\n",(0,l.jsx)(t.p,{children:"More info to come here."}),"\n",(0,l.jsx)(t.h3,{id:"projects",children:"Projects"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Contributor"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Project"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/aadsingh",children:"Aaditya Singh"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/scheduler",children:"Overhaul Scheduler Design"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/license-detection",children:"AI Powered License Detection"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/spdx30",children:"Support SPDX 3.0 Reports"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/AkashSah2003",children:"Akash Sah"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/spdx-expression",children:"SPDX License Expression"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/rest",children:"REST API Improvements"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/ci-scanner",children:"Improving CI Scanner"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/pipeline",children:"Data Pipeline"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"/docs/2024/text-phrases",children:"Text phrase scanning"})})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"proposed-mentors",children:"Proposed Mentors"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,l.jsx)(t.li,{children:"Katharina Ettinger"}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,l.jsx)(t.h3,{id:"meetings-table",children:"Meetings table"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Topic(s)"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Timings"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Meeting link"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"ICS"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"General Meeting"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.em,{children:"Thursday"})," 13:30 - 14:30 UTC"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://meet.jit.si/moderated/5a655b3b6f3b4f83cddb13b93ac5408d6de48bf4ce1049f4128aa1c885478d48",children:"Jitsi"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(79886).Z+"",children:".ics"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"REST API"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.em,{children:"Tuesday"})," 11:00 - 11:50 UTC"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400d5963f4e18b6",children:"Jitsi"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(72609).Z+"",children:".ics"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"SPDX Related"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.em,{children:"Tuesday"})," 10:30 - 11:20 UTC"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400d5963f4e18b6",children:"Jitsi"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(82851).Z+"",children:".ics"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"CI Scanner"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.em,{children:"Wednesday"})," 10:30 - 11:00 UTC"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://moderated.jitsi.net/39896aad61bc4a27b9418ee6b78689348c65790e889046069dbe9c8c34110c9a",children:"Jitsi"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(11541).Z+"",children:".ics"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Scheduler Overhaul"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.em,{children:"Friday"})," 10:30 - 11:00 UTC"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://moderated.jitsi.net/5444f675f5ce47c788fa4238a6a958c53d3e62804e9243d5b807fbaa81f3120f",children:"Jitsi"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(31247).Z+"",children:".ics"})})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"AI Powered Scanners"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.em,{children:"Thursday"})," 10:30 - 11:20 UTC"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{href:"https://moderated.jitsi.net/15ee0bf46cb345e4accc817ed2967b55db216bf57c894c30bd1550ecf3ec3ace",children:"Jitsi"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(58146).Z+"",children:".ics"})})]})]})]}),"\n",(0,l.jsx)(t.h3,{id:"photo",children:"Photo"}),"\n",(0,l.jsx)(t.p,{children:"Photos to come soon."}),"\n",(0,l.jsx)(t.p,{children:"Thanks for being part of the community. \ud83d\udc9a"})]})}function o(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}},58146:(e,t,s)=>{s.d(t,{Z:()=>l});const l=s.p+"assets/files/gsoc_2024_ai-cef5a24aa367c63b5261ebb2297d61b6.ics"},11541:(e,t,s)=>{s.d(t,{Z:()=>l});const l=s.p+"assets/files/gsoc_2024_ci-a68f75ea05c0fb21eb88a0c3b8e4af12.ics"},72609:(e,t,s)=>{s.d(t,{Z:()=>l});const l=s.p+"assets/files/gsoc_2024_rest-bf29190aaa6356257f7bb1c0421fec58.ics"},31247:(e,t,s)=>{s.d(t,{Z:()=>l});const l=s.p+"assets/files/gsoc_2024_scheduler-99050b70f631126c905f98ea057c0c9a.ics"},82851:(e,t,s)=>{s.d(t,{Z:()=>l});const l=s.p+"assets/files/gsoc_2024_spdx-ffea82c3e0a03881be2297ed10e03d77.ics"},79886:(e,t,s)=>{s.d(t,{Z:()=>l});const l=s.p+"assets/files/gsoc_2024_weekly-ac7f157eb6b219ee7518b492f375beb4.ics"},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>r});var l=s(67294);const i={},n=l.createContext(i);function r(e){const t=l.useContext(n);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),l.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6b404b6c.3494a9bf.js b/assets/js/6b404b6c.3494a9bf.js new file mode 100644 index 0000000000..a94026329f --- /dev/null +++ b/assets/js/6b404b6c.3494a9bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3693],{24986:s=>{s.exports=JSON.parse('{"tag":{"label":"community bonding","permalink":"/gsoc/docs/tags/community-bonding","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-02"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/6b96ecc6.bdb90c69.js b/assets/js/6b96ecc6.bdb90c69.js new file mode 100644 index 0000000000..6e70b0967d --- /dev/null +++ b/assets/js/6b96ecc6.bdb90c69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4044],{34578:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=t(85893),a=t(11151);const i={title:"Week 4",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},r=void 0,l={id:"2022/spasht/updates/2022-07-06",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/spasht/updates/2022-07-06.md",sourceDirName:"2022/spasht/updates",slug:"/2022/spasht/updates/2022-07-06",permalink:"/gsoc/docs/2022/spasht/updates/2022-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/updates/2022-07-06.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"spasht",permalink:"/gsoc/docs/tags/spasht"},{label:"clearlydefined",permalink:"/gsoc/docs/tags/clearlydefined"}],version:"current",frontMatter:{title:"Week 4",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-22"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/spasht/updates/2022-07-13"}},o={},c=[{value:"Meeting 6",id:"meeting-6",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 6th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Create a new form to take data from user about the data"}),"\n",(0,n.jsx)(s.li,{children:"Discussed about methods to get copyrights and main licenses."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Understand previous implementation of fetching data"}),"\n",(0,n.jsx)(s.li,{children:"Perform the API query similarly"}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>r});var n=t(67294);const a={},i=n.createContext(a);function r(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6dbcda96.5e5c7c80.js b/assets/js/6dbcda96.5e5c7c80.js new file mode 100644 index 0000000000..f19ff9db03 --- /dev/null +++ b/assets/js/6dbcda96.5e5c7c80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4422],{66786:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var n=s(85893),a=s(11151);const i={title:"Week 3",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},l=void 0,r={id:"2022/spasht/updates/2022-06-22",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/spasht/updates/2022-06-22.md",sourceDirName:"2022/spasht/updates",slug:"/2022/spasht/updates/2022-06-22",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/updates/2022-06-22.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"spasht",permalink:"/gsoc/docs/tags/spasht"},{label:"clearlydefined",permalink:"/gsoc/docs/tags/clearlydefined"}],version:"current",frontMatter:{title:"Week 3",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-15"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/spasht/updates/2022-07-06"}},c={},d=[{value:"Meeting 5",id:"meeting-5",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function o(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.em,{children:"(June 22nd, 2022)"})}),"\n",(0,n.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Created the basic UI for contribute back to clearly defined."}),"\n",(0,n.jsx)(t.li,{children:"I have added the fields like name, provider etc.. to post back to clearly defined."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Understand previous implementation of fetching data"}),"\n",(0,n.jsx)(t.li,{children:"Will try to send back data in a similar way"}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>l});var n=s(67294);const a={},i=n.createContext(a);function l(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6de855fa.0306bf6a.js b/assets/js/6de855fa.0306bf6a.js new file mode 100644 index 0000000000..7d636442a9 --- /dev/null +++ b/assets/js/6de855fa.0306bf6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[19],{33086:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var s=n(85893),o=n(11151);const c={title:"Week11",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},r=void 0,i={id:"2022/project/updates/2022-08-18",title:"Week11",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-08-18.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-08-18",permalink:"/gsoc/docs/2022/project/updates/2022-08-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-08-18.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week11",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week10",permalink:"/gsoc/docs/2022/project/updates/2022-08-11"},next:{title:"Week12",permalink:"/gsoc/docs/2022/project/updates/2022-08-25"}},a={},l=[{value:"Meeting 12",id:"meeting-12",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-12",children:"Meeting 12"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(August 18th, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsx)(t.p,{children:"There is no attendees list available."}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:"I implemented the functions of project add, delete and edit. However, the function of project delete couldn't delete the records in database in fact. Mentors tell me it may be because of the delagent and I am better to put this topic later."}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I will try to implemnt the function of Browse in project view in next week."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var s=n(67294);const o={},c=s.createContext(o);function r(e){const t=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6e6f23f0.752151b7.js b/assets/js/6e6f23f0.752151b7.js new file mode 100644 index 0000000000..e968689ab1 --- /dev/null +++ b/assets/js/6e6f23f0.752151b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4807],{20556:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>o,frontMatter:()=>h,metadata:()=>a,toc:()=>c});var i=s(85893),t=s(11151);const h={title:"Weekly Updates (Community Bonding)",author:"Aaditya Singh"},r="Meeting 7",a={id:"2024/scheduler/updates/2024-06-06",title:"Weekly Updates (Community Bonding)",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/2024-06-06.md",sourceDirName:"2024/scheduler/updates",slug:"/2024/scheduler/updates/2024-06-06",permalink:"/gsoc/docs/2024/scheduler/updates/2024-06-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/2024-06-06.md",tags:[],version:"current",frontMatter:{title:"Weekly Updates (Community Bonding)",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-03",permalink:"/gsoc/docs/2024/scheduler/updates/2024-05-23"},next:{title:"OVERHAULING SCHEDULER DESIGN (Discussion)",permalink:"/gsoc/docs/2024/scheduler/updates/2024-06-07"}},l={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Missed",id:"missed",level:2},{value:"General Discussion",id:"general-discussion",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-7",children:"Meeting 7"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 06, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"missed",children:"Missed"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general-discussion",children:"General Discussion"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentors:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Provided general updates about the project."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),": Suggested using a tool like ",(0,i.jsx)(n.a,{href:"https://languagetool.org",children:"LanguageTool"})," for creating GSoC documentation."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Contributors"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"}),": Demonstrated a short demo on current work involving parsing comment text of a file from FOSSology, prompting it to multiple LLM's for license name recognition. Mentioned the need to clean up and reorder the data."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"}),": Presented a PPT on the end-to-end flow and code of the Safaa project, currently working on scripts to extract data from FOSSology."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Discussed rewriting the scheduler code from C to Go based on last meeting with mentors, raised a PR for the same. Exploring different approaches to complete this task."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"}),": Was absent."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"}),": Discussed with mentors about using JSON format to convert the license expression and store it in a database, currently working on creating a UI for the same."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"}),": Completed implementation of OAuth via API; currently looking into upgrading API from V1 to V2."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"}),": Discussed pulling line numbers of findings and integration challenges, was able to fetch keyword information but faced issues with copyright."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"}),": Was absent."]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var i=s(67294);const t={},h=i.createContext(t);function r(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6ef9a503.ef028655.js b/assets/js/6ef9a503.ef028655.js new file mode 100644 index 0000000000..1e0a87bb9c --- /dev/null +++ b/assets/js/6ef9a503.ef028655.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1507],{47900:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var a=n(85893),o=n(11151);const i={title:"Week 2",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},s=void 0,r={id:"2022/ui/updates/soham/2022-07-3",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-07-3.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-07-3",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-3",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-07-3.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 2",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-06-24"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-7"}},l={},c=[{value:"Horizontal Pagination implementation",id:"horizontal-pagination-implementation",level:2},{value:"PR link - feat(ui): horizontal pagination added in allRecentJobs",id:"pr-link---featui-horizontal-pagination-added-in-allrecentjobs",level:3},{value:"/jobs API",id:"jobs-api",level:2},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"horizontal-pagination-implementation",children:"Horizontal Pagination implementation"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.em,{children:"(June 25th, 2022)"})}),"\n",(0,a.jsx)(t.p,{children:"Implementation of the horizontal page navigator. The pagination module fetches the data from the API on page basis thus reducing the response time of the API."}),"\n",(0,a.jsxs)(t.p,{children:["The All Recent Jobs page with the new Pagination module: ",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(t.img,{alt:"pagination",src:n(6685).Z+"",width:"1920",height:"1080"})]}),"\n",(0,a.jsx)(t.p,{children:"The Module also contains a text box so that user can directly navigate to that particular page at once.\nThis was suggested by one of the mentors and was implemented after."}),"\n",(0,a.jsxs)(t.h3,{id:"pr-link---featui-horizontal-pagination-added-in-allrecentjobs",children:["PR link - ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/235",children:"feat(ui): horizontal pagination added in allRecentJobs"})]}),"\n",(0,a.jsx)(t.h2,{id:"jobs-api",children:"/jobs API"}),"\n",(0,a.jsx)(t.p,{children:"Started modifying the /jobs API and currently making a demo docuentation so that the flow of the APIs can be made clear. The API was discussed in the meeting and mentor asked to implement it in a certain suitable way."}),"\n",(0,a.jsxs)(t.p,{children:["Current response of the API: ",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(t.img,{alt:"jobs_res",src:n(42038).Z+"",width:"611",height:"591"})]}),"\n",(0,a.jsx)(t.p,{children:"Mentors asked to take the user ID as a parameter and not in the URL itself. In addition to this there were suggested changes in the endpoint names and processes which are yet to be implemented."}),"\n",(0,a.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Currently will be completing the doc related to the API development in order to clear the flow of the upcoming APIs"}),"\n",(0,a.jsxs)(t.li,{children:["Implementing the same Pagination module to the ",(0,a.jsx)(t.code,{children:"/browse"})," page, Thus making navigation easier in that page too."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},42038:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/jobs_res-43e3553e6bb09e9d139a270bc555f796.png"},6685:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/pagination-72c768c39e344b949828b7ac91180f40.png"},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>s});var a=n(67294);const o={},i=a.createContext(o);function s(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f131a30.fe4520e9.js b/assets/js/6f131a30.fe4520e9.js new file mode 100644 index 0000000000..c306ab81e1 --- /dev/null +++ b/assets/js/6f131a30.fe4520e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2723],{2329:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var s=o(85893),n=o(11151);const i={sidebar_position:3,title:"Setup"},c=void 0,r={id:"2021/copyrights/setup",title:"Setup",description:"\x3c!--",source:"@site/docs/2021/copyrights/setup.md",sourceDirName:"2021/copyrights",slug:"/2021/copyrights/setup",permalink:"/gsoc/docs/2021/copyrights/setup",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/setup.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Setup"},sidebar:"2021",previous:{title:"Week 9",permalink:"/gsoc/docs/2021/copyrights/updates/2021-08-10"},next:{title:"Introduction",permalink:"/gsoc/docs/2021/microservice/"}},p={},u=[];function a(t){const e={p:"p",...(0,n.a)(),...t.components};return(0,s.jsx)(e.p,{children:"Something about setting up the project."})}function d(t={}){const{wrapper:e}={...(0,n.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(a,{...t})}):a(t)}},11151:(t,e,o)=>{o.d(e,{Z:()=>r,a:()=>c});var s=o(67294);const n={},i=s.createContext(n);function c(t){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:c(t.components),s.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/708890f5.0bac7b9a.js b/assets/js/708890f5.0bac7b9a.js new file mode 100644 index 0000000000..272945c0e6 --- /dev/null +++ b/assets/js/708890f5.0bac7b9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8225],{97735:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=s(85893),i=s(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2024/spdx-expression/"},r=void 0,l={id:"2024/spdx-expression/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/index.md",sourceDirName:"2024/spdx-expression",slug:"/2024/spdx-expression/",permalink:"/gsoc/docs/2024/spdx-expression/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/spdx-expression/"},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-25"},next:{title:"Community Bonding Report",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-05-07"}},a={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/AkashSah2003",children:"Akash Sah"})}),"\n",(0,t.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:akashsah2003@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.linkedin.com/in/akashsah2003/",children:"LinkedIn"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,t.jsx)(n.p,{children:"SPDX License Expression Support"}),"\n",(0,t.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,t.jsx)(n.p,{children:"This project aims to support the detection and reporting of SPDX License Expressions. Currently, FOSSology uses regular expressions, full-text match, and fuzzy match to scan licenses, stores all types of license expressions as a list of licenses, and wrongly classifies them as conjunctive licenses or disjunctive licenses. It also stores license exceptions as licenses and does not differentiate exceptions from licenses."}),"\n",(0,t.jsx)(n.p,{children:"In the project, I will be working on scanning license expressions using regular expressions with Ojo, storing them in the database, creating UI components to see license expressions in the file clearing page, and finally updating reports to export the expressions in the correct format."}),"\n",(0,t.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Detect and validate license expressions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Develop algorithms for accurately detecting SPDX license expressions and validating them."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Store license expressions and metadata in database"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Design and implement a database schema to store complete license expressions and associated metadata."}),"\n",(0,t.jsx)(n.li,{children:"Develop mechanisms for efficient retrieval and manipulation of license expression data."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Improve User Interface"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Create intuitive UI components to visualize and manage license expressions."}),"\n",(0,t.jsx)(n.li,{children:"Allow users to interactively create and edit license expressions."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Update Report Generation:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Enhance and correct SPDX report generation functionality to accurately represent license expressions."}),"\n"]}),"\n"]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>r});var t=s(67294);const i={},o=t.createContext(i);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7121b741.50407b83.js b/assets/js/7121b741.50407b83.js new file mode 100644 index 0000000000..6b190d9bc9 --- /dev/null +++ b/assets/js/7121b741.50407b83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8121],{75836:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>d});var i=s(85893),t=s(11151);const c={title:"Week 7",author:"Sarita Singh"},r=void 0,o={id:"2021/scancode/updates/2021-07-20",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-07-20.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-07-20",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Sarita Singh"},sidebar:"2021",previous:{title:"Week 6",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-13"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-27"}},a={},d=[{value:"Coding Week 7 Meeting 1",id:"coding-week-7-meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 6 Progress",id:"week-6-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Coding Week 7 Meeting 2",id:"coding-week-7-meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function l(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-7-meeting-1",children:"Coding Week 7 Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-20"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-6-progress",children:"Week 6 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Populated copyright table for scancode."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Extended Email/URL/Author Browser to add scan result by ScanCode."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"There are two levels of pagination one for FOSSology and ScanCode and other for email/url/author tabs."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:s(56966).Z+"",width:"1854",height:"1048"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"All the available options for Test replacement, Replace selected rows and, Deactivate selected rows are working good."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["There is a bug in the pagination of the Email/URL/Author Browser. It could be possibly because of cookies. Check out storage of the inspect page, there will be index for different ",(0,i.jsx)(n.code,{children:"cookies"})," and it would be helpful in debugging."]}),"\n",(0,i.jsx)(n.li,{children:"Maintagent can be taken as a reference to create verbose flags. ScanCode UI will look like reuser/desider in the upload section."}),"\n",(0,i.jsxs)(n.li,{children:["There is a problem in finding start byte of copyright due to ",(0,i.jsx)(n.code,{children:"unicode character"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["ScanCode change ",(0,i.jsx)(n.code,{children:"\xa9"})," to ",(0,i.jsx)(n.code,{children:"(c)"})," and also removes some of the characters like ",(0,i.jsx)(n.code,{children:":"})," from ",(0,i.jsx)(n.code,{children:"copyright(c): Sarita Singh"})," and scan results to ",(0,i.jsx)(n.code,{children:"copyright (c) Sarita Singh"}),". This thing causes issue in finding start byte of copyright and also integrating scancode copyright to report(unable to remove redundant data)."]}),"\n",(0,i.jsxs)(n.li,{children:["Michael suggested to drop copyright and ",(0,i.jsx)(n.code,{children:"unicode characters"})," and then use sub-string matching to find approx. position(but it would be inaccurate)."]}),"\n",(0,i.jsxs)(n.li,{children:["Creating a ScanCode plugin to get ",(0,i.jsx)(n.code,{children:"copyright text"})," like ",(0,i.jsx)(n.code,{children:"matched license text"})," would solve the issue."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Fix author tabs."}),"\n",(0,i.jsx)(n.li,{children:"Use verbose flags for scancode agent like maintagent."}),"\n",(0,i.jsx)(n.li,{children:"creating a scancode plugin to get copyright text can work."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"coding-week-7-meeting-2",children:"Coding Week 7 Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-23"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["ScheduleAgent function code in ",(0,i.jsx)(n.code,{children:"scancode/ui/agent_scancode.php"})," is correct."]}),"\n",(0,i.jsxs)(n.li,{children:["Format of flag for ",(0,i.jsx)(n.code,{children:"jq_cmd_args"})," depends upon the code we are using to parse this flag inside the ScanCode agent."]}),"\n",(0,i.jsx)(n.li,{children:"Gaurav suggested to take reference for cliOptions from copyright or ojo agent."}),"\n",(0,i.jsxs)(n.li,{children:["They are using ",(0,i.jsx)(n.code,{children:"Boost.Program_options"})," library which can be used to parse command line arguments and get ScanCode flags."]}),"\n",(0,i.jsx)(n.li,{children:"Further, this code can be reused for adding ScanCode agent to run by command line."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["ScheduleAgent function in ",(0,i.jsx)(n.code,{children:"scancode/ui/agent_scancode.php"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Next step is to parse the scancode args to get scancode CLI flags."}),"\n",(0,i.jsx)(n.li,{children:"Use Boost program options for scancode CLI."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},56966:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/author-a746aedb7f8c326a7bd277de7598f554.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>r});var i=s(67294);const t={},c=i.createContext(t);function r(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/720c9529.0101bdf0.js b/assets/js/720c9529.0101bdf0.js new file mode 100644 index 0000000000..5f342662d2 --- /dev/null +++ b/assets/js/720c9529.0101bdf0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4472],{40843:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>l,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var s=n(85893),i=n(11151);const a={sidebar_position:1,title:"Introduction",slug:"/2022/spasht/"},o="Discontinued",r={id:"2022/spasht/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2022/spasht/index.md",sourceDirName:"2022/spasht",slug:"/2022/spasht/",permalink:"/gsoc/docs/2022/spasht/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2022/spasht/"},sidebar:"2022",previous:{title:"Week 13",permalink:"/gsoc/docs/2022/reuse/updates/2022-09-06"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-02"}},d={},c=[{value:"Author",id:"author",level:3},{value:"Enhancement with ClearlyDefined.io (spasht)",id:"enhancement-with-clearlydefinedio-spasht",level:2}];function h(e){const t={h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"discontinued",children:"Discontinued"}),"\n",(0,s.jsx)(t.p,{children:"The project was discontinued by the contributor on 2022/07/19."}),"\n",(0,s.jsx)(t.h3,{id:"author",children:"Author"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Thanvi Lahari Pendyala"}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"enhancement-with-clearlydefinedio-spasht",children:"Enhancement with ClearlyDefined.io (spasht)"}),"\n",(0,s.jsx)(t.p,{children:"The Spasht agent is used to fetch the metadata of licenses and copyrights of\nany uploaded package or project. The fetched data from the ClearlyDefined.io is\nstored in the spasht database and displayed using license and copyright tables."}),"\n",(0,s.jsx)(t.p,{children:'To send or push the curated data back to ClearlyDefined.io, According to\nClearlyDefined, we have to send an HTTP request with or without the PR segment.\nIf any PR number is mentioned in the HTTP request, the information regarding\nthat PR is fetched. Otherwise, the data is fetched for the default branch\n"master". The curated data is updated as ClearlyDescribed and ClearlyLicensed.\nThe ClearlyDescribed contains the data of properties like source location,\nissues, Project website, and release dates, whereas the ClearlyLicensed\nincludes the data of properties like license, attribution, and number of files.'}),"\n",(0,s.jsx)(t.p,{children:"The full curation of a project is returned to Spasht, and the curated data of\nthe selected project revision is pushed back to ClearlyDefined.io via patches.\nPatches contain the licensed and described data of the project. The figure\nbelow shows us a set of curations that contains the patches."})]})}function l(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>o});var s=n(67294);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/72129108.6b6ecbec.js b/assets/js/72129108.6b6ecbec.js new file mode 100644 index 0000000000..5caacd21e4 --- /dev/null +++ b/assets/js/72129108.6b6ecbec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6467],{72144:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var o=t(85893),s=t(11151);const r={title:"Week 1",author:"Sushant Kumar"},c=void 0,l={id:"2023/cyclonedx/updates/2023-06-01",title:"Week 1",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-06-01.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-06-01",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-01",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-06-01.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Community bonding",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-05-11"},next:{title:"Week 2",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-08"}},i={},a=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:(0,o.jsx)(n.em,{children:"(June,01,2023)"})}),"\n",(0,o.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["I was primarily exploring the\n",(0,o.jsx)(n.a,{href:"https://github.com/fossology/fossology/tree/master/src/spdx2",children:"SPDX2"})," agent\ncodebase while setting up FOSSology and configuring the PHP debugger for\ndevelopment."]}),"\n",(0,o.jsxs)(n.li,{children:["During this process, ",(0,o.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," helped me in\nhandling the errors that I encountered and running agents from the command\nline."]}),"\n",(0,o.jsxs)(n.li,{children:["To run an agent from the terminal, we can use the following command:","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.code,{children:"echo <args> | sudo /usr/local/etc/fossology/mods-enabled/<agent>/agent/<agent> --jobId=<job_id> --config=/usr/local/etc/fossology --userID=3 --groupID=3 --scheduler_start"})}),"\n",(0,o.jsxs)(n.li,{children:["Please replace ",(0,o.jsx)(n.code,{children:"<args>"}),", ",(0,o.jsx)(n.code,{children:"<agent>"})," and ",(0,o.jsx)(n.code,{children:"<job_id>"})," with the appropriate\nvalues when executing the command."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"I will start working on the CycloneDx agent in the upcoming week."}),"\n",(0,o.jsx)(n.li,{children:"For now, my plan is to create a demo agent for CycloneDx and test if it's\nrunning correctly from the command line."}),"\n",(0,o.jsxs)(n.li,{children:["Once I have successfully created the agent, I will utilize the ",(0,o.jsx)(n.a,{href:"https://github.com/CycloneDX/cyclonedx-php-library",children:"CycloneDx PHP\nlibrary"})," to generate\nreports for FOSSology."]}),"\n",(0,o.jsx)(n.li,{children:"After generating the report, I will work on creating a custom implementation\nof CycloneDx to generate our own reports in FOSSology."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>c});var o=t(67294);const s={},r=o.createContext(s);function c(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/729b1647.ccdcfe19.js b/assets/js/729b1647.ccdcfe19.js new file mode 100644 index 0000000000..2820012198 --- /dev/null +++ b/assets/js/729b1647.ccdcfe19.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5561],{10108:e=>{e.exports=JSON.parse('{"tag":{"label":"project","permalink":"/gsoc/docs/tags/project","allTagsPath":"/gsoc/docs/tags","count":15,"items":[{"id":"2022/project/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-02"},{"id":"2022/project/updates/2022-06-09","title":"Week1","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-09"},{"id":"2022/project/updates/2022-08-11","title":"Week10","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-11"},{"id":"2022/project/updates/2022-08-18","title":"Week11","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-18"},{"id":"2022/project/updates/2022-08-25","title":"Week12","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-25"},{"id":"2022/project/updates/2022-09-01","title":"Week13","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-09-01"},{"id":"2022/project/updates/2022-09-08","title":"Week14","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-09-08"},{"id":"2022/project/updates/2022-06-16","title":"Week2","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-16"},{"id":"2022/project/updates/2022-06-23","title":"Week3","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-23"},{"id":"2022/project/updates/2022-06-30","title":"Week4","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-06-30"},{"id":"2022/project/updates/2022-07-07","title":"Week5","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-07"},{"id":"2022/project/updates/2022-07-14","title":"Week6","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-14"},{"id":"2022/project/updates/2022-07-21","title":"Week7","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-21"},{"id":"2022/project/updates/2022-07-28","title":"Week8","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-07-28"},{"id":"2022/project/updates/2022-08-04","title":"Week9","description":"\x3c!--","permalink":"/gsoc/docs/2022/project/updates/2022-08-04"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/72e6a776.ab44e075.js b/assets/js/72e6a776.ab44e075.js new file mode 100644 index 0000000000..24098377f9 --- /dev/null +++ b/assets/js/72e6a776.ab44e075.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7061],{75254:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>l,frontMatter:()=>h,metadata:()=>o,toc:()=>d});var n=t(85893),i=t(11151);const h={title:"Week 8",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},r=void 0,o={id:"2022/reuse/updates/2022-08-02",title:"Week 8",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-08-02.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-08-02",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-08-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 8",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 7",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-25"},next:{title:"Week 9",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-09"}},a={},d=[{value:"Meeting 18",id:"meeting-18",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 19",id:"meeting-19",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3}];function c(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-18",children:"Meeting 18"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 2nd, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Two happy moments for me this week:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"I passed the midterm evaluation for Google Summer of Code 2022."}),"\n",(0,n.jsxs)(s.li,{children:["My first part of the project - ",(0,n.jsx)(s.code,{children:"Adopting the REUSE Standard in Fossology codebase"})," is completed and merged with the master branch. Now Fossology codebase is compliant with REUSE standards."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"I created documentation on Copyright and Licensing styles and presented it to mentors. Mentors were pleased with the documentation and asked me to update the reso agent's documentation as well.\n-As I am unable to push the wiki changes into the Fossology repository, I asked mentors how to do so."}),"\n",(0,n.jsx)(s.li,{children:"I discussed with mentors whether it is necessary to trigger the copyright agent, even if it was not selected when the file was uploaded, in the case of the reso agent. Mentors advised not to do so now because it would create a problem with the clearing decision. If reso agent triggers copyright agent, it will also replace the previous status of clearing."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"meeting-19",children:"Meeting 19"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 4th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["This week I worked on documentation and implemented remaining solution for issue ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/1513",children:"#1513"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"I shared my experience with the Fossology community and GSoC coding period 1 during the weekly update session. I received positive feedback on my performance from my mentors."}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>r});var n=t(67294);const i={},h=n.createContext(i);function r(e){const s=n.useContext(h);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(h.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7352dcc5.297f6992.js b/assets/js/7352dcc5.297f6992.js new file mode 100644 index 0000000000..a2c9c9b8e3 --- /dev/null +++ b/assets/js/7352dcc5.297f6992.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1163],{45477:s=>{s.exports=JSON.parse('{"tag":{"label":"buildsystem","permalink":"/gsoc/docs/tags/buildsystem","allTagsPath":"/gsoc/docs/tags","count":10,"items":[{"id":"2021/buildsystem/updates/2021-05-28","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-05-28"},{"id":"2021/buildsystem/updates/2021-06-11","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-11"},{"id":"2021/buildsystem/updates/2021-08-13","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-13"},{"id":"2021/buildsystem/updates/2021-06-18","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-18"},{"id":"2021/buildsystem/updates/2021-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-22"},{"id":"2021/buildsystem/updates/2021-06-29","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-29"},{"id":"2021/buildsystem/updates/2021-07-09","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-09"},{"id":"2021/buildsystem/updates/2021-07-23","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-23"},{"id":"2021/buildsystem/updates/2021-07-30","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-30"},{"id":"2021/buildsystem/updates/2021-08-06","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-06"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/738251cf.4242994b.js b/assets/js/738251cf.4242994b.js new file mode 100644 index 0000000000..5d8551d272 --- /dev/null +++ b/assets/js/738251cf.4242994b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[300],{33025:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>t,metadata:()=>l,toc:()=>o});var r=s(85893),i=s(11151);const t={title:"Week 8",author:"Kaushlendra"},c="Coding Week 8 Meeting",l={id:"2021/copyrights/updates/2021-08-03",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-08-03.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-08-03",permalink:"/gsoc/docs/2021/copyrights/updates/2021-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-08-03.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-20"},next:{title:"Week 9",permalink:"/gsoc/docs/2021/copyrights/updates/2021-08-10"}},d={},o=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 8 Progress",id:"week-8-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"coding-week-8-meeting",children:"Coding Week 8 Meeting"}),"\n",(0,r.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,r.jsx)(n.li,{children:"Vasudev"}),"\n",(0,r.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,r.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,r.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,r.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Provided with more edge cases to retaliate."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Discussion whether a good model will result in good extraction and results."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Discussion over calculating the PRECISION of the algorithm using the predefined accuracies."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:'Different models for NER was discussed, like "en_core_web_md", "en_core_web_lg" & "en_core_web_trf"'}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Discussions over the process of clutter removal from the copyrights. E.g."}),"\n",(0,r.jsxs)(n.p,{children:["Original Copyright: ",(0,r.jsx)(n.code,{children:"Copyright (c) 2018 Kaushlendra Pratap. Distributed under the MIT license........."})]}),"\n",(0,r.jsxs)(n.p,{children:["After Clutter Removal: ",(0,r.jsx)(n.code,{children:"Copyright (c) 2018 Kaushlendra Pratap."})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"A REGEX based approach was discussed to extract the exact copyright statements out and decided to keep it as a last resort."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"An approach using the heuristic approach was taken as two pointers to go from one NER extracted entity till the exact thing is acquired."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"After long discussions over approaches and the edge cases that should be encountered, the final approach included the STRING MANIPULATION."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The edge cases decided was:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"['ORG'] encountered"}),"\n",(0,r.jsx)(n.li,{children:"['PERSON'] encountered"}),"\n",(0,r.jsx)(n.li,{children:"['ORG] and ['PERSON'] both were encountered"}),"\n",(0,r.jsx)(n.li,{children:'Hard code string value if "All rights reserved" or "Distributed under the licenses" was present'}),"\n",(0,r.jsx)(n.li,{children:"Finally the regex approach for the left out cases."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The time complexity of the algorithm was under the close watch"}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"week-8-progress",children:"Week 8 Progress"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The edge cases provided were screened through the algorithm and results were improved."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Several models were tried including all the en_core_web(md, lg and trf)."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The accuracy was not impacted as such using the heavy models."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:'The most accuracy was given by "en_core_web_trf", i.e. 89.06 from 89.02 which is a minor change but on the other, the implementation time for 100 thousand copyright statements was 1.2 hours.'}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:'Performance over accuracy was chosen. (Stayed with "en_core_web_sm")'}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The accuracy of 100 thousand copyrights were stretched to 90 - 91% approx."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Final accuracy variable was created with the formula of PRECISION: ",(0,r.jsx)(n.code,{children:"TP+TN/FP+TP+TN+FN"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["The PRECISION was calculated to be: ",(0,r.jsx)(n.strong,{children:"94.07%"})," (for 100 thousand copyright statements)"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The clutter removal flag was created and developed in such a way that,"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"USER: Provides FLAG => 1"}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"IF COPYRIGHT is True:"}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"IF FLAG is True:"}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"CALL FUNC() -> Remove clutter"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"TWO edge cases of clutter removal were covered, i.e. the hardcoded string-based and ['ORG'] was present."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Wiki has been Updated"}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,r.jsx)(n.p,{children:"Different level of clutter removal should be implemented."})]})}function a(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>c});var r=s(67294);const i={},t=r.createContext(i);function c(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7391904a.677ac94d.js b/assets/js/7391904a.677ac94d.js new file mode 100644 index 0000000000..ea0269d38f --- /dev/null +++ b/assets/js/7391904a.677ac94d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7588],{26256:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var s=t(85893),o=t(11151);const i={title:"Week 3",author:"Sushant Kumar"},r=void 0,c={id:"2023/cyclonedx/updates/2023-06-15",title:"Week 3",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-06-15.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-06-15",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-06-15.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 2",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-08"},next:{title:"Week 4",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-22"}},a={},l=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June,15,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsx)(n.p,{children:"This week, my work on the project primarily involved three main components:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Researching and studying the details of CycloneDX reports:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I explored into the CycloneDX schema, which helped me understand the\nspecific data that can and cannot be included in the reports generated by\nFOSSology."}),"\n",(0,s.jsx)(n.li,{children:"Additionally, I successfully mapped the required data fields between SPDX\nand CycloneDX reports."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Generating a CycloneDX report:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I focused on generating the report in JSON format, and I accomplished this\ntask successfully."}),"\n",(0,s.jsx)(n.li,{children:"Here is an example of the report generated:"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:' {\n "bomFormat": "CycloneDX",\n "specVersion": "1.4",\n "version": 0,\n "$schema": "https://cyclonedx.org/schema/bom/1.4/schema.json",\n "serialNumber": "urn:uuid:BomRef.6-4881-a807-a47d-7.16459827",\n "metadata": {\n "timestamp": "2023-06-13T12:58:00+05:30",\n "tools": [\n {\n "vendor": "FOSSology",\n "name": "FOSSology",\n "version": "1.0.0"\n }\n ]\n },\n "components": [\n {\n "type": "file",\n "name": "File 1",\n "mime-type": "application/octet-stream",\n "bom-ref": "ABCDEF123",\n "supplier": {\n "name": "Supplier 1",\n "url": [],\n "contact": []\n }\n "scope": "required",\n "hashes": [],\n "licenses": [\n {\n "license": {\n "id": "License1",\n "name": "License 1",\n "text": {\n "content": "TGljZW5zZSB0ZXh0IDE=",\n "contentType": "text/plain",\n "encoding": "base64"\n },\n "url": "https://example.com/license1"\n },\n "expression": "License expression 1"\n },\n {\n "license": {\n "id": "License2",\n "name": "License 2",\n "text": {\n "content": "TGljZW5zZSB0ZXh0IDI=",\n "contentType": "text/plain",\n "encoding": "base64"\n },\n "url": "https://example.com/license2"\n },\n "expression": "License expression 2"\n }\n ],\n "copyright": "Copyright 1"\n },\n {\n "type": "file",\n "name": "File 2",\n "mime-type": "application/octet-stream",\n "bom-ref": "ABCDEF456",\n "supplier": {\n "name": "Supplier 2",\n "url": [],\n "contact": []\n },\n "scope": "required",\n "hashes": [],\n "licenses": [\n {\n "license": {\n "id": "License3",\n "name": "License 3",\n "text": {\n "content": "TGljZW5zZSB0ZXh0IDM=",\n "contentType": "text/plain",\n "encoding": "base64"\n },\n "url": "https://example.com/license3"\n },\n "expression": "License expression 3"\n }\n ],\n "copyright": "Copyright 2"\n }\n ]\n }\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"It's important to note that the data in the above report is not sourced\nfrom FOSSology. However, all the fields can be populated with data from\nthe FOSSology database."}),"\n",(0,s.jsxs)(n.li,{children:["The report primarily emphasizes the components of an upload. While the\n",(0,s.jsx)(n.a,{href:"https://cyclonedx.org/specification/overview/",children:"CycloneDX specification"}),"\nallows for various types of components such as ",(0,s.jsx)(n.code,{children:"Application"}),", ",(0,s.jsx)(n.code,{children:"Container"}),",\n",(0,s.jsx)(n.code,{children:"Device"}),", ",(0,s.jsx)(n.code,{children:"Library"}),", ",(0,s.jsx)(n.code,{children:"File"}),", ",(0,s.jsx)(n.code,{children:"Firmware"}),", ",(0,s.jsx)(n.code,{children:"Framework"}),", and ",(0,s.jsx)(n.code,{children:"Operating System"}),", we only need to include ",(0,s.jsx)(n.code,{children:"File"})," components in FOSSology reports."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Validating the report:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["I developed a simple PHP code that can be utilized to validate the report\nagainst the ",(0,s.jsx)(n.a,{href:"https://github.com/CycloneDX/cyclonedx-php-library/blob/master/res/schema/bom-1.4.SNAPSHOT.schema.json",children:"CycloneDX\nschema"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Here is the function that validates the report:"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-PHP",children:" function validateJSONAgainstSchema($jsonFile, $schemaFile)\n {\n $jsonString = file_get_contents($jsonFile);\n $schemaString = file_get_contents($schemaFile);\n \n $jsonData = json_decode($jsonString);\n $schemaData = json_decode($schemaString);\n \n $validator = new Validator();\n $validator->validate($jsonData, $schemaData);\n \n if (!$validator->isValid()) {\n $errors = array_map(function ($error) {\n return $error['property'] . ': ' . $error['message'];\n }, $validator->getErrors());\n \n return $errors;\n }\n \n return true;\n }\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"In the upcoming weeks, I will work on CycloneDX agent implementation in\nFOSSology."}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var s=t(67294);const o={},i=s.createContext(o);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/744e4968.ed3c9cd0.js b/assets/js/744e4968.ed3c9cd0.js new file mode 100644 index 0000000000..f5f49fe428 --- /dev/null +++ b/assets/js/744e4968.ed3c9cd0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7121],{33538:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>h,metadata:()=>l,toc:()=>c});var i=n(85893),t=n(11151);const h={title:"Week 1",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},r=void 0,l={id:"2022/reuse/updates/2022-06-13",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-06-13.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-06-13",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-06-13.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 1",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-02"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-20"}},o={},c=[{value:"Meeting 4",id:"meeting-4",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 5",id:"meeting-5",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3}];function a(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 13th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSoC 2022 Discussions - REUSE"}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Implemented REUSE licensing and copyright information in 157 files and raised pull request ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2235",children:"#2235"})," for review."]}),"\n",(0,i.jsxs)(s.li,{children:["Current REUSE status","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["When running reuse lint, the result is as follows:","\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"Files with copyright information: 2619 / 4360\nFiles with license information: 660 / 4360\n"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["Before that we were at:","\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"Files with copyright information: 2616 / 4360\nFiles with license information: 503 / 4360\n"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," changed the base branch of my pull request to ",(0,i.jsx)(s.code,{children:"contrib/reuse/change-repo-standard"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"I proposed that a DEP5 file can be used for licensing and copyrighting of testdata files."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Work on suggestion/comment added in the pull request ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2235",children:"#2235"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 16th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,i.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Working on comments added by mentors ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2235",children:"#2235"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Making the necessary changes to the copyright of previously modified files since the author should not be included in copyright text."}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>r});var i=n(67294);const t={},h=i.createContext(t);function r(e){const s=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(h.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/746dc50c.581ead12.js b/assets/js/746dc50c.581ead12.js new file mode 100644 index 0000000000..5213a761af --- /dev/null +++ b/assets/js/746dc50c.581ead12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6032],{36036:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var s=n(85893),o=n(11151);const i={title:"Week10",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},c=void 0,r={id:"2022/project/updates/2022-08-11",title:"Week10",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-08-11.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-08-11",permalink:"/gsoc/docs/2022/project/updates/2022-08-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-08-11.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week10",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week9",permalink:"/gsoc/docs/2022/project/updates/2022-08-04"},next:{title:"Week11",permalink:"/gsoc/docs/2022/project/updates/2022-08-18"}},a={},l=[{value:"Meeting 11",id:"meeting-11",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-11",children:"Meeting 11"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(August 11st, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsx)(t.p,{children:"There is no attendees list available."}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:"I implement the function of upload a file to a project. To do that, I write a new ProjectDao and modify the database structure. The content stored in project and projectcontent table is still with some bug. I will fixed it next week.\nMentors points some misunderstanding of my implement. They also advises me to do project create and delete function as my next step."}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I will first fix the bug in upload function. Then I will try to implement the functions of project add, delete and edit."}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>c});var s=n(67294);const o={},i=s.createContext(o);function c(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7481d326.396c1338.js b/assets/js/7481d326.396c1338.js new file mode 100644 index 0000000000..83ebdd524b --- /dev/null +++ b/assets/js/7481d326.396c1338.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8845],{21515:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var s=i(85893),t=i(11151);const r={title:"Week 1",author:"Omar AbdelSamea"},d="Coding Week 1",o={id:"2021/microservice/updates/2021-06-07",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-06-07.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-06-07",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-06-07.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Introduction",permalink:"/gsoc/docs/2021/microservice/"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-15"}},c={},l=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Meeting 1",id:"meeting-1",level:2},{value:"Organizer",id:"organizer-1",level:3},{value:"Attendees",id:"attendees-1",level:3},{value:"Outcomes",id:"outcomes-1",level:3},{value:"Creating network using docker-compose",id:"creating-network-using-docker-compose",level:2},{value:"Issues",id:"issues",level:3},{value:"Solution",id:"solution",level:4},{value:"End of the week results",id:"end-of-the-week-results",level:2}];function a(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-1",children:"Coding Week 1"}),"\n",(0,s.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,s.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev Maduri"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Singh"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Pratap"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav illustrated how scheduler starts agents and the communication between them."}),"\n",(0,s.jsx)(n.li,{children:"Discussed how the db container should be implemented and the process of installing FOSSology schema inside the container."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.h3,{id:"organizer-1",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev Maduri"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Singh"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Pratap"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"outcomes-1",children:"Outcomes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Discussed the issues while trying to setup Docker-compse."}),"\n",(0,s.jsx)(n.li,{children:"Discussed a possible implementation of communication between the scheduler and agents."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"creating-network-using-docker-compose",children:"Creating network using docker-compose"}),"\n",(0,s.jsx)(n.h3,{id:"issues",children:"Issues"}),"\n",(0,s.jsxs)(n.p,{children:["1- While trying to connect the scheduler container with db container using docker-compose. the ",(0,s.jsx)(n.code,{children:"docker-entrypoint"})," have ",(0,s.jsx)(n.code,{children:"fo-postinstall"})," inside it to install FOSSology db schema inside the db container, but ",(0,s.jsx)(n.code,{children:"core-schema.dat"})," wasn't found inside the scheduler container."]}),"\n",(0,s.jsx)(n.h4,{id:"solution",children:"Solution"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"core-schema.dat"})," is found inside ",(0,s.jsx)(n.code,{children:"fossology-web.deb"})," hence this package is installed inside the scheduler container. Better solution will be provided in the future as the required file ",(0,s.jsx)(n.code,{children:"core-schema.dat"})," could be copied to the container in the Dockerfile."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["2- nomos container exits immediately and it returns ",(0,s.jsx)(n.strong,{children:"status code 0"}),". ",(0,s.jsx)(n.code,{children:"exec /usr/sbin/sshd -D"})," and ",(0,s.jsx)(n.code,{children:"exec /bin/bash"})," both added to the ",(0,s.jsx)(n.code,{children:"docker-entrypoint"})," to keep the container running but it didn't work."]}),"\n",(0,s.jsx)(n.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Created a separate container for PostgreSQL database"}),"\n",(0,s.jsxs)(n.li,{children:["Solved the issues between the scheduler and database, checked all missing dependencies for correct starting of all containers and configured the ",(0,s.jsx)(n.code,{children:"docker-entrypoint.sh"})," to work with all the separate containers"]}),"\n",(0,s.jsx)(n.li,{children:"Started a network using docker-compose with the new Dockerfiles between scheduler, UI and database."}),"\n",(0,s.jsx)(n.li,{children:"Started the initial implemntation of K8s cluster."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>d});var s=i(67294);const t={},r=s.createContext(t);function d(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/764b643c.522ff10b.js b/assets/js/764b643c.522ff10b.js new file mode 100644 index 0000000000..8c5c34c3c8 --- /dev/null +++ b/assets/js/764b643c.522ff10b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8628],{71209:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>n,metadata:()=>c,toc:()=>a});var i=t(85893),o=t(11151);const n={title:"Week 7",author:"Abdelrahman Jamal"},r=void 0,c={id:"2023/copyrights/updates/2023-07-12",title:"Week 7",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-07-12.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-07-12",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-12",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-07-12.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 6",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-05"},next:{title:"Week 8",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-19"}},l={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Script Development",id:"script-development",level:3},{value:"Scancodes Library Observations",id:"scancodes-library-observations",level:3},{value:"Fossology Repository",id:"fossology-repository",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Fossology Repository",id:"fossology-repository-1",level:3},{value:"Next Steps",id:"next-steps",level:3}];function d(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(July,12,2023)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsx)(s.h3,{id:"script-development",children:"Script Development"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Scancodes Library: Developed a script that utilizes the Scancodes library to extract copyrights from a directory. The script can be accessed ",(0,i.jsx)(s.a,{href:"https://gist.github.com/Hero2323/5364aa4c474c7b86702de56fe4d42d09",children:"here"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Comparison Script: Created a second script that contrasts the copyrights identified by the Scancodes library with those identified by Fossology. This script can be found ",(0,i.jsx)(s.a,{href:"https://gist.github.com/Hero2323/da410d4f06547ef3b4bdb626bbde868b",children:"here"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"scancodes-library-observations",children:"Scancodes Library Observations"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:'Notably, the Scancodes library does not extract the copyright text verbatim from its source file. Instead, it identifies copyrights and then reconstructs them based on internal grammar rules. This necessitated modifications in the comparison code, such as converting the copyright symbol \xa9 to variants like (c), (C), and the word "copyright" followed by (c). Further examples are provided in the second gist.'}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"fossology-repository",children:"Fossology Repository"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Almost concluded the review of copyrights in the Fossology repository. These copyrights are diverse and demanded heightened scrutiny compared to other repositories."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,i.jsx)(s.h3,{id:"fossology-repository-1",children:"Fossology Repository"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Conclude the review of copyrights."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"next-steps",children:"Next Steps"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Transition to the task of copyright classification."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>c,a:()=>r});var i=t(67294);const o={},n=i.createContext(o);function r(e){const s=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7656bcd9.9e88b978.js b/assets/js/7656bcd9.9e88b978.js new file mode 100644 index 0000000000..bdd5ad8161 --- /dev/null +++ b/assets/js/7656bcd9.9e88b978.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7648],{28956:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=s(85893),n=s(11151);const r={title:"Week 10",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},i=void 0,a={id:"2023/rest/updates/samuel/2023-08-03",title:"Week 10",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-08-03.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-08-03",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-08-03.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 10",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 9",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-27"},next:{title:"Week 11",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-10"}},l={},c=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Get the scheduler options for a given operation API <code>/jobs/scheduler/operation/{operationName}</code>",id:"1-get-the-scheduler-options-for-a-given-operation-api-jobsscheduleroperationoperationname",level:4},{value:"2. Run the scheduler based on the given operation API <code>/jobs/scheduler/operation/run</code>",id:"2-run-the-scheduler-based-on-the-given-operation-api-jobsscheduleroperationrun",level:4},{value:"3. Get the removable folder contents API <code>/folders/{id}/contents/removable</code>",id:"3-get-the-removable-folder-contents-api-foldersidcontentsremovable",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Added the REST API to get the scheduler options for a given operation: ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2538",children:"#2538"})]}),"\n",(0,o.jsxs)(t.li,{children:["Added the REST API to run the scheduler based on the given operation: ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2539",children:"#2539"})]}),"\n",(0,o.jsxs)(t.li,{children:["Added the REST API to get the removable folder contents: ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2551",children:"#2551"})]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,o.jsxs)(t.h4,{id:"1-get-the-scheduler-options-for-a-given-operation-api-jobsscheduleroperationoperationname",children:["1. Get the scheduler options for a given operation API ",(0,o.jsx)(t.code,{children:"/jobs/scheduler/operation/{operationName}"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"get-scheduler-options",src:s(31957).Z+"",width:"1497",height:"640"})}),"\n",(0,o.jsxs)(t.h4,{id:"2-run-the-scheduler-based-on-the-given-operation-api-jobsscheduleroperationrun",children:["2. Run the scheduler based on the given operation API ",(0,o.jsx)(t.code,{children:"/jobs/scheduler/operation/run"})]}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.img,{alt:"run-scheduler-operation",src:s(50075).Z+"",width:"1498",height:"539"}),"\n",(0,o.jsx)(t.img,{alt:"run-scheduler-operation-1",src:s(38285).Z+"",width:"1495",height:"566"})]}),"\n",(0,o.jsxs)(t.h4,{id:"3-get-the-removable-folder-contents-api-foldersidcontentsremovable",children:["3. Get the removable folder contents API ",(0,o.jsx)(t.code,{children:"/folders/{id}/contents/removable"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"get-removable-folder-contents",src:s(53974).Z+"",width:"1489",height:"522"})}),"\n",(0,o.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Add the REST API to unlink the folder contents."}),"\n",(0,o.jsx)(t.li,{children:"Add the REST API to Get all the contents of a specified folder."}),"\n",(0,o.jsx)(t.li,{children:"Add the REST API to export licenses-list as CSV."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},31957:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/get_scheduler_options-c146c9f3fd3d4a1fa128e5a254524487.png"},50075:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/run_scheduler_operation_1-71c59762fb75b22036512491b57eec83.png"},38285:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/run_scheduler_operation_2-b3eb667c948dabacc0e9213e764820ea.png"},53974:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/folder_removable_contents-809b1dc17d1f83bfe989a845488ae55c.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>i});var o=s(67294);const n={},r=o.createContext(n);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/76f3e499.8475ecae.js b/assets/js/76f3e499.8475ecae.js new file mode 100644 index 0000000000..ef189ddf4d --- /dev/null +++ b/assets/js/76f3e499.8475ecae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4330],{21620:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var i=s(85893),n=s(11151);const o={title:"Week 1",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},a=void 0,d={id:"2023/rest/updates/samuel/2023-06-01",title:"Week 1",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-06-01.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-06-01",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-01",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-06-01.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 1",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Community bonding",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-05-11"},next:{title:"Week 2",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-08"}},l={},c=[{value:"Activities",id:"activities",level:2},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3},{value:"1. ADD PAGINATION FEATURE ON THE API <code>/uploads/{id}/licenses</code>",id:"1-add-pagination-feature-on-the-api-uploadsidlicenses",level:4},{value:"1. GET FILE CONTENTS API <code>/uploads/{id}/item/{id}/view</code>",id:"1-get-file-contents-api-uploadsiditemidview",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function r(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Tested and confirmed the REST API to add the pagination feature on the existing API ",(0,i.jsx)(t.code,{children:"/uploads/{id}/licenses"}),": ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2430",children:"#2430"})," ."]}),"\n",(0,i.jsxs)(t.li,{children:["Added the new REST API to get the contents of a specific file given the ",(0,i.jsx)(t.strong,{children:"upload's id"})," and the ",(0,i.jsx)(t.strong,{children:"item's id"}),": ",(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2456",children:"#2456"}),"."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,i.jsxs)(t.h4,{id:"1-add-pagination-feature-on-the-api-uploadsidlicenses",children:["1. ADD PAGINATION FEATURE ON THE API ",(0,i.jsx)(t.code,{children:"/uploads/{id}/licenses"})]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"add-pagination-feature",src:s(90487).Z+"",width:"1309",height:"768"})}),"\n",(0,i.jsxs)(t.h4,{id:"1-get-file-contents-api-uploadsiditemidview",children:["1. GET FILE CONTENTS API ",(0,i.jsx)(t.code,{children:"/uploads/{id}/item/{id}/view"})]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"get-file-contents",src:s(67397).Z+"",width:"1445",height:"508"})}),"\n",(0,i.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Updated the GetFile contents API based on the mentors' feedback."}),"\n",(0,i.jsx)(t.li,{children:"Add the REST API for retrieving the File Details: Scanner results, edited results with text, etc."}),"\n",(0,i.jsx)(t.li,{children:"Add the REST API to Get Bulk History, clearing history, bulk scan schedule and right left with 3 filters. (GET & SET)"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},90487:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/add_pagination-98c1011fdb8b5ad4eaee1a82765cef0b.png"},67397:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/get_file_contents-bd9efecd42f25d4941ffcf68a2907283.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>a});var i=s(67294);const n={},o=i.createContext(n);function a(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/77565992.48d83861.js b/assets/js/77565992.48d83861.js new file mode 100644 index 0000000000..5d0cdfeab9 --- /dev/null +++ b/assets/js/77565992.48d83861.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[557],{76182:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>a});var i=s(85893),t=s(11151);const r={title:"Week 9",author:"Kaushlendra"},o="Coding Week 9 Meeting",d={id:"2021/copyrights/updates/2021-08-10",title:"Week 9",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-08-10.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-08-10",permalink:"/gsoc/docs/2021/copyrights/updates/2021-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-08-10.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/copyrights/updates/2021-08-03"},next:{title:"Setup",permalink:"/gsoc/docs/2021/copyrights/setup"}},l={},a=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 9 Progress",id:"week-9-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const n={h1:"h1",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"coding-week-9-meeting",children:"Coding Week 9 Meeting"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,i.jsx)(n.li,{children:"Vasudev"}),"\n",(0,i.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,i.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,i.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Clutter Removal Preview was given and discussed."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Implementation of the trained NER model was discussed using a CUSTOM training data set."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Next target for Final evaluations were discussed:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Training the model using a custom dataset."}),"\n",(0,i.jsx)(n.li,{children:"Integrating the ALgorithm with FOSSOLOGY."}),"\n",(0,i.jsx)(n.li,{children:"Documenting everything and revamping it according to the integration."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"CUSTOM [ORG] list extraction process was discussed."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-9-progress",children:"Week 9 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Clutter removal for the other three cases was implemented."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"A custom training dataset was created using a list of names of organisations."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Spacy "en_core_web_sm" was trained on that custom dataset used.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Training was done in a way:"}),"\n",(0,i.jsx)(n.p,{children:"1- This training was more of an instantaneous one i.e. You train it for google, It will work only for google."}),"\n",(0,i.jsx)(n.p,{children:'2- Need to figure out the way to keep the trained model while pushing the code. "nlp.to_disk()" internal property was used for saving the trained model to the local system.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"More reduction and updation to code was done by removing redundancy and making the code more function-oriented."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Wiki has been Updated"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsx)(n.p,{children:"Integration of the algorithm with the FOSSOLOGY"})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>o});var i=s(67294);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/78054b94.64de0a23.js b/assets/js/78054b94.64de0a23.js new file mode 100644 index 0000000000..d0d9d83362 --- /dev/null +++ b/assets/js/78054b94.64de0a23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9894],{78755:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var t=s(85893),i=s(11151);const o={title:"week-10",author:"Aaditya Singh"},c=void 0,r={id:"2024/scheduler/updates/Discussion/2024-07-12",title:"week-10",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/Discussion/2024-07-12.md",sourceDirName:"2024/scheduler/updates/Discussion",slug:"/2024/scheduler/updates/Discussion/2024-07-12",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/Discussion/2024-07-12.md",tags:[],version:"current",frontMatter:{title:"week-10",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-09",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/scheduler/updates/2023-05-30"}},d={},a=[{value:"Attendees",id:"attendees",level:2},{value:"Discussions:",id:"discussions",level:2}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h1,{id:"meeting-18",children:"Meeting 18"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July 12, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Mentors:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Contributors:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussions",children:"Discussions:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Mentors:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Asked if having Aaditya's name in the ",(0,t.jsx)(n.code,{children:"go.mod"})," file would affect the codebase."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Contributors:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Explained it wouldn't cause issues and can be updated using ",(0,t.jsx)(n.code,{children:"go mod tidy"})," to adjust dependencies as needed."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Discussed applying the Hexagonal architecture principle, focusing on each module serving a single purpose and avoiding circular dependencies to improve processing efficiency."}),"\n",(0,t.jsxs)(n.p,{children:["Suggested creating a command-line interface for job control (pause, start, unpause), but noted that FOSSology already has a CLI for this purpose. Instead, proposed integrating the command parsing in ",(0,t.jsx)(n.code,{children:"main.go"})," with an additional module directory."]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"Proposed Directory Structure:\ngozilla\n| --- /docs\n| --- /src\n| --- /app\n| --- /balancer\n| --- load.go\n| --- load_test.go\n| --- /buffer\n| --- cache.go\n| --- cache_test.go\n| --- /syncroniser\n| --- process.go\n| --- process_test.go\n| --- main.go\n| --- main_test.go\n| --- /connector\n| --- /distributor\n| --- queue.go\n| --- queue_test.go\n| --- /notify\n| --- mail.go\n| --- mail_test.go\n| --- /storage\n| --- /config\n| --- config.go\n| --- config_test.go\n| --- /database\n| --- db.go\n| --- db_test.go\n| --- /logs\n| --- logs.go\n| --- logs_test.go"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"| --- /test\n| --- go.mod\n| --- go.sum"}),"\n",(0,t.jsx)(n.p,{children:"Presented a demo about that!"})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>c});var t=s(67294);const i={},o=t.createContext(i);function c(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/799444a3.97573de6.js b/assets/js/799444a3.97573de6.js new file mode 100644 index 0000000000..ab57b0a123 --- /dev/null +++ b/assets/js/799444a3.97573de6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7527],{21456:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 1","permalink":"/gsoc/docs/tags/week-1","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-06-20","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-20"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/7afcff4c.c51ca662.js b/assets/js/7afcff4c.c51ca662.js new file mode 100644 index 0000000000..cdb509a5d3 --- /dev/null +++ b/assets/js/7afcff4c.c51ca662.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5246],{99595:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>h,metadata:()=>t,toc:()=>c});var i=s(85893),r=s(11151);const h={title:"week-06",author:"Aaditya Singh"},l="Meeting 09",t={id:"2024/scheduler/updates/General/2024-06-13",title:"week-06",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/General/2024-06-13.md",sourceDirName:"2024/scheduler/updates/General",slug:"/2024/scheduler/updates/General/2024-06-13",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/General/2024-06-13.md",tags:[],version:"current",frontMatter:{title:"week-06",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-04",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-05-30"},next:{title:"week-07",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-20"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Absentees:",id:"absentees",level:2},{value:"General Discussion",id:"general-discussion",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-09",children:"Meeting 09"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 13, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"absentees",children:"Absentees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general-discussion",children:"General Discussion"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Provided project updates."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Contributors:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Conducted tests with different models using Semantic Search for similarity matches."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Tested semantic transformers and worked on a basic license identifier."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Was absent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Following my last conversation with mentors, began rewriting scheduler code from C to Go. Submitted a pull request for the same."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Focused on implementing a queue and working on CLI code."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Developed SPDX 3.0 JSON format, exploring validation of generated reports. Plans to start on RDF report soon."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Per discussions with mentors, utilized JSON format to convert license expressions and store them in a database (successful)."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Developed a user interface for the same and is now adding comments, acknowledgments, and text for license expressions."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Completed OAUTH implementation via API. Currently transitioning API from V1 to V2."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Focused on adding line number support for repo scans. Next, will work on nomos and ojo components."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Implemented unit test cases for APIs such as License, Group, and Upload. Submitted a pull request for the same."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>t,a:()=>l});var i=s(67294);const r={},h=i.createContext(r);function l(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7bbb3d8c.f9bfa0b0.js b/assets/js/7bbb3d8c.f9bfa0b0.js new file mode 100644 index 0000000000..b175411dba --- /dev/null +++ b/assets/js/7bbb3d8c.f9bfa0b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1944],{66506:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>n});var o=i(85893),s=i(11151);const l={title:"Week 4",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},d=void 0,c={id:"2023/rest/updates/soham/2023-06-27",title:"Week 4",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-06-27.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-06-27",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-06-27.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 4",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 2 & 3",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-08"},next:{title:"Week 5",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-05"}},a={},n=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Restore file copyrights <code>file/upload/{uploadId}/item/{itemid}/copyright{copyrightHash}</code>",id:"1-restore-file-copyrights-fileuploaduploadiditemitemidcopyrightcopyrighthash",level:4},{value:"2. Get inactive copyrights for a file <code>/file/upload/{UploadId}/item/{ItemId}/copyrights/inactive</code>",id:"2-get-inactive-copyrights-for-a-file-fileuploaduploadiditemitemidcopyrightsinactive",level:4},{value:"3. Get file info <code>/file/upload/{UploadId}/item/{ItemId}/info</code>",id:"3-get-file-info-fileuploaduploadiditemitemidinfo",level:4},{value:"4. Get total number of copyrights for a file <code>/file/upload/{UploadId}/item/{ItemId}/totalcopyrights</code>",id:"4-get-total-number-of-copyrights-for-a-file-fileuploaduploadiditemitemidtotalcopyrights",level:4},{value:"5. Get conf info for upload <code>/file/upload/{UploadId}/item/{UploadId}/conf</code>",id:"5-get-conf-info-for-upload-fileuploaduploadiditemuploadidconf",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function r(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for restoring file copyright. ",(0,o.jsx)(t.code,{children:"PATCH"})," ",(0,o.jsx)(t.code,{children:"file/upload/{uploadId}/item/{itemid}/copyright{copyrightHash}"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2486",children:"#2486"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for fetching inactive copyright details for a file. ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/copyrights/inactive"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2485",children:"#2485"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for the file info . ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/info"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2496",children:"#2496"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for total number of copyrights for a file . ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/totalcopyrights"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2488",children:"#2488"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for conf info for upload. ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{UploadId}/conf"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2505",children:"#2505"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsxs)(t.h4,{id:"1-restore-file-copyrights-fileuploaduploadiditemitemidcopyrightcopyrighthash",children:["1. Restore file copyrights ",(0,o.jsx)(t.code,{children:"file/upload/{uploadId}/item/{itemid}/copyright{copyrightHash}"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"restore-copyrights-file",src:i(87856).Z+"",width:"704",height:"646"})}),"\n",(0,o.jsxs)(t.h4,{id:"2-get-inactive-copyrights-for-a-file-fileuploaduploadiditemitemidcopyrightsinactive",children:["2. Get inactive copyrights for a file ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/copyrights/inactive"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"get-intactive-copyrights-file",src:i(86957).Z+"",width:"825",height:"706"})}),"\n",(0,o.jsxs)(t.h4,{id:"3-get-file-info-fileuploaduploadiditemitemidinfo",children:["3. Get file info ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/info"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"file-info",src:i(33865).Z+"",width:"719",height:"718"})}),"\n",(0,o.jsxs)(t.h4,{id:"4-get-total-number-of-copyrights-for-a-file-fileuploaduploadiditemitemidtotalcopyrights",children:["4. Get total number of copyrights for a file ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/totalcopyrights"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"total-number-copyrights",src:i(8648).Z+"",width:"490",height:"316"})}),"\n",(0,o.jsxs)(t.h4,{id:"5-get-conf-info-for-upload-fileuploaduploadiditemuploadidconf",children:["5. Get conf info for upload ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{UploadId}/conf"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"conf-info",src:i(40943).Z+"",width:"1749",height:"874"})}),"\n",(0,o.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Reach out to mentors regarding the improvement of the response for the submitted APIs."}),"\n",(0,o.jsx)(t.li,{children:"Review and make changes according to the mentor's suggestions."}),"\n",(0,o.jsx)(t.li,{children:"Move on to the next module of API development."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(r,{...e})}):r(e)}},40943:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/confinfo-c9c1bdc724e4ac099274ba800aff8337.png"},86957:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/getinactivecopyrights-dc2dda95ae662a92db3212f89d04a197.png"},87856:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/restorecopyright-83d1b34fc6103730b31d13a56cd21e20.png"},8648:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/totalnumberofcopyrights-f52115e63341c2a5837c9172818abad1.png"},33865:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/fileinfo-5acaf89fee8b2d7b52c01941d863b881.png"},11151:(e,t,i)=>{i.d(t,{Z:()=>c,a:()=>d});var o=i(67294);const s={},l=o.createContext(s);function d(e){const t=o.useContext(l);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),o.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7bf50317.0964e114.js b/assets/js/7bf50317.0964e114.js new file mode 100644 index 0000000000..e4db84be08 --- /dev/null +++ b/assets/js/7bf50317.0964e114.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4449],{30504:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>n,contentTitle:()=>i,default:()=>c,frontMatter:()=>d,metadata:()=>a,toc:()=>h});var o=s(85893),l=s(11151);const d={title:"Week 4",author:"Shruti Agarwal"},i=void 0,a={id:"2021/ui/updates/shruti/2021-07-06",title:"Week 4",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-07-06.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-07-06",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-07-06.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-29"},next:{title:"Week 5",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-13"}},n={},h=[{value:"Screenshots",id:"screenshots",level:2},{value:"Home",id:"home",level:3},{value:"Search",id:"search",level:3},{value:"Upload File",id:"upload-file",level:3},{value:"Custom Alert",id:"custom-alert",level:3},{value:"Browse Page Prototype",id:"browse-page-prototype",level:3},{value:"Move Uploads",id:"move-uploads",level:3},{value:"Copy Uploads",id:"copy-uploads",level:3},{value:"Delete Uploads",id:"delete-uploads",level:3},{value:"Tooltip",id:"tooltip",level:3},{value:"Contributions",id:"contributions",level:2}];function r(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,l.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Added the separate button widget related to our theme and replaced the react-bootstrap button with our custom component."}),"\n",(0,o.jsx)(t.li,{children:"Fixed the login button style."}),"\n",(0,o.jsx)(t.li,{children:"Added the InputContainer in the widget for all the types which can be reusable by all the components."}),"\n",(0,o.jsx)(t.li,{children:"Added the search page."}),"\n",(0,o.jsxs)(t.li,{children:["Added the Upload File page for which created the reusable components of ",(0,o.jsx)(t.code,{children:"IgnoreScm"}),", ",(0,o.jsx)(t.code,{children:"AccessLevel"}),", ",(0,o.jsx)(t.code,{children:"Optional Analysis"})," and ",(0,o.jsx)(t.code,{children:"Upload Reuse"})," which can be reused by the other uploads page of server, vcs, url and schedule analysis in Jobs."]}),"\n",(0,o.jsx)(t.li,{children:"On creating the upload, we are simultaneously doing three processes, creating the upload and checking that it got unpacked or not, and scheduling the analysis."}),"\n",(0,o.jsx)(t.li,{children:"Created the custom component for Alert and Tooltip."}),"\n",(0,o.jsx)(t.li,{children:"Replaced the login alert with the custom component."}),"\n",(0,o.jsx)(t.li,{children:"Added all the pages for the routes and linked them."}),"\n",(0,o.jsx)(t.li,{children:"Added the prototype for the browse page."}),"\n",(0,o.jsx)(t.li,{children:"Added the delete Uploads page. Created the getFolders page from where it is fetching all the folders. Created the organizeUploads which contains deleteUploadFile and getUploadsById."}),"\n",(0,o.jsx)(t.li,{children:"Added the move or copy page in the organize/uploads."}),"\n",(0,o.jsx)(t.li,{children:"Added the additional information for the components with Tooltip widget."}),"\n",(0,o.jsx)(t.li,{children:"Added the fossology website target attribute, updated the Move Folder title and updated the styling of search page."}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsx)(t.h3,{id:"home",children:"Home"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"fix-home",src:s(11155).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"search",children:"Search"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"search",src:s(70767).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"file-search",src:s(41116).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"upload-file",children:"Upload File"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"upload-file-error",src:s(63527).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"uploaded-file",src:s(98102).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"upload-file-reusable-options",src:s(19678).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"custom-alert",children:"Custom Alert"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"custom-alert",src:s(44191).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"browse-page-prototype",children:"Browse Page Prototype"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"browse-page-prototype",src:s(8265).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"move-uploads",children:"Move Uploads"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"move-uploads",src:s(28254).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"copy-uploads",children:"Copy Uploads"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"copy-uploads",src:s(17422).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"delete-uploads",children:"Delete Uploads"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"delete-uploads",src:s(97171).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h3,{id:"tooltip",children:"Tooltip"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"tooltip",src:s(28645).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/33",children:"feat(widget): added the Button widget and fixed the login button"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/34",children:"feat(search): added the search page"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/issues/44",children:"Widgets for the helper messages to improve the UX"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/46",children:"feat(upload): added the upload file page"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/46",children:"feat(analysis): added the analysis request"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/47",children:"feat(ui): added the custom component for alert and tooltip"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/48",children:"feat(upload): added the delete uploads page"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/53",children:"feat(browse): Added the prototype for the uploads page"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/57",children:"fix(routes): added the routes for all pages"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/59",children:" feat(tooltip): added the extra information"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/62",children:" feat(moveUpload): Added the move upload or copy upload page"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/65",children:" fix(ui): fixed the bugs in search, overview, create folder page"})}),"\n"]})]})}function c(e={}){const{wrapper:t}={...(0,l.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(r,{...e})}):r(e)}},8265:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/browsePagePrototype-d861bb65981aa2db04b1df334e00418a.png"},11155:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/features-f7a21050ae1e73caad93deda70cdbbee.png"},70767:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/search-c0b58d059d6cee9745e5c598ff986c21.png"},41116:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/searchFiles-9f0f3ec472f743139c442d5931d34356.png"},17422:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/copyUpload-3903fa9ddf88b0d0e00fd19f3e9b9fc9.png"},97171:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/deleteUploads-60bb558a4cd905381f0875fc020960e8.png"},28254:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/moveUpload-3139bc685e6912df15750d70e01d8318.png"},63527:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/uploadFileError-bba80390497f6c8dc08ff0141ee64640.png"},19678:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/uploadFileReusableOptions-f596329a8f04f0f455ab8690d82ce8f3.png"},98102:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/uploadedFile-8d148ab22f1f71992e48ae5a75f32980.png"},44191:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/customAlert-0484d57e939c6e186775d7e238e69049.png"},28645:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/tooltip-8b531422e8dfe01f61cf9a7cffa3f87c.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>i});var o=s(67294);const l={},d=o.createContext(l);function i(e){const t=o.useContext(d);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:i(e.components),o.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7c75bbc9.8dae17b1.js b/assets/js/7c75bbc9.8dae17b1.js new file mode 100644 index 0000000000..60078aa0cd --- /dev/null +++ b/assets/js/7c75bbc9.8dae17b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7501],{5917:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var s=t(85893),o=t(11151);const i={title:"Week2",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},r=void 0,a={id:"2022/project/updates/2022-06-16",title:"Week2",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-06-16.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-06-16",permalink:"/gsoc/docs/2022/project/updates/2022-06-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-06-16.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week2",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week1",permalink:"/gsoc/docs/2022/project/updates/2022-06-09"},next:{title:"Week3",permalink:"/gsoc/docs/2022/project/updates/2022-06-23"}},l={},c=[{value:"Meeting 3",id:"meeting-3",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 16th, 2022)"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(n.li,{children:"Vivek Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Avinal Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Sahil Jha"}),"\n",(0,s.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,s.jsx)(n.li,{children:"Thanvi Lahari Pendyala"}),"\n",(0,s.jsx)(n.li,{children:"Krishna Mahato"}),"\n",(0,s.jsx)(n.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(n.p,{children:"Discussion about how to learn code more efficiently and where I should begin with.\nMentors will share a google doc about the detailed requirement of this project for me."}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I have learned some basic knowledge about PHP and Fossology."}),"\n",(0,s.jsx)(n.li,{children:"I could begin with reading the codes about group and user."}),"\n",(0,s.jsx)(n.li,{children:"I will try to upload a video about the basic work flow of Fossology."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var s=t(67294);const o={},i=s.createContext(o);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7cef544e.066ac0ee.js b/assets/js/7cef544e.066ac0ee.js new file mode 100644 index 0000000000..1ca9021b89 --- /dev/null +++ b/assets/js/7cef544e.066ac0ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[654],{31198:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var s=t(85893),i=t(11151);const a={sidebar_position:1,title:"Introduction",slug:"/2024/text-phrases/"},o=void 0,r={id:"2024/text-phrases/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/text-phrases/index.md",sourceDirName:"2024/text-phrases",slug:"/2024/text-phrases/",permalink:"/gsoc/docs/2024/text-phrases/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/text-phrases/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/text-phrases/"},sidebar:"2024",previous:{title:"Week 6",permalink:"/gsoc/docs/2024/pipeline/updates/2024-07-04"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/text-phrases/updates/2024-05-7"}},l={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function h(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens NIYONSENGA"})}),"\n",(0,s.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"mailto:valensniyonsenga2003@gmail.com",children:"Email"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/valens-niyonsenga-947440228/",children:"LinkedIn"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,s.jsx)(n.p,{children:"Text Phrases Scanning"}),"\n",(0,s.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,s.jsx)(n.p,{children:"The Monk license scanner within FOSSology is a license scanner designed to detect and differentiate license texts within files. It operates in two modes: Scheduler Mode, which integrates with the FOSSology repository to log results into the database accessible via the web interface, and CLI Mode, which directly matches files against the license database from the command line. Despite its robust functionality, there is a need to enhance its capabilities, particularly in handling text phrases and bulk phrases, to improve user experience and efficiency."}),"\n",(0,s.jsx)(n.p,{children:"This project aims to enhance the Monk agent capabilities by adding support for text phrases and bulk phrases scanning. This includes the development of a user interface to facilitate the addition and management of text phrases, as well as enabling the Monk agent to scan these phrases effectively."}),"\n",(0,s.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,s.jsx)(n.p,{children:"This project involves the following tasks:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Creating a User Interface for Text and Bulk Phrases Management:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Develop a UI that allows users to add multiple text phrases associated with licenses to the database.."}),"\n",(0,s.jsx)(n.li,{children:"Implement options for users to choose between scanning with bulk license texts or selected phrases."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Supporting Text Phrases Scanning:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Enable the Monk agent to scan files using the text phrases stored in the database."}),"\n",(0,s.jsx)(n.li,{children:"Ensure that users can add comments for license texts through the UI."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Implementing Bulk Phrases Scanning:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Provide a UI tab where users can select bulk phrases for scanning."}),"\n",(0,s.jsx)(n.li,{children:"Implement options to scan using phrases from the whole user base or selected user."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Enhancing Monk Agent Functionality:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Update the Monk agent or create a new similar agent to scan from the phrases tables."}),"\n",(0,s.jsx)(n.li,{children:"Ensure clear integration with the existing FOSSology database and web interface."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Documentation:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Update the documentation to reflect the new functionalities and usage guidelines."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var s=t(67294);const i={},a=s.createContext(i);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7d7964ab.46a27b10.js b/assets/js/7d7964ab.46a27b10.js new file mode 100644 index 0000000000..735dd2308f --- /dev/null +++ b/assets/js/7d7964ab.46a27b10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2894],{40489:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var t=s(85893),o=s(11151);const i={title:"Week 8",author:"Sushant Kumar"},l=void 0,c={id:"2023/cyclonedx/updates/2023-07-20",title:"Week 8",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-07-20.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-07-20",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 7",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-13"},next:{title:"Week 9",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-27"}},r={},d=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function a(e){const n={a:"a",em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July,20,2023)"})}),"\n",(0,t.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["This week, I was mainly working on the modifications requested by\nmentors regarding Pull Request\n",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2507",children:"#2507"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Major changes include:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Made licenseRefs as license expressions, as CycloneDX schema does not\nsupport SPDX LicenseRef as valid license identifier."}),"\n",(0,t.jsx)(n.li,{children:"Refactored the SPDX agent code, effectively eliminating the multiple\nimplementation of same functions being used in both CycloneDX and SPDX agents."}),"\n",(0,t.jsx)(n.li,{children:"Successfully resolved failing test cases within the SPDX agent for the pull\nrequest."}),"\n",(0,t.jsx)(n.li,{children:"Added download option to download report from UI."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"In upcoming weeks, I will continue working on scancode agent improvement in\nFOSSology."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>l});var t=s(67294);const o={},i=t.createContext(o);function l(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7dd73571.69f08585.js b/assets/js/7dd73571.69f08585.js new file mode 100644 index 0000000000..d9694507d8 --- /dev/null +++ b/assets/js/7dd73571.69f08585.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1482],{92327:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var i=n(85893),t=n(11151);const l={title:"Week 1",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},r=void 0,a={id:"2021/buildsystem/updates/2021-06-11",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-06-11.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-06-11",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-06-11.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 1",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-05-28"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-18"}},o={},d=[{value:"Meeting 3",id:"meeting-3",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 1 Progress",id:"week-1-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 11th, 2021)"})}),"\n",(0,i.jsx)(s.p,{children:"In this third meeting, I demoed the working build system, currently building executables and libraries, a lot of queries were resolved about writing version files and attaching commits and hashes to the build."}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"week-1-progress",children:"Week 1 Progress"}),"\n",(0,i.jsx)(s.p,{children:"This week was mainly focused on analyzing the previous build system and framing a skeleton for the new build system."}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Created the build configuration ",(0,i.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki/agents-spec#agents-configuration-list",children:"analysis table"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Completed the basic skeleton."}),"\n",(0,i.jsx)(s.li,{children:"Completed the CMake configuration for libraries"}),"\n",(0,i.jsxs)(s.li,{children:["To test the current progress, follow the instructions ",(0,i.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n",(0,i.jsxs)(s.li,{children:["Test on ",(0,i.jsx)("a",{href:"https://gitpod.io/#https://github.com/avinal/FOSSology/tree/avinal/feat/cmake-buildsystem",children:"GitPod"})," right inside your browser."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"What are the flags needed for C and C++?"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["The ",(0,i.jsx)(s.code,{children:"-g"})," flag enables debug."]}),"\n",(0,i.jsxs)(s.li,{children:["The ",(0,i.jsx)(s.code,{children:"-O2"})," flag is used for optimizing."]}),"\n",(0,i.jsx)(s.li,{children:"In FOSSology these two flags are used together by default for all build purposes because it is desired to have an optimized binary but some level of debugging information is also desired."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"The Makefiles have some compile-time preprocessor macro definitions that need to be passed to each build."})," The Makefiles have all the path values passed as ",(0,i.jsx)(s.code,{children:"'\"..value..\"'"})," format ",(0,i.jsx)(s.em,{children:"(double quote inside single quotes)"}),", however the commands produced by CMake have ",(0,i.jsx)(s.code,{children:'\\"..value..\\"'})," format ",(0,i.jsx)(s.em,{children:"(escaped double quotes)"}),". Are they the same or it needs to be changed?","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Currently, there is nothing to determine if they work the same or not, but if the compiler would not have accepted them then, it would have thrown an error. As long it is working these should be fine, but will need to be checked in the final build."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Are all libraries in FOSSology static?"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["No, by default no library is static. The format ",(0,i.jsx)(s.code,{children:"lib<library-name>.a"})," is confusing but no need to worry about it for now, if this is working fine then no problem."]}),"\n",(0,i.jsx)(s.li,{children:"In general, this format denotes a static library."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"How to add the version and commit information to the builds?"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["I have gone through ",(0,i.jsx)(s.a,{href:"https://cmake.org/pipermail/cmake/2018-October/068383.html",children:"this thread"})," on CMake's official mailing list. And they have suggested a lot of options, but unable to decide which option to use. Gaurav said he will see into this thread and for now, I should try writing a shell script and test if that works."]}),"\n",(0,i.jsx)(s.li,{children:"Same can be tested for the version too."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"What is"})," ",(0,i.jsx)(s.code,{children:"_squareVisitor.h.pre"})," ",(0,i.jsx)(s.strong,{children:"used for?"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"They are used to generate source code at build time."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Is there any inheritance structure in the build system?"})," ",(0,i.jsx)(s.em,{children:"(Michael)"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"For now, I am writing separate modules for the default operations needed in most configurations. The final structure will be decided in the final build."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Where are all the binaries produced?"})," ",(0,i.jsx)(s.em,{children:"(Gaurav)"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"They are located in the build folder with the same directory structure as the original project."}),"\n",(0,i.jsx)(s.li,{children:"While installing the same will be used and none of the source folders are ever disturbed."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Are all flags taken from the Makefiles itself?"})," ",(0,i.jsx)(s.em,{children:"(Anupam)"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Yes and No, there are some flags that CMake uses by default, they can be altered by changing the value for ",(0,i.jsx)(s.code,{children:"CMAKE_C_FLAGS"})," and ",(0,i.jsx)(s.code,{children:"CMAKE_CXX_FLAGS"}),". One can also append their flags. Since not all compilation requires all the flags, I have taken the default one into cache variables, and others are appended while configuring for a particular project."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Try the ",(0,i.jsx)(s.code,{children:"monkbulk"})," in monk and ",(0,i.jsx)(s.code,{children:"makefile.sa"})," in nomos."]}),"\n",(0,i.jsx)(s.li,{children:"Try adding the version and commit hash info."}),"\n",(0,i.jsx)(s.li,{children:"Implement writing version files for each build."}),"\n",(0,i.jsxs)(s.li,{children:["Add proper comments in the ",(0,i.jsx)(s.code,{children:"CMakeLists.txt"})," files."]}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>r});var i=n(67294);const t={},l=i.createContext(t);function r(e){const s=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7e926307.4657f47a.js b/assets/js/7e926307.4657f47a.js new file mode 100644 index 0000000000..ea138c3b9f --- /dev/null +++ b/assets/js/7e926307.4657f47a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3282],{90546:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>h,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var n=t(85893),i=t(11151);const r={title:"Week 5",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},h=void 0,l={id:"2022/reuse/updates/2022-07-11",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-07-11.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-07-11",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-07-11.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 5",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-04"},next:{title:"Week 6",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-18"}},a={},d=[{value:"Meeting 12",id:"meeting-12",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 13",id:"meeting-13",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3}];function o(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-12",children:"Meeting 12"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 12th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Implemented REUSE standard in more files.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Current REUSE status - when running reuse lint, the result is as follows:","\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"Files with copyright information: 4322 / 4364\nFiles with license information: 4284 / 4364\n"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["In the issue I raised in fsfe/reuse-tool, I received two following suggestions/solutions:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Put a .license file next to your testdata files. The contents of the testdata files will be ignored, and the contents of the .license file will be used instead."}),"\n",(0,n.jsxs)(s.li,{children:["Put REUSE-IgnoreStart and REUSE-IgnoreEnd in your testdata files. Documentation ",(0,n.jsx)(s.a,{href:"https://reuse.readthedocs.io/en/stable/usage.html#ignoring-parts-of-a-file",children:"Link"}),"."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Discussed both solutions with mentors and decided to use the second solution i.e. ",(0,n.jsx)(s.code,{children:"REUSE-IgnoreStart"})," and ",(0,n.jsx)(s.code,{children:"REUSE-IgnoreEnd"})," in your testdata files."]}),"\n",(0,n.jsx)(s.li,{children:"Mentors provided guidance on how to correctly identify SPDX-FileCopyrightText."}),"\n",(0,n.jsx)(s.li,{children:"Few doubts cleared regarding the comment formatting of the multiple files."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"meeting-13",children:"Meeting 13"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 14th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"On the test data pages, I am adding Ignore syntax."}),"\n",(0,n.jsx)(s.li,{children:"Several questions were clarified with mentors."}),"\n",(0,n.jsx)(s.li,{children:"Working on regular expression to correctly identify SPDX-FileCopyrightText statement."}),"\n",(0,n.jsx)(s.li,{children:"Mentors discussed about the midterm evaluations for GSoC 2022."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>h});var n=t(67294);const i={},r=n.createContext(i);function h(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8093b439.7f461301.js b/assets/js/8093b439.7f461301.js new file mode 100644 index 0000000000..054c96200c --- /dev/null +++ b/assets/js/8093b439.7f461301.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7843],{60589:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var t=s(85893),i=s(11151);const o={title:"Week 5",author:"Rajul Jha",tags:["gsoc24","CI"]},l="Week 5",r={id:"2024/ci-scanner/updates/2024-07-04",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-07-04.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-07-04",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-07-04.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 5",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-27"},next:{title:"Week 6",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-11"}},c={},a=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Work Done",id:"work-done",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"week-5",children:"Week 5"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June 28, 2024 - July 04, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July 03, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["I showed my progress regarding differential scans and ",(0,t.jsx)(n.code,{children:"allowlist"})," functionality."]}),"\n",(0,t.jsxs)(n.li,{children:["Discussed doubts regarding the nomos scanner ",(0,t.jsx)(n.code,{children:"-J"})," flag. We'll tackle this later for now."]}),"\n",(0,t.jsxs)(n.li,{children:["Mentors mentioned that we should now work towards providing a ",(0,t.jsx)(n.code,{children:"fossology action"})," which will\nprovide smooth integration into Github Actions."]}),"\n",(0,t.jsxs)(n.li,{children:["Created a new repository in fossology, called ",(0,t.jsx)(n.code,{children:"fossology-action"})," for now."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"work-done",children:"Work Done"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Researched and tested the relevant API endpoints from the Github and Gitab API's:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Github API: ",(0,t.jsx)(n.code,{children:"https://api.github.com/repos/:owner/:repo/compare/{:tag1}...{:tag2}"}),"\n",(0,t.jsx)(n.img,{alt:"Screenshot",src:s(32198).Z+"",width:"2624",height:"1154"})]}),"\n",(0,t.jsxs)(n.li,{children:["Gitlab API: ",(0,t.jsx)(n.code,{children:"https://gitlab.com/api/v4/projects/:projectid/repository/compare/?from={:tag1}&to={:tag2}"}),"\n",(0,t.jsx)(n.img,{alt:"Screenshot",src:s(66122).Z+"",width:"2622",height:"1156"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Implement differential scans and tested on Github and Gitlab and sent out a ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2775",children:"PR(#2775)"})," for the same."]}),"\n",(0,t.jsxs)(n.li,{children:["Solved some bugs found in the previous ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2754#issuecomment-2196527812",children:"PR(#2574)"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Resolved and corrected some issues in ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2754",children:"PR(#2754)"})," and ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2769",children:"PR(#2769)"})," respectively."]}),"\n",(0,t.jsxs)(n.li,{children:["Started implementing the functionality that allows passing ",(0,t.jsx)(n.code,{children:"allowlist.conf"})," file from a custom location\nby the user."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Complete the ",(0,t.jsx)(n.code,{children:"allowlist.conf"})," part and send a PR for the same."]}),"\n",(0,t.jsxs)(n.li,{children:["Next, start researching and testing which type of Github Action we should create. Currently, there are three choices:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"JavaScript Action"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"Docker Action"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"Composite Action"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Docker Action"})," and ",(0,t.jsx)(n.strong,{children:"Composite Action"})," are most ",(0,t.jsx)(n.em,{children:"relevant"})," to our use case. Need to test and find out which is a better fit for us."]}),"\n",(0,t.jsx)(n.li,{children:"Start working on providing and then releasing the action to the marketplace."}),"\n",(0,t.jsxs)(n.li,{children:["PS: Also need to think about a cool name for the action ","\ud83d\ude1c"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},32198:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/github_diff_payload-a519cbe00d6bd57194c29c5c7e5fc8b1.png"},66122:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/gitlab_diff_payload-cf6ef4739f3f27b3663495fd600a3a1a.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>l});var t=s(67294);const i={},o=t.createContext(i);function l(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/80da5d44.c85787ef.js b/assets/js/80da5d44.c85787ef.js new file mode 100644 index 0000000000..c9c9184dc9 --- /dev/null +++ b/assets/js/80da5d44.c85787ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5254],{75308:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var t=i(85893),s=i(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},d="Week 5",r={id:"2023/laas/updates/2023-06-30",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-06-30.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-06-30",permalink:"/gsoc/docs/2023/laas/updates/2023-06-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-06-30.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-23"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-07"}},l={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Update",id:"update",level:2},{value:"Authentication endpoints",id:"authentication-endpoints",level:3},{value:"Search and filtering endpoints",id:"search-and-filtering-endpoints",level:3},{value:"Discussion",id:"discussion",level:2},{value:"Conclusion and future plan",id:"conclusion-and-future-plan",level:2}];function o(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"week-5",children:"Week 5"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June, 30, 2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"update",children:"Update"}),"\n",(0,t.jsx)(n.p,{children:"Currently added the basic authentication function and api for searching and filtering\nin data base."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.h3,{id:"authentication-endpoints",children:"Authentication endpoints"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Basic Authentication API endpoint like creating the users table and migrating the user data."}),"\n",(0,t.jsx)(n.li,{children:"Creating basic end points for GET all users and GET user by id and POST to create a user."}),"\n",(0,t.jsx)(n.li,{children:"Added basic Authentication in the API using username and password."}),"\n",(0,t.jsx)(n.li,{children:"For basic authentication added the data components same as that in the FOSSology."}),"\n",(0,t.jsx)(n.li,{children:"Created group Authentication and added authentication to all the API endpoints."}),"\n",(0,t.jsx)(n.li,{children:"Created authentication header for the API."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.h3,{id:"search-and-filtering-endpoints",children:"Search and filtering endpoints"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Search endpoint added full text search in the api to search different terms."}),"\n",(0,t.jsx)(n.li,{children:"Add filtering on the basis of feild and search term."}),"\n",(0,t.jsx)(n.li,{children:"Added query parameters to get the feild and search term."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Authentication to be added in only the create and update endpoints."}),"\n",(0,t.jsx)(n.li,{children:"Search explore more on fuzzy search and full text search."}),"\n",(0,t.jsx)(n.li,{children:"Add error response to the authentication endpoints as well."}),"\n",(0,t.jsx)(n.li,{children:"Add different search filters using query parameters."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and future plan"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Add different unit test cases for the API."}),"\n",(0,t.jsx)(n.li,{children:"Update the various changes suggested."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>d});var t=i(67294);const s={},a=t.createContext(s);function d(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/80ff2f3b.c184744d.js b/assets/js/80ff2f3b.c184744d.js new file mode 100644 index 0000000000..3545193f63 --- /dev/null +++ b/assets/js/80ff2f3b.c184744d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7418],{99424:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>h,metadata:()=>a,toc:()=>o});var s=t(85893),i=t(11151);const h={sidebar_position:11,title:"Week 11"},r=void 0,a={id:"2022/minutes/11-08-2022",title:"Week 11",description:"\x3c!--",source:"@site/docs/2022/minutes/11-08-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/11-08-2022",permalink:"/gsoc/docs/2022/minutes/11-08-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/11-08-2022.md",tags:[],version:"current",sidebarPosition:11,frontMatter:{sidebar_position:11,title:"Week 11"},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/minutes/04-08-2022"},next:{title:"Week 12",permalink:"/gsoc/docs/2022/minutes/18-08-2022"}},l={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 11-08-2022."}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Discussion/KT on database needs to be done by ",(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),". As he was busy with some other work it is planned on 16th and 17th august."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I have trained a doc to vec modal. the dataset for the agent is working but with very low accuracy of 8%. Looking for the options to improve it."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Worked on adding the project to upload from file page and i was successful. currently getting a duplicate of select trying to remove it."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Worked on documentation part of RESO agent. i have implemented both the tasks now i have to work on displaying it in UI."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"License endpoint with clearing status has been raised in community. now working on creating the scope. and also working on updating the UI pull requests."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Worked on merging the multiple API calls to one. also working on API of maintainance Agent."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var s=t(67294);const i={},h=s.createContext(i);function r(e){const n=s.useContext(h);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/814f3328.8aba8e45.js b/assets/js/814f3328.8aba8e45.js new file mode 100644 index 0000000000..d2755a2db2 --- /dev/null +++ b/assets/js/814f3328.8aba8e45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2535],{45641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"New build system - Week 3","permalink":"/gsoc/blog/cmake-cweek3","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/assets/js/8164a1c9.1c3a3f47.js b/assets/js/8164a1c9.1c3a3f47.js new file mode 100644 index 0000000000..75456a8f1f --- /dev/null +++ b/assets/js/8164a1c9.1c3a3f47.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1156],{99355:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=n(85893),a=n(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2022/atarashi/"},o=void 0,r={id:"2022/atarashi/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2022/atarashi/index.md",sourceDirName:"2022/atarashi",slug:"/2022/atarashi/",permalink:"/gsoc/docs/2022/atarashi/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2022/atarashi/"},sidebar:"2022",previous:{title:"Google Summer of Code Proposals 2022",permalink:"/gsoc/docs/2022/GSoC-projects"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-02"}},l={},c=[{value:"Author",id:"author",level:3},{value:"Contact info",id:"contact-info",level:3},{value:"Improve Minerva OSS Dataset and implement models for Atarashi",id:"improve-minerva-oss-dataset-and-implement-models-for-atarashi",level:2}];function d(e){const t={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h3,{id:"author",children:"Author"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"mailto:sushantmishra02102002@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.linkedin.com/in/its-sushant/",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"improve-minerva-oss-dataset-and-implement-models-for-atarashi",children:"Improve Minerva OSS Dataset and implement models for Atarashi"}),"\n",(0,i.jsx)(t.p,{children:"To implement some of the machine/deep learning models on Minerva OSS Dataset\nfrom FOSSology and integrate it to atarashi as an agent. Models that are going\nto be used are logistic regression, LSVM, Naive baiyes, doc2vec for semantic\nsimilarity and bert model using fine-tuning."})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>o});var i=n(67294);const a={},s=i.createContext(a);function o(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/81cc93ed.a9c432f7.js b/assets/js/81cc93ed.a9c432f7.js new file mode 100644 index 0000000000..0ab3325cd8 --- /dev/null +++ b/assets/js/81cc93ed.a9c432f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5061],{52314:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 2","permalink":"/gsoc/docs/tags/week-2","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-06-27","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-06-27"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/8218ea4c.1ee451da.js b/assets/js/8218ea4c.1ee451da.js new file mode 100644 index 0000000000..313e01d78c --- /dev/null +++ b/assets/js/8218ea4c.1ee451da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8426],{87335:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>h,toc:()=>l});var n=s(85893),a=s(11151);const i={title:"Week 1",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,h={id:"2022/atarashi/updates/2022-06-13",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-06-13.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-06-13",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-06-13.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 1",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-02"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-20"}},o={},l=[{value:"Meeting 3",id:"meeting-3",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.em,{children:"(June 16th, 2022)"})}),"\n",(0,n.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Was majorly working on model training and improving the accuracy. Last week\nI was geeting the accuracy of 56% for logistic regression model, now after\nsome modification model accuracy is increased to 59%."}),"\n",(0,n.jsx)(t.li,{children:"Also tried some other supervised learning models like RandomForest and lsvm."}),"\n",(0,n.jsxs)(t.li,{children:["And had a discussion with mentors regarding where the training scripts should\nbe kept and we came to conclusion that the model should be trained in our\n",(0,n.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva"})," repo itself\nand ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})," will just have to import\nthe model binary from there."]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Will explore some semantic similarity models for text classification"}),"\n",(0,n.jsx)(t.li,{children:"Also try to improve accuracy further"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>h,a:()=>r});var n=s(67294);const a={},i=n.createContext(a);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8231cc4a.656a9feb.js b/assets/js/8231cc4a.656a9feb.js new file mode 100644 index 0000000000..f366e3aa6a --- /dev/null +++ b/assets/js/8231cc4a.656a9feb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9736],{41838:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var t=s(85893),o=s(11151);const i={title:"Week 12",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"04th September, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 12"]},a=void 0,d={id:"2022/ui/updates/krishna/2022-09-04",title:"Week 12",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-09-04.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-09-04",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-09-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-09-04.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 12",permalink:"/gsoc/docs/tags/week-12"}],version:"current",frontMatter:{title:"Week 12",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"04th September, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 12"]},sidebar:"2022",previous:{title:"Week 11",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-28"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/ui/updates/samuel/2021-06-24"}},r={},l=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"Designing <code>GET uploads/{id}/history</code>",id:"designing-get-uploadsidhistory",level:2},{value:"API PR Link : feat(API): /jobs/{id}/history GET route to get the history of all the jobs queued based on an upload #2307",id:"api-pr-link--featapi-jobsidhistory-get-route-to-get-the-history-of-all-the-jobs-queued-based-on-an-upload-2307",level:3},{value:"Testing <code>GET jobs/{id}/history</code>",id:"testing-get-jobsidhistory",level:2},{value:"Implementing the <code>Show jobs</code> page in the react UI (with API)",id:"implementing-the-show-jobs-page-in-the-react-ui-with-api",level:2},{value:"UI PR Link : feat(UI): added show jobs page to view all the jobs queued for the upload #256",id:"ui-pr-link--featui-added-show-jobs-page-to-view-all-the-jobs-queued-for-the-upload-256",level:3},{value:"Working Demo <code>Show jobs Page</code>",id:"working-demo-show-jobs-page",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Sl. No."}),(0,t.jsx)(n.th,{children:"Initial Goals"}),(0,t.jsx)(n.th,{children:"Completed"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"1."}),(0,t.jsx)(n.td,{children:"Solve requested changes on existing PRs"}),(0,t.jsx)(n.td,{children:"Done"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"2."}),(0,t.jsx)(n.td,{children:"Update the GSOC progress report repository"}),(0,t.jsx)(n.td,{children:"Done"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"3."}),(0,t.jsxs)(n.td,{children:["Design the show jobs API in ",(0,t.jsx)(n.code,{children:"openapi.yaml "})]}),(0,t.jsx)(n.td,{children:"Done"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"4."}),(0,t.jsx)(n.td,{children:"Implementing the show jobs page in the react UI (with API)"}),(0,t.jsx)(n.td,{children:"Done"})]})]})]}),"\n",(0,t.jsxs)(n.h2,{id:"designing-get-uploadsidhistory",children:["Designing ",(0,t.jsx)(n.code,{children:"GET uploads/{id}/history"})]}),"\n",(0,t.jsx)(n.p,{children:"The API design is something like mentioned below"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"/jobs/{id}/history:\n parameters:\n - name: id\n required: true\n description: Id of the upload\n in: path\n schema:\n type: integer\n get:\n operationId: getJobsHistory\n tags:\n - Job\n summary: Get the history of all the jobs queued based on an upload\n description: Returns the history of all the jobs queued based on an upload\n responses:\n '200':\n description: OK\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/components/schemas/ShowJob'\n '403':\n description: Upload is not accessible\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/Info'\n '404':\n description: Upload does not exist\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/Info'\n default:\n $ref: '#/components/responses/defaultResponse'\n"})}),"\n",(0,t.jsxs)(n.h3,{id:"api-pr-link--featapi-jobsidhistory-get-route-to-get-the-history-of-all-the-jobs-queued-based-on-an-upload-2307",children:["API PR Link : ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2307",children:"feat(API): /jobs/{id}/history GET route to get the history of all the jobs queued based on an upload #2307"})]}),"\n",(0,t.jsxs)(n.h2,{id:"testing-get-jobsidhistory",children:["Testing ",(0,t.jsx)(n.code,{children:"GET jobs/{id}/history"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Use any API platform like postman."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Pull the changes from the above PR."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"If the upload id exists, you, can expect a response like this"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' [\n {\n "jobId": "7",\n "jobName": "Nirjas-master.zip",\n "jobQueue": [\n {\n "jq_pk": "11",\n "jq_job_fk": "7",\n "jq_type": "ununpack",\n "jq_args": "3",\n "jq_starttime": "2022-08-17 11:50:07",\n "jq_endtime": "2022-08-17 11:50:08",\n "jq_endtext": "Completed",\n "jq_itemsprocessed": "88",\n "jdep_jq_depends_fk": null,\n "depends": [\n null\n ],\n "itemsPerSec": 88,\n "canDoActions": true,\n "isInProgress": false,\n "isReady": true,\n "download": ""\n },\n {\n "jq_pk": "12",\n "jq_job_fk": "7",\n "jq_type": "adj2nest",\n "jq_args": "3",\n "jq_starttime": "2022-08-17 11:50:08",\n "jq_endtime": "2022-08-17 11:50:08",\n "jq_endtext": "Completed",\n "jq_itemsprocessed": "88",\n "jdep_jq_depends_fk": "11",\n "depends": [\n "11"\n ],\n "itemsPerSec": 88,\n "canDoActions": true,\n "isInProgress": false,\n "isReady": true,\n "download": ""\n },\n {\n "jq_pk": "13",\n "jq_job_fk": "7",\n "jq_type": "monk",\n "jq_args": "3",\n "jq_starttime": "2022-08-17 11:50:09",\n "jq_endtime": "2022-08-17 11:50:12",\n "jq_endtext": "Completed",\n "jq_itemsprocessed": "77",\n "jdep_jq_depends_fk": "12",\n "depends": [\n "12"\n ],\n "itemsPerSec": 25.666666666666668,\n "canDoActions": true,\n "isInProgress": false,\n "isReady": true,\n "download": ""\n },\n {\n "jq_pk": "14",\n "jq_job_fk": "7",\n "jq_type": "nomos",\n "jq_args": "3",\n "jq_starttime": "2022-08-17 11:50:09",\n "jq_endtime": "2022-08-17 11:50:20",\n "jq_endtext": "Completed",\n "jq_itemsprocessed": "77",\n "jdep_jq_depends_fk": "12",\n "depends": [\n "12"\n ],\n "itemsPerSec": 7,\n "canDoActions": true,\n "isInProgress": false,\n "isReady": true,\n "download": ""\n },\n {\n "jq_pk": "15",\n "jq_job_fk": "7",\n "jq_type": "ojo",\n "jq_args": "3",\n "jq_starttime": "2022-08-17 11:50:09",\n "jq_endtime": "2022-08-17 11:50:09",\n "jq_endtext": "Completed",\n "jq_itemsprocessed": "77",\n "jdep_jq_depends_fk": "12",\n "depends": [\n "12"\n ],\n "itemsPerSec": 77,\n "canDoActions": true,\n "isInProgress": false,\n "isReady": true,\n "download": ""\n }\n ],\n "upload": {\n "uploadName": "Nirjas-master.zip",\n "uploadId": "3",\n "uploadDesc": "Test Zip",\n "uploadItem": "3",\n "uploadEta": ""\n }\n }\n]\n'})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.h2,{id:"implementing-the-show-jobs-page-in-the-react-ui-with-api",children:["Implementing the ",(0,t.jsx)(n.code,{children:"Show jobs"})," page in the react UI (with API)"]}),"\n",(0,t.jsxs)(n.h3,{id:"ui-pr-link--featui-added-show-jobs-page-to-view-all-the-jobs-queued-for-the-upload-256",children:["UI PR Link : ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/256",children:"feat(UI): added show jobs page to view all the jobs queued for the upload #256"})]}),"\n",(0,t.jsx)(n.p,{children:"This PR contains two tasks"}),"\n",(0,t.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,t.jsxs)(n.li,{className:"task-list-item",children:[(0,t.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Creation of a new page that will show all the jobs queued for an upload and all other useful information.","\n",(0,t.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,t.jsxs)(n.li,{className:"task-list-item",children:[(0,t.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Create the static UI using reusable components."]}),"\n",(0,t.jsxs)(n.li,{className:"task-list-item",children:[(0,t.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Integrate the API from ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2307",children:"https://github.com/fossology/fossology/pull/2307"})]}),"\n",(0,t.jsxs)(n.li,{className:"task-list-item",children:[(0,t.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Test Everything."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{className:"task-list-item",children:[(0,t.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Reading the main licenses and status parameter from the backend and showing it in the browse table for each upload."]}),"\n"]}),"\n",(0,t.jsxs)(n.h2,{id:"working-demo-show-jobs-page",children:["Working Demo ",(0,t.jsx)(n.code,{children:"Show jobs Page"})]}),"\n",(0,t.jsx)("iframe",{width:"560",height:"315",src:"https://user-images.githubusercontent.com/71918441/188309415-6d9ff002-a01c-44d5-8998-c6f200678415.mp4",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,t.jsx)(n.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Implement the report import functionality via REST API."}),"\n",(0,t.jsx)(n.li,{children:"Create the Report Import page in react UI."}),"\n",(0,t.jsxs)(n.li,{children:["Write a blog decribing the journey of ",(0,t.jsx)(n.strong,{children:"GSOC'2022"})," and contributions made during the tenure."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>a});var t=s(67294);const o={},i=t.createContext(o);function a(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/824bed64.75af5a64.js b/assets/js/824bed64.75af5a64.js new file mode 100644 index 0000000000..3a2b7c2b51 --- /dev/null +++ b/assets/js/824bed64.75af5a64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[628],{44174:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var t=i(85893),s=i(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2022/ui/"},r=void 0,l={id:"2022/ui/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2022/ui/index.md",sourceDirName:"2022/ui",slug:"/2022/ui/",permalink:"/gsoc/docs/2022/ui/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2022/ui/"},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/spasht/updates/2022-07-13"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/ayush/2022-06-02"}},c={},a=[{value:"Migration of UI @ FOSSology",id:"migration-of-ui--fossology",level:2},{value:"Project Overview",id:"project-overview",level:3},{value:"Objectives",id:"objectives",level:3},{value:"Authors",id:"authors",level:3}];function h(e){const n={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.h2,{id:"migration-of-ui--fossology",children:["Migration of UI @ ",(0,t.jsx)(n.a,{href:"https://github.com/fossology",children:"FOSSology"})]}),"\n",(0,t.jsx)(n.h3,{id:"project-overview",children:"Project Overview"}),"\n",(0,t.jsx)(n.p,{children:"The UI Migration project is an effort focused on generating the new\ncomponent-based architecture with the integration of the APIs. To make the\nproject more efficient and easily accessible, an entire code base shift from\nSymfony-Twig to React.js is proposed. React.js features an incrementally\nadaptable architecture that focuses on declarative rendering and component\ncomposition. React.js component system will enable us to organize the current\nworking APIs appropriately."}),"\n",(0,t.jsx)(n.h3,{id:"objectives",children:"Objectives"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on good interactive design, with a modern look."}),"\n",(0,t.jsx)(n.li,{children:"Integrating the APIs to the new component-based UI structure."}),"\n",(0,t.jsx)(n.li,{children:"Seamless routing and page transitions."}),"\n",(0,t.jsx)(n.li,{children:"Giving the power of the node engine to our UI. Making all NPM accessible."}),"\n",(0,t.jsx)(n.li,{children:"Writing detailed \u200b documentation of the project, to make the\ncodebase simpler for other contributors."}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Check out the ",(0,t.jsx)(n.a,{href:"installation",children:"installation steps"})," for the project."]}),"\n",(0,t.jsx)(n.h3,{id:"authors",children:"Authors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:ayushknj3@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.linkedin.com/in/ayush-kumar-984443191/",children:"Linkedin"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:krishhtrishh9304@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.linkedin.com/in/krishna-mahato/",children:"Linkedin"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://linkedin.com/",children:"Linkedin"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://linkedin.com/",children:"Linkedin"})}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var t=i(67294);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8281.01d912ff.js b/assets/js/8281.01d912ff.js new file mode 100644 index 0000000000..9edc60cdf2 --- /dev/null +++ b/assets/js/8281.01d912ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8281],{61460:(e,t,s)=>{s.d(t,{Z:()=>p});var a=s(67294),r=s(36905),n=s(46040),l=s(87524),i=s(33692),o=s(95999),c=s(16550),m=s(48596);function d(e){const{pathname:t}=(0,c.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var h=s(85893);function g(e){let{sidebar:t}=e;const s=d(t.items);return(0,h.jsx)("aside",{className:"col col--3",children:(0,h.jsxs)("nav",{className:(0,r.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,o.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,h.jsx)("div",{className:(0,r.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,h.jsx)("ul",{className:(0,r.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,h.jsx)("li",{className:u.sidebarItem,children:(0,h.jsx)(i.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var x=s(13102);function f(e){let{sidebar:t}=e;const s=d(t.items);return(0,h.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,h.jsx)("li",{className:"menu__list-item",children:(0,h.jsx)(i.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function j(e){return(0,h.jsx)(x.Zo,{component:f,props:e})}function b(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,h.jsx)(j,{sidebar:t}):(0,h.jsx)(g,{sidebar:t}):null}function p(e){const{sidebar:t,toc:s,children:a,...l}=e,i=t&&t.items.length>0;return(0,h.jsx)(n.Z,{...l,children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsxs)("div",{className:"row",children:[(0,h.jsx)(b,{sidebar:t}),(0,h.jsx)("main",{className:(0,r.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),children:a}),s&&(0,h.jsx)("div",{className:"col col--2",children:s})]})})})}},33665:(e,t,s)=>{s.d(t,{Z:()=>A});s(67294);var a=s(36905),r=s(9460),n=s(85893);function l(e){let{children:t,className:s}=e;return(0,n.jsx)("article",{className:s,children:t})}var i=s(33692);const o={title:"title_f1Hy"};function c(e){let{className:t}=e;const{metadata:s,isBlogPostPage:l}=(0,r.C)(),{permalink:c,title:m}=s,d=l?"h1":"h2";return(0,n.jsx)(d,{className:(0,a.Z)(o.title,t),children:l?m:(0,n.jsx)(i.Z,{to:c,children:m})})}var m=s(95999),d=s(88824),u=s(9788);const h={container:"container_mt6G"};function g(e){let{readingTime:t}=e;const s=function(){const{selectMessage:e}=(0,d.c)();return t=>{const s=Math.ceil(t);return e(s,(0,m.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:s}))}}();return(0,n.jsx)(n.Fragment,{children:s(t)})}function x(e){let{date:t,formattedDate:s}=e;return(0,n.jsx)("time",{dateTime:t,children:s})}function f(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function j(e){let{className:t}=e;const{metadata:s}=(0,r.C)(),{date:l,readingTime:i}=s,o=(0,u.P)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,a.Z)(h.container,"margin-vert--md",t),children:[(0,n.jsx)(x,{date:l,formattedDate:(c=l,o.format(new Date(c)))}),void 0!==i&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(f,{}),(0,n.jsx)(g,{readingTime:i})]})]});var c}function b(e){return e.href?(0,n.jsx)(i.Z,{...e}):(0,n.jsx)(n.Fragment,{children:e.children})}function p(e){let{author:t,className:s}=e;const{name:r,title:l,url:i,imageURL:o,email:c}=t,m=i||c&&`mailto:${c}`||void 0;return(0,n.jsxs)("div",{className:(0,a.Z)("avatar margin-bottom--sm",s),children:[o&&(0,n.jsx)(b,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:"avatar__photo",src:o,alt:r})}),r&&(0,n.jsxs)("div",{className:"avatar__intro",children:[(0,n.jsx)("div",{className:"avatar__name",children:(0,n.jsx)(b,{href:m,children:(0,n.jsx)("span",{children:r})})}),l&&(0,n.jsx)("small",{className:"avatar__subtitle",children:l})]})]})}const v={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function N(e){let{className:t}=e;const{metadata:{authors:s},assets:l}=(0,r.C)();if(0===s.length)return null;const i=s.every((e=>{let{name:t}=e;return!t}));return(0,n.jsx)("div",{className:(0,a.Z)("margin-top--md margin-bottom--sm",i?v.imageOnlyAuthorRow:"row",t),children:s.map(((e,t)=>(0,n.jsx)("div",{className:(0,a.Z)(!i&&"col col--6",i?v.imageOnlyAuthorCol:v.authorCol),children:(0,n.jsx)(p,{author:{...e,imageURL:l.authorsImageUrls[t]??e.imageURL}})},t)))})}function _(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(c,{}),(0,n.jsx)(j,{}),(0,n.jsx)(N,{})]})}var Z=s(18780),k=s(77395);function P(e){let{children:t,className:s}=e;const{isBlogPostPage:l}=(0,r.C)();return(0,n.jsx)("div",{id:l?Z.blogPostContainerID:void 0,className:(0,a.Z)("markdown",s),children:(0,n.jsx)(k.Z,{children:t})})}var I=s(35281),w=s(47265),C=s(71526);function T(){return(0,n.jsx)("b",{children:(0,n.jsx)(m.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read More"})})}function L(e){const{blogPostTitle:t,...s}=e;return(0,n.jsx)(i.Z,{"aria-label":(0,m.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...s,children:(0,n.jsx)(T,{})})}function y(){const{metadata:e,isBlogPostPage:t}=(0,r.C)(),{tags:s,title:l,editUrl:i,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:m}=e,d=!t&&o,u=s.length>0;if(!(u||d||i))return null;if(t){const e=!!(i||m||c);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,n.jsx)("div",{className:(0,a.Z)("row","margin-top--sm",I.k.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(C.Z,{tags:s})})}),e&&(0,n.jsx)(w.Z,{className:(0,a.Z)("margin-top--sm",I.k.blog.blogFooterEditMetaRow),editUrl:i,lastUpdatedAt:m,lastUpdatedBy:c})]})}return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,n.jsx)("div",{className:(0,a.Z)("col",{"col--9":d}),children:(0,n.jsx)(C.Z,{tags:s})}),d&&(0,n.jsx)("div",{className:(0,a.Z)("col text--right",{"col--3":u}),children:(0,n.jsx)(L,{blogPostTitle:l,to:e.permalink})})]})}function A(e){let{children:t,className:s}=e;const i=function(){const{isBlogPostPage:e}=(0,r.C)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(l,{className:(0,a.Z)(i,s),children:[(0,n.jsx)(_,{}),(0,n.jsx)(P,{children:t}),(0,n.jsx)(y,{})]})}},9460:(e,t,s)=>{s.d(t,{C:()=>o,n:()=>i});var a=s(67294),r=s(902),n=s(85893);const l=a.createContext(null);function i(e){let{children:t,content:s,isBlogPostPage:r=!1}=e;const i=function(e){let{content:t,isBlogPostPage:s}=e;return(0,a.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:s})),[t,s])}({content:s,isBlogPostPage:r});return(0,n.jsx)(l.Provider,{value:i,children:t})}function o(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("BlogPostProvider");return e}},88824:(e,t,s)=>{s.d(t,{c:()=>c});var a=s(67294),r=s(52263);const n=["zero","one","two","few","many","other"];function l(e){return n.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,r.Z)();return(0,a.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,s)=>function(e,t,s){const a=e.split("|");if(1===a.length)return a[0];a.length>s.pluralForms.length&&console.error(`For locale=${s.locale}, a maximum of ${s.pluralForms.length} plural forms are expected (${s.pluralForms.join(",")}), but the message contains ${a.length}: ${e}`);const r=s.select(t),n=s.pluralForms.indexOf(r);return a[Math.min(n,a.length-1)]}(s,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/8394d583.3bf2f916.js b/assets/js/8394d583.3bf2f916.js new file mode 100644 index 0000000000..125c6c627a --- /dev/null +++ b/assets/js/8394d583.3bf2f916.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[515],{65325:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 6","permalink":"/gsoc/docs/tags/week-6","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-07-24","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-24"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/83ae4789.ebf0df84.js b/assets/js/83ae4789.ebf0df84.js new file mode 100644 index 0000000000..b3f5146c3d --- /dev/null +++ b/assets/js/83ae4789.ebf0df84.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7586],{90435:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=s(85893),t=s(11151);const r={title:"OVERHAULING SCHEDULER DESIGN (Discussion)",author:"Aaditya Singh"},a="Meeting 8",c={id:"2024/scheduler/updates/2024-06-07",title:"OVERHAULING SCHEDULER DESIGN (Discussion)",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/2024-06-07.md",sourceDirName:"2024/scheduler/updates",slug:"/2024/scheduler/updates/2024-06-07",permalink:"/gsoc/docs/2024/scheduler/updates/2024-06-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/2024-06-07.md",tags:[],version:"current",frontMatter:{title:"OVERHAULING SCHEDULER DESIGN (Discussion)",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"Weekly Updates (Community Bonding)",permalink:"/gsoc/docs/2024/scheduler/updates/2024-06-06"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/license-detection/"}},o={},d=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2}];function h(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-8",children:"Meeting 8"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 07, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Contributors"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Discussing integration and implementation strategies for the new scheduler design."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"architecture-version: 02",src:s(91032).Z+"",width:"828",height:"1031"})}),"\n",(0,i.jsxs)(n.p,{children:["It consists of a sophisticated job scheduling system that leverages Go's powerful concurrency features to efficiently manage tasks across two ",(0,i.jsx)(n.em,{children:"primary queues"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Dependent Queue"}),"\n",(0,i.jsx)(n.li,{children:"Independent Queue"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Each queue is managed by a dedicated Global Go-Routine, which orchestrates the distribution and execution of tasks among multiple subordinate Go-Routines. These Go-Routines operate in parallel, each managing its own set of threads to ensure tasks are executed concurrently, ",(0,i.jsx)(n.em,{children:"maximising throughput"})," & ",(0,i.jsx)(n.em,{children:"minimising response time"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Key Components:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.em,{children:"Database"}),": Central storage for all job-related data, ensuring durability and consistency across job executions."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.em,{children:"Dependent Queue"}),": Manages jobs that depend on the completion of other jobs, ensuring correct execution order."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.em,{children:"Independent Queue"}),": Handles jobs that can be executed independently, allowing for simultaneous processing and improved efficiency."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.em,{children:"Logging"}),": Each thread incorporates logging to track job execution, facilitating debugging and system monitoring."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.em,{children:"Termination"}),": Ensures all tasks are either completed or properly terminated before system shutdown, maintaining system integrity."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Mentors"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Questioned whether priority can be implemented in both dependent and independent queues effectively."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Highlighted considerations for ensuring mutual exclusivity either across dependent or independent queues, with a focus on execution rules and limitations."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": Inquired about how goroutines can achieve both concurrency and parallelism, and whether they should operate synchronously or asynchronously."]}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},91032:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/arch_ver.02-06b3ee26b706823713a4d33d6d02410d.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>a});var i=s(67294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/83e35eb5.d3d5041b.js b/assets/js/83e35eb5.d3d5041b.js new file mode 100644 index 0000000000..192e249174 --- /dev/null +++ b/assets/js/83e35eb5.d3d5041b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5205],{53456:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>d});var s=i(85893),t=i(11151);const l={sidebar_position:2,title:"Community Bonding 2"},o=void 0,r={id:"2023/minutes/2023-05-18",title:"Community Bonding 2",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-05-18.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-05-18",permalink:"/gsoc/docs/2023/minutes/2023-05-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-05-18.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Community Bonding 2"},sidebar:"2023",previous:{title:"Community Bonding 1",permalink:"/gsoc/docs/2023/minutes/2023-05-11"},next:{title:"Community Bonding 3",permalink:"/gsoc/docs/2023/minutes/2023-05-25"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Questions",id:"questions",level:2},{value:"Updates",id:"updates",level:2},{value:"General",id:"general",level:2},{value:"Follow up",id:"follow-up",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",li:"li",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"questions",children:"Questions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Soham: Have to run 3 cmake commands every time we do update?","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Yes, you will have to."}),"\n",(0,s.jsxs)(n.li,{children:["But if change is purely in PHP and no new commit, ",(0,s.jsx)(n.code,{children:"sudo cmake --install ./build && sudo rm -rf /var/local/cache/fossology/*"})," should be sufficient and fast."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Abdelrahman: Have final exams next week.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Have extended timeline is proposal. Want to have it updated on GSoC dashboard."}),"\n",(0,s.jsx)(n.li,{children:"Should contact one of Gaurav, Shaheem or Anupam."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Should we contact CycloneDX?","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Probably not at the moment."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Gaurav: Should license as a service should be in fossology codebase or a separate project?","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"It should be a separate project. Will also help with licensing."}),"\n",(0,s.jsx)(n.li,{children:"Gaurav will create new project on GitHub during coding period."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Soham Created trello board for REST API issue.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Trello is freeware. Probably moving to GitHub Projects will be better."}),"\n",(0,s.jsx)(n.li,{children:"Soham does not have access to GitHub project. Gaurav will migrate from Trello."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Soham's YouTube video is live now. Available at: ",(0,s.jsx)(n.a,{href:"https://youtu.be/SB3rKxwRy54",children:"https://youtu.be/SB3rKxwRy54"})]}),"\n",(0,s.jsx)(n.li,{children:"No updates from Kavya."}),"\n",(0,s.jsx)(n.li,{children:"Samuel: Working with Soham. Should not collide on works. Created Trello board to help streamline the work."}),"\n",(0,s.jsx)(n.li,{children:"Sushant: Setup the system during the time."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Contributors are advised to check with mentors about the dependency/libraries' license."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"follow-up",children:"Follow up"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Abdelrahman to have call with Kaushlendra about the project. And write email/slack to Gaurav/Shaheem about extended timeline."}),"\n",(0,s.jsx)(n.li,{children:"Gaurav to signup on Trello and migrate it to GitHub projects."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>o});var s=i(67294);const t={},l=s.createContext(t);function o(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8535af15.296d577e.js b/assets/js/8535af15.296d577e.js new file mode 100644 index 0000000000..42ae3f0bce --- /dev/null +++ b/assets/js/8535af15.296d577e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2523],{90595:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>n,metadata:()=>a,toc:()=>d});var o=t(85893),i=t(11151);const n={title:"Week 6",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},c=void 0,a={id:"2023/rest/updates/soham/2023-07-16",title:"Week 6",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-07-16.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-07-16",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-07-16.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 6",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 5",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-05"},next:{title:"Week 7",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-28"}},r={},d=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Response for total copyrights <code>uploads/{uploadId}/item/{itemid}/totalcopyrights?status=active/inactive</code>",id:"1-response-for-total-copyrights-uploadsuploadiditemitemidtotalcopyrightsstatusactiveinactive",level:4},{value:"2. Conf info response <code>/uploads/{id}/conf</code>",id:"2-conf-info-response-uploadsidconf",level:4},{value:"3. New customise endpoint response <code>/customise</code>",id:"3-new-customise-endpoint-response-customise",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function l(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["Updated Pull Request for getting total copyrights. Included query parameters to get seperate response for active and inactive copyrights. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"uploads/{uploadId}/item/{itemid}/totalcopyrights?status=active/inactive"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2488",children:"#2488"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Updated Pull Request to get conf info from the server. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/uploads/{id}/conf"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2505",children:"#2505"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Updated Pull Request to get conf info from the server. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/uploads/{id}/conf"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2505",children:"#2505"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Added reformatted response for the customise page data endpoint. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/customise"})]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsxs)(s.h4,{id:"1-response-for-total-copyrights-uploadsuploadiditemitemidtotalcopyrightsstatusactiveinactive",children:["1. Response for total copyrights ",(0,o.jsx)(s.code,{children:"uploads/{uploadId}/item/{itemid}/totalcopyrights?status=active/inactive"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"total-copyrights-response",src:t(29489).Z+"",width:"573",height:"534"})}),"\n",(0,o.jsxs)(s.h4,{id:"2-conf-info-response-uploadsidconf",children:["2. Conf info response ",(0,o.jsx)(s.code,{children:"/uploads/{id}/conf"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"conf-response",src:t(678).Z+"",width:"1318",height:"666"})}),"\n",(0,o.jsxs)(s.h4,{id:"3-new-customise-endpoint-response-customise",children:["3. New customise endpoint response ",(0,o.jsx)(s.code,{children:"/customise"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"customise-response",src:t(48106).Z+"",width:"545",height:"670"})}),"\n",(0,o.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"Modify the existing endpoints according to the suggestions from mentors"}),"\n",(0,o.jsx)(s.li,{children:"Start developing Update endpoints as for the existing GET endpoints"}),"\n",(0,o.jsx)(s.li,{children:"fix existing bugs from some of the endpoints."}),"\n",(0,o.jsx)(s.li,{children:"Discuss with the mentors on the priority of the upcoming endpoints."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},678:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/confInfo_new-4854ca908333b089e4a02a0a0aac0bb6.png"},29489:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/totalResponse_new-0f9a2b811f4ae03b39da6a11091aa66e.png"},48106:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/customiseData-cf3bf9353a8f64c457ce22af03cd6969.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>c});var o=t(67294);const i={},n=o.createContext(i);function c(e){const s=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),o.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/864a049b.d3329347.js b/assets/js/864a049b.d3329347.js new file mode 100644 index 0000000000..720e6a7cbc --- /dev/null +++ b/assets/js/864a049b.d3329347.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9437],{39437:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>c,frontMatter:()=>h,metadata:()=>a,toc:()=>o});var n=t(85893),i=t(11151);const h={title:"Week 9",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},r=void 0,a={id:"2022/reuse/updates/2022-08-09",title:"Week 9",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-08-09.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-08-09",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-08-09.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 9",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 8",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-02"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-16"}},d={},o=[{value:"Meeting 20",id:"meeting-20",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 21",id:"meeting-21",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3}];function l(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-20",children:"Meeting 20"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 9th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Created/updated documentation (wiki pages) for the Home, Coding style, Reso style, Copyright style, and Licensing style areas."}),"\n",(0,n.jsx)(s.li,{children:"Presented SPDX-Copyright keyword detection implementation."}),"\n",(0,n.jsx)(s.li,{children:"Cleared doubt about a PHP file's code-sniffer error."}),"\n",(0,n.jsxs)(s.li,{children:["I asked mentors for guidance on issue ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - ",(0,n.jsx)(s.code,{children:"detection of the LICENSES/ folder"}),"."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"meeting-21",children:"Meeting 21"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 11th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"This week I worked on documentation of Copyright and Licensing style and Reso agent."}),"\n",(0,n.jsx)(s.li,{children:"Presented SPDX-Copyright keyword detection implementation."}),"\n",(0,n.jsxs)(s.li,{children:["In the upcoming week, I will work on the issue ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - ",(0,n.jsx)(s.code,{children:"detection of the LICENSES/ folder"}),"."]}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>r});var n=t(67294);const i={},h=n.createContext(i);function r(e){const s=n.useContext(h);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(h.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8782ef71.c7673867.js b/assets/js/8782ef71.c7673867.js new file mode 100644 index 0000000000..d586f46021 --- /dev/null +++ b/assets/js/8782ef71.c7673867.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5915],{89468:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>d,metadata:()=>l,toc:()=>a});var i=n(85893),t=n(11151);const d={title:"Week 11",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"28th August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 11"]},r=void 0,l={id:"2022/ui/updates/krishna/2022-08-28",title:"Week 11",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-08-28.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-08-28",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-08-28.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 11",permalink:"/gsoc/docs/tags/week-11"}],version:"current",frontMatter:{title:"Week 11",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"28th August, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 11"]},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-21"},next:{title:"Week 12",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-09-04"}},o={},a=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"API Implemention of Add and Edit user page",id:"api-implemention-of-add-and-edit-user-page",level:2},{value:"Working Demo",id:"working-demo",level:2},{value:"<code>Add User Page</code>",id:"add-user-page",level:3},{value:"<code>Edit User Page</code>",id:"edit-user-page",level:3},{value:"New APIs",id:"new-apis",level:2},{value:"<code>Show Jobs</code> API",id:"show-jobs-api",level:2},{value:"Overview",id:"overview",level:3},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function c(e){const s={code:"code",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{children:"Sl. No."}),(0,i.jsx)(s.th,{children:"Initial Goals"}),(0,i.jsx)(s.th,{children:"Completed"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"1."}),(0,i.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,i.jsx)(s.td,{children:"Done"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"2."}),(0,i.jsx)(s.td,{children:"Implementing the user APIs"}),(0,i.jsx)(s.td,{children:"Done"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"3."}),(0,i.jsx)(s.td,{children:"Implementing the show jobs API and UI"}),(0,i.jsx)(s.td,{children:"In progress"})]})]})]}),"\n",(0,i.jsx)(s.h2,{id:"api-implemention-of-add-and-edit-user-page",children:"API Implemention of Add and Edit user page"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["This task included","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Changing the initial design in which the mock API handling was done."}),"\n",(0,i.jsxs)(s.li,{children:["Create ",(0,i.jsx)(s.code,{children:"services"})," and ",(0,i.jsx)(s.code,{children:"api modules"})," for the user API's."]}),"\n",(0,i.jsx)(s.li,{children:"Implement the REST APIs in the UI and test everything."}),"\n",(0,i.jsx)(s.li,{children:"Changing the flow of creating a REST Token (Now the user need to put in his password to create a custom REST API token)"}),"\n",(0,i.jsx)(s.li,{children:"Handle any unexpected UI behaviour due to change in the expected API response."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["Following are the APIs implemented","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"POST /users"})," to create a user."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"PUT /users/{id}"})," to modify user details."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"POST /users/tokens"})," to create a REST API Token."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.code,{children:"GET /users/tokens/{type}"})," to get all the REST API tokens available."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"working-demo",children:"Working Demo"}),"\n",(0,i.jsx)(s.h3,{id:"add-user-page",children:(0,i.jsx)(s.code,{children:"Add User Page"})}),"\n",(0,i.jsx)("iframe",{width:"560",height:"315",src:"https://user-images.githubusercontent.com/71918441/188308410-4ac6dd4c-9479-4d89-ab3a-60f0f53eef2a.mp4",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,i.jsx)(s.h3,{id:"edit-user-page",children:(0,i.jsx)(s.code,{children:"Edit User Page"})}),"\n",(0,i.jsx)(s.h2,{id:"",children:(0,i.jsx)("iframe",{width:"560",height:"315",src:"https://user-images.githubusercontent.com/71918441/184528131-2ff0e6bd-ab48-43fc-99d1-6a9d7c036268.mp4",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,i.jsx)(s.hr,{}),"\n",(0,i.jsx)(s.h2,{id:"new-apis",children:"New APIs"}),"\n",(0,i.jsxs)(s.h2,{id:"show-jobs-api",children:[(0,i.jsx)(s.code,{children:"Show Jobs"})," API"]}),"\n",(0,i.jsxs)(s.p,{children:["As per requirement ",(0,i.jsx)(s.code,{children:"Show Jobs"})," page needs to be implemented in the UI. There was no existing API that provided all the required details for the same."]}),"\n",(0,i.jsx)(s.h3,{id:"overview",children:"Overview"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["I implemented the show jobs API and it will be available at ",(0,i.jsx)(s.code,{children:"GET /uploads/{id}/history"}),", where ",(0,i.jsx)(s.code,{children:"{id}"})," is the upload id."]}),"\n",(0,i.jsxs)(s.li,{children:["I'll be issuing a PR for this once I design the API docs in ",(0,i.jsx)(s.code,{children:"openapi.yaml"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Design the ",(0,i.jsx)(s.code,{children:"GET /uploads/{id}/history"})," in ",(0,i.jsx)(s.code,{children:"openapi.yaml"})," and issue a PR."]}),"\n",(0,i.jsx)(s.li,{children:"Add any other small bug fixes or changes to the same PR if related to the same functionality."}),"\n",(0,i.jsxs)(s.li,{children:["Create a ",(0,i.jsx)(s.code,{children:"Show Jobs"})," page in the react UI."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>r});var i=n(67294);const t={},d=i.createContext(t);function r(e){const s=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/87bd4b70.09b7cb59.js b/assets/js/87bd4b70.09b7cb59.js new file mode 100644 index 0000000000..37b108f675 --- /dev/null +++ b/assets/js/87bd4b70.09b7cb59.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2357],{50986:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var n=s(85893),o=s(11151);const i={title:"Week 10",author:"Aman Dwivedi"},r=void 0,d={id:"2021/ui/updates/aman/2021-08-17",title:"Week 10",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-08-17.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-08-17",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-08-17.md",tags:[],version:"current",frontMatter:{title:"Week 10",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 9",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-10"},next:{title:"Installation",permalink:"/gsoc/docs/2021/ui/installation"}},a={},c=[{value:"Screenshot of added pages",id:"screenshot-of-added-pages",level:2},{value:"Contributions",id:"contributions",level:2}];function l(e){const t={a:"a",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Fixed the copyright table in dark theme"}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Added the groupname header in the download report request"}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["Built the docker image of Fossology API Version 2 repo and hosted it on dockerhub at ",(0,n.jsx)(t.a,{href:"https://hub.docker.com/repository/docker/amancodes/fossology-rest-api/general",children:"amancodes/fossology-rest-api"})]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Investigated about the CORS error issue with docker image"}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Updated the FossologyUI wiki"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"screenshot-of-added-pages",children:"Screenshot of added pages"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"copyright table",src:s(2666).Z+"",width:"1516",height:"670"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"copyright table dark theme",src:s(40979).Z+"",width:"1897",height:"853"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"export report",src:s(5441).Z+"",width:"1537",height:"795"})}),"\n",(0,n.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/147",children:"feat(copyright): add copyright table"})}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/150",children:"feat(report): add export report option on browse page"})}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/16",children:"CORS error with docker image"})}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/wiki",children:"Updated FossologyUI wiki"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},2666:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/copyrightTable-256df0b56bce95d94e411df7d4fd00f3.gif"},40979:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/copyrightTableDark-c6639f041b85fd7bfdca3017a1a1cd99.PNG"},5441:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/exportReport-65451863fc80d01aef1531513d2a3d03.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>r});var n=s(67294);const o={},i=n.createContext(o);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/88c389e0.2a02237e.js b/assets/js/88c389e0.2a02237e.js new file mode 100644 index 0000000000..651d4dbabd --- /dev/null +++ b/assets/js/88c389e0.2a02237e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2072],{88193:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 8","permalink":"/gsoc/docs/tags/week-8","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-08-07","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-07"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/89831ac9.545734d9.js b/assets/js/89831ac9.545734d9.js new file mode 100644 index 0000000000..0f2553566e --- /dev/null +++ b/assets/js/89831ac9.545734d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8586],{76095:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var t=n(85893),s=n(11151);const a={title:"Week 2",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},o="WEEK 2",r={id:"2024/pipeline/updates/2024-06-06",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-06-06.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-06-06",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-06-06.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"pipeline",permalink:"/gsoc/docs/tags/pipeline"}],version:"current",frontMatter:{title:"Week 2",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/pipeline/updates/2024-05-30"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-13"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Engagements",id:"engagements",level:3},{value:"Subsequent Steps",id:"subsequent-steps",level:2}];function c(e){const i={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h1,{id:"week-2",children:"WEEK 2"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.em,{children:"(June 6, 2024)"})}),"\n",(0,t.jsx)(i.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["I presented a detailed plan via ",(0,t.jsx)(i.a,{href:"https://drive.google.com/file/d/1OFfabDOyZdiO0U_pBJi4SgcXKgDh6Jdh/view?usp=sharing",children:"PowerPoint"})," outlining my approach to the project. This included an explanation of Safaa's current functionality and its key features, along with identified areas for enhancing pipeline efficiency."]}),"\n",(0,t.jsx)(i.li,{children:"I initiated a discussion comparing TF-IDF with BERT/GPT embeddings. Given our relatively small dataset (~20k), I proposed transitioning to a transformer model if we scale up our dataset size."}),"\n",(0,t.jsx)(i.li,{children:"Additionally, I recommended replacing the current SVM model with either a transformer model or LSTM for improved performance."}),"\n",(0,t.jsx)(i.li,{children:"I also suggested initiating parallel work on developing a Python library for the NER-POS tagging task."}),"\n",(0,t.jsxs)(i.li,{children:["To guide me in formulating a structured approach to the pipeline steps, ",(0,t.jsx)(i.a,{href:"https://github.com/Kaushl2208",children:"Kaushal"})," shared his perspective by presenting his envisioned pipeline for the project. His insights proved invaluable in identifying and comprehending critical aspects of the pipeline's development and implementation."]}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"engagements",children:"Engagements"}),"\n",(0,t.jsx)(i.p,{children:"Further discussions covered aspects of model development, validation, testing, monitoring, and ongoing maintenance. I participated in the general meeting, providing comprehensive updates on project progress."}),"\n",(0,t.jsx)(i.h2,{id:"subsequent-steps",children:"Subsequent Steps"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"I was assigned the task of writing a script to connect to the Fossology database and retrieve copyright contents. Initially, I was instructed to test the script on my locally hosted Fossology instance using dummy data. Once validated, I will proceed to use the script to fetch actual data."}),"\n",(0,t.jsx)(i.li,{children:"Additionally, I was tasked with creating a MVP to substantiate my proposal for using embedding models and transformers instead of TF-IDF and SVM. This prototype aims to verify their effectiveness and potential for significant improvements."}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,s.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,i,n)=>{n.d(i,{Z:()=>r,a:()=>o});var t=n(67294);const s={},a=t.createContext(s);function o(e){const i=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8a76602d.eb9314a5.js b/assets/js/8a76602d.eb9314a5.js new file mode 100644 index 0000000000..650b489d1d --- /dev/null +++ b/assets/js/8a76602d.eb9314a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[477],{92841:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var i=s(85893),t=s(11151);const r={title:"Week 2",author:"Rajul Jha",tags:["gsoc24","CI"]},o="Week 2",c={id:"2024/ci-scanner/updates/2024-06-13",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-06-13.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-06-13",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-06-13.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 2",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-06"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-20"}},a={},l=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Updates",id:"updates",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-2",children:"Week 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 6, 2024 - June 13, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 12, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Mentors reviewed my PR's and gave me feedback like changes regarding squashing commits into one."}),"\n",(0,i.jsx)(n.li,{children:"There was a discussion regarding the copyright and keyword scanners breaking because of new formatting since they are regex based. I tested the code and it was working without any descrepencies."}),"\n",(0,i.jsx)(n.li,{children:"Mentors gave me pointers for adding byte info to nomos, which I was unable to figure out before."}),"\n",(0,i.jsxs)(n.li,{children:["I also found a bug in ",(0,i.jsx)(n.code,{children:"SpdxReport"})," where it breaks when an unknown license reference is found by the scanner. I had a discussion with the mentors regarding solving it."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates",children:"Updates"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Completed the Format Results functionality for the copyright and keyword scanners. ","\ud83d\ude01","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add the line numbers to the STDOUT, text_report and bom report function."}),"\n",(0,i.jsxs)(n.li,{children:["Sent out a ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2754",children:"PR(#2754)"})," with the given changes."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Add the line numbers for repo scans also in a seperate ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2756",children:"PR(#2756)"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Add line numbers for the remaining nomos and ojo scanners which requires:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Adding relevant byte info to the JSON output of nomos scanner."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Solve the bug found in ",(0,i.jsx)(n.code,{children:"SpdxReport"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Upgrade the spdx_tools library to latest version."}),"\n",(0,i.jsxs)(n.li,{children:["Try to figure out a method of providing custom keyword scanning by providing a path to a custom ",(0,i.jsx)(n.code,{children:"keyword.conf"})," file by the user."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>o});var i=s(67294);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8c9e2d39.6ab1b801.js b/assets/js/8c9e2d39.6ab1b801.js new file mode 100644 index 0000000000..c890848c34 --- /dev/null +++ b/assets/js/8c9e2d39.6ab1b801.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1908],{20548:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var n=i(85893),s=i(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2021/copyrights/"},a=void 0,r={id:"2021/copyrights/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2021/copyrights/index.md",sourceDirName:"2021/copyrights",slug:"/2021/copyrights/",permalink:"/gsoc/docs/2021/copyrights/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2021/copyrights/"},sidebar:"2021",previous:{title:"Final Evaluation",permalink:"/gsoc/docs/2021/buildsystem/final-evaluation"},next:{title:"Week 1",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-07"}},l={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2},{value:"What is that I am doing right now?",id:"what-is-that-i-am-doing-right-now",level:2}];function h(e){const t={a:"a",em:"em",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"author",children:"Author"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(t.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"mailto:kaushlendrapratap.9837@gmail.com",children:"Email"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://linkedin.com/in/kaushl2208",children:"LinkedIn"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,n.jsx)(t.p,{children:"Fossology's copyright detection agent uses a rule-based approach to detect copyright statements but like all the rule based approaches the edge cases in the stock of copyrights statements are increasing day by day thus the agent is showing a lot of False Positives result."}),"\n",(0,n.jsx)(t.p,{children:"Eg:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:['"copyright (c) 2021, Kaushlendra Pratap < ',(0,n.jsx)(t.a,{href:"mailto:kaushlendrapratap.9837@gmail.com",children:"kaushlendrapratap.9837@gmail.com"}),' >" # ',(0,n.jsx)(t.em,{children:"Seems like a valid copyright statement."}),"\nBut,"]}),"\n",(0,n.jsxs)(t.li,{children:['"copyright is something which should be present in the code/software provided by Kaushlendra." # ',(0,n.jsx)(t.em,{children:"Has been tagged as copyright by current agent but it is a False Positive"})]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,n.jsx)(t.p,{children:"Just like any other detection technique, we need to build a complete process/pipeline through which the copyright statements will go and the detector will classify it as True Positive or a False Positive."}),"\n",(0,n.jsx)(t.p,{children:"Interesting? Let's discuss about the ways we can do it:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.strong,{children:"Developing NLP drived rule based multi-layered checks"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.strong,{children:"Introducing a Machine learning based classifier which will train on existing manually classified copyright statements"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"what-is-that-i-am-doing-right-now",children:"What is that I am doing right now?"}),"\n",(0,n.jsxs)(t.p,{children:["Copyrights are more of a specifically structured statements which can be understood by the entities and Positions of each word. I am implementing ",(0,n.jsx)(t.strong,{children:"NER Model"})," and ",(0,n.jsx)(t.strong,{children:"POS Tagging"})," and through the results of each of it, I will be postulating a multilayered checking which will give good accuracy over detection.Applying checks on multiple levels and limiting it down to only the part where only the copyright statement is present will definitely help in detection of False Positives."]})]})}function d(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11151:(e,t,i)=>{i.d(t,{Z:()=>r,a:()=>a});var n=i(67294);const s={},o=n.createContext(s);function a(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8d1f374f.49be325b.js b/assets/js/8d1f374f.49be325b.js new file mode 100644 index 0000000000..9219eac9b9 --- /dev/null +++ b/assets/js/8d1f374f.49be325b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5307],{29381:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>h,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var t=s(85893),i=s(11151);const r={sidebar_position:8,title:"Week 8"},h=void 0,l={id:"2022/minutes/21-07-2022",title:"Week 8",description:"\x3c!--",source:"@site/docs/2022/minutes/21-07-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/21-07-2022",permalink:"/gsoc/docs/2022/minutes/21-07-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/21-07-2022.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"Week 8"},sidebar:"2022",previous:{title:"Week 7",permalink:"/gsoc/docs/2022/minutes/14-07-2022"},next:{title:"Week 9",permalink:"/gsoc/docs/2022/minutes/28-07-2022"}},a={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 21-07-2022."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"We are currently heading towards the first results phase and we see that the most of the students are lagging on what they have estimated. As mentors and admins, We also see that what you have promised and what you delivered. Please dedicate some more time so that you can finish what is lagging."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Fixing warnings in the agent i have created. Also resolved the comments by mentors on the pull request."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:'Raised two pullrequests for reuse standerd. Apart from that working on second part to identify "SPDX-FileCopyrightText:" and copyright license findings.'}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Dropped"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Last week I have worked on jobs endpoint also changes as requested by mentors. Currently the pull request is under review. Also the PR which fixes the columns in showjobs page."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Test some of my renaming APIs that are on the test queue and learned to how to solve particular errors which i used to encounter while testing."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Released a new API To remove a particular user from a specific group: ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2269",children:"https://github.com/fossology/fossology/pull/2269"})," (edited)"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>h});var t=s(67294);const i={},r=t.createContext(i);function h(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8d2724bf.57a7b03c.js b/assets/js/8d2724bf.57a7b03c.js new file mode 100644 index 0000000000..e5462cb928 --- /dev/null +++ b/assets/js/8d2724bf.57a7b03c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6887],{93344:(e,l,n)=>{n.r(l),n.d(l,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var d=n(85893),i=n(11151);const o={sidebar_position:4,title:"Docker Images"},s=void 0,c={id:"2021/microservice/dockerImages",title:"Docker Images",description:"\x3c!--",source:"@site/docs/2021/microservice/dockerImages.md",sourceDirName:"2021/microservice",slug:"/2021/microservice/dockerImages",permalink:"/gsoc/docs/2021/microservice/dockerImages",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/dockerImages.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Docker Images"},sidebar:"2021",previous:{title:"Setup",permalink:"/gsoc/docs/2021/microservice/setup"},next:{title:"Introduction",permalink:"/gsoc/docs/2021/minerva/"}},a={},r=[{value:"Base Image",id:"base-image",level:3},{value:"Tag",id:"tag",level:4},{value:"Build Command",id:"build-command",level:4},{value:"Scheduler",id:"scheduler",level:3},{value:"Tag",id:"tag-1",level:4},{value:"Build Command",id:"build-command-1",level:4},{value:"web",id:"web",level:3},{value:"Tag",id:"tag-2",level:4},{value:"Build Command",id:"build-command-2",level:4},{value:"Agents",id:"agents",level:3},{value:"ununpack",id:"ununpack",level:4},{value:"Tag",id:"tag-3",level:5},{value:"Build Command",id:"build-command-3",level:5},{value:"wget_agent",id:"wget_agent",level:4},{value:"Tag",id:"tag-4",level:5},{value:"Build Command",id:"build-command-4",level:5},{value:"nomos",id:"nomos",level:4},{value:"Tag",id:"tag-5",level:5},{value:"Build Command",id:"build-command-5",level:5},{value:"copyright",id:"copyright",level:4},{value:"Tag",id:"tag-6",level:5},{value:"Build Command",id:"build-command-6",level:5},{value:"ojo",id:"ojo",level:4},{value:"Tag",id:"tag-7",level:5},{value:"Build Command",id:"build-command-7",level:5}];function t(e){const l={code:"code",h3:"h3",h4:"h4",h5:"h5",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(l.h3,{id:"base-image",children:"Base Image"}),"\n",(0,d.jsx)(l.h4,{id:"tag",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/packages"}),"\n",(0,d.jsx)(l.h4,{id:"build-command",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.pkg . -t fossology/packages:latest"})}),"\n",(0,d.jsx)(l.h3,{id:"scheduler",children:"Scheduler"}),"\n",(0,d.jsx)(l.h4,{id:"tag-1",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/scheduler"}),"\n",(0,d.jsx)(l.h4,{id:"build-command-1",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.scheduler . -t fossology/scheduler:latest"})}),"\n",(0,d.jsx)(l.h3,{id:"web",children:"web"}),"\n",(0,d.jsx)(l.h4,{id:"tag-2",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/web"}),"\n",(0,d.jsx)(l.h4,{id:"build-command-2",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.web . -t fossology/web:latest"})}),"\n",(0,d.jsx)(l.h3,{id:"agents",children:"Agents"}),"\n",(0,d.jsxs)(l.ul,{children:["\n",(0,d.jsxs)(l.li,{children:["\n",(0,d.jsx)(l.h4,{id:"ununpack",children:"ununpack"}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(l.h5,{id:"tag-3",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/ununpack"}),"\n",(0,d.jsx)(l.h5,{id:"build-command-3",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.ununpack . -t fossology/ununpack:latest"})}),"\n",(0,d.jsxs)(l.ul,{children:["\n",(0,d.jsxs)(l.li,{children:["\n",(0,d.jsx)(l.h4,{id:"wget_agent",children:"wget_agent"}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(l.h5,{id:"tag-4",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/wgetagent"}),"\n",(0,d.jsx)(l.h5,{id:"build-command-4",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.wgetagnet . -t fossology/wgetagent:latest"})}),"\n",(0,d.jsxs)(l.ul,{children:["\n",(0,d.jsxs)(l.li,{children:["\n",(0,d.jsx)(l.h4,{id:"nomos",children:"nomos"}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(l.h5,{id:"tag-5",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/nomos"}),"\n",(0,d.jsx)(l.h5,{id:"build-command-5",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.nomos . -t fossology/nomos:latest"})}),"\n",(0,d.jsxs)(l.ul,{children:["\n",(0,d.jsxs)(l.li,{children:["\n",(0,d.jsx)(l.h4,{id:"copyright",children:"copyright"}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(l.h5,{id:"tag-6",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/copyright"}),"\n",(0,d.jsx)(l.h5,{id:"build-command-6",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.copyright . -t fossology/copyright:latest"})}),"\n",(0,d.jsxs)(l.ul,{children:["\n",(0,d.jsxs)(l.li,{children:["\n",(0,d.jsx)(l.h4,{id:"ojo",children:"ojo"}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(l.h5,{id:"tag-7",children:"Tag"}),"\n",(0,d.jsx)(l.p,{children:"fossology/ojo"}),"\n",(0,d.jsx)(l.h5,{id:"build-command-7",children:"Build Command"}),"\n",(0,d.jsx)(l.p,{children:(0,d.jsx)(l.code,{children:"docker build -f Dockerfile.ojo . -t fossology/ojo:latest"})})]})}function u(e={}){const{wrapper:l}={...(0,i.a)(),...e.components};return l?(0,d.jsx)(l,{...e,children:(0,d.jsx)(t,{...e})}):t(e)}},11151:(e,l,n)=>{n.d(l,{Z:()=>c,a:()=>s});var d=n(67294);const i={},o=d.createContext(i);function s(e){const l=d.useContext(o);return d.useMemo((function(){return"function"==typeof e?e(l):{...l,...e}}),[l,e])}function c(e){let l;return l=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),d.createElement(o.Provider,{value:l},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8d4bf5b6.c0a1bd58.js b/assets/js/8d4bf5b6.c0a1bd58.js new file mode 100644 index 0000000000..9b9fce6249 --- /dev/null +++ b/assets/js/8d4bf5b6.c0a1bd58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5197],{75204:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var n=i(85893),s=i(11151);const o={title:"Week 5",author:"Abdelrahman Jamal"},a=void 0,r={id:"2023/copyrights/updates/2023-06-28",title:"Week 5",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-06-28.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-06-28",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-06-28.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 4",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-21"},next:{title:"Week 6",permalink:"/gsoc/docs/2023/copyrights/updates/2023-07-05"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Holiday Break",id:"holiday-break",level:3},{value:"Library Exploration",id:"library-exploration",level:3},{value:"Dataset Clarification",id:"dataset-clarification",level:3},{value:"Conclusion and Further Plans#",id:"conclusion-and-further-plans",level:2},{value:"Dataset Clearing",id:"dataset-clearing",level:3}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.em,{children:"(June,28,2023)"})}),"\n",(0,n.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsx)(t.h2,{id:"updates",children:"Updates:"}),"\n",(0,n.jsx)(t.h3,{id:"holiday-break",children:"Holiday Break"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"This week's meeting was postponed due to the celebration of Eid al Adha, a prominent religious and public holiday in Egypt. With the consent of my mentors, the meeting was deferred."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"library-exploration",children:"Library Exploration"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["I ventured into the exploration of libraries that Gaurav proposed in our last discussion. After trying the Fossology Python library, I gravitated towards using the Python requests library directly. The code employed for dataset creation can be accessed ",(0,n.jsx)(t.a,{href:"https://gist.github.com/Hero2323/7ed99af2e336216860ad74e6002de5db",children:"here"}),". For utilization, it necessitates the upload of the software repository to Fossology via the user interface initially. Subsequently, my code aids in extracting copyrights, collating them in a CSV, and preserving them."]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"dataset-clarification",children:"Dataset Clarification"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"During the week, I concentrated on discerning the method to categorize the text yielded by the Fossology API into false positives or true positives."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans#"}),"\n",(0,n.jsx)(t.h3,{id:"dataset-clearing",children:"Dataset Clearing"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Aim to refine the dataset curated through various software repositories, inclusive of Fossology's repository. The intention is to present the outcomes to the mentors in the impending week."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,t,i)=>{i.d(t,{Z:()=>r,a:()=>a});var n=i(67294);const s={},o=n.createContext(s);function a(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8dfdbdf3.1c0148d2.js b/assets/js/8dfdbdf3.1c0148d2.js new file mode 100644 index 0000000000..cf07c47a2d --- /dev/null +++ b/assets/js/8dfdbdf3.1c0148d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1696],{98555:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var s=t(85893),o=t(11151);const i={title:"Week 9",author:"Sushant Kumar"},c=void 0,a={id:"2023/cyclonedx/updates/2023-07-27",title:"Week 9",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-07-27.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-07-27",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-07-27.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 8",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-20"},next:{title:"Week 10",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-08-03"}},r={},d=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function l(e){const n={a:"a",em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July,27,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["During this week, my focus was on leveraging the ",(0,s.jsx)(n.a,{href:"https://github.com/nexB/scancode-toolkit/blob/develop/src/scancode/api.py",children:"ScanCode\nAPI"}),"\nwithin the ScanCode agent to efficiently retrieve licenses and copyrights\ninformation from files. The API has demonstrated faster results compared to\nthe command line interface (CLI)."]}),"\n",(0,s.jsx)(n.li,{children:"I've also made improvements in how the output from Python scripts, invoked by\nthe ScanCode agent, is processed and utilized."}),"\n",(0,s.jsx)(n.li,{children:"Notably, the current process lacks the inclusion of emails and URLs identified\nin a file when invoking ScanCode via CLI. To address this, I have made changes\nto add the missing information to the database for each file."}),"\n",(0,s.jsxs)(n.li,{children:["A compilation of all the changes made this week and in preceding weeks\nregarding scancode agent can be reviewed\n",(0,s.jsx)(n.a,{href:"https://github.com/its-sushant/fossology/commit/649807f54f02453850c7043f53af7cea4c0fb250",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"In the coming weeks, I will continue to try different approaches to improve\nthe ScanCode agent in FOSSology."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>c});var s=t(67294);const o={},i=s.createContext(o);function c(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8e0e4a7c.f69d4f32.js b/assets/js/8e0e4a7c.f69d4f32.js new file mode 100644 index 0000000000..21d48856fa --- /dev/null +++ b/assets/js/8e0e4a7c.f69d4f32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4114],{34289:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var t=n(85893),i=n(11151);const r={title:"Week 1",author:"Aman Dwivedi"},l=void 0,o={id:"2021/ui/updates/aman/2021-06-15",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-06-15.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-06-15",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-06-15.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 10",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-17"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-22"}},a={},c=[{value:"Proposed Folder Structure:",id:"proposed-folder-structure",level:2},{value:"Contributions",id:"contributions",level:2}];function d(e){const s={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Created wireframes of different colour scheme"}),"\n",(0,t.jsx)(s.li,{children:"Had discussions on wireframe"}),"\n",(0,t.jsx)(s.li,{children:"Finalized the wireframe"}),"\n",(0,t.jsx)(s.li,{children:"Decided the libraries to be used"}),"\n",(0,t.jsx)(s.li,{children:"Finalized the architecture of the codebase"}),"\n",(0,t.jsx)(s.li,{children:"Created a pull request to add the folder structure in the main branch"}),"\n",(0,t.jsx)(s.li,{children:"Added storage helper functions for cookies and local storage"}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"proposed-folder-structure",children:"Proposed Folder Structure:"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:"|-- public\n|-- src\n |-- api\n |-- assets\n |-- [+] images\n |-- [+] fonts\n |-- components\n |-- Header\n |-- Footer\n |-- Widgets\n |-- Buttons\n |-- [+] tests\n |-- index.jsx\n |-- constants\n |-- endpoints.js\n |-- externalLinks.js\n |-- routes.js\n |-- pages\n |-- Browse\n |-- index.jsx\n |-- [+] services\n |-- [+] shared\n |-- [+] styles\n |-- App.js\n |-- Routes.js\n |-- index.jsx\n|-- package.json\n"})}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Note"}),": ",(0,t.jsx)(s.code,{children:"[+]"})," indicates folder"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Api"}),": Contains the list of all the API functions."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Assets"}),": Holds all the static assets like images and fonts."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Components"}),": Consists of shared elements that can be used by all the pages such as header and footer. Widgets sub folder contains helper components such as Button, Input Container, Image etc."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Constants"}),": Includes all the application wide constants like API endpoints and the list of all the routes."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Pages"}),": Consists of all the pages to be displayed."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Services"}),": Defines all the API services."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Shared"}),": Contains application wide utility functions like auth helpers, storage helpers, date helpers etc. It also carry 3 types of auth guards, public layout, private layout and admin layout."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Styles"}),": This folder contains mainly three files:","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Theme: It consists of all the variables related to themes such as primary-color, secondary-color, primary-text etc."}),"\n",(0,t.jsx)(s.li,{children:"GlobalStyle.js: It consists of all the css related to theme."}),"\n",(0,t.jsx)(s.li,{children:"global.css: It consists of all the default css such as spacing."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"App.jsx"}),": This file is used for application wide state and style managements. It includes theme provider, global styles and imports of all the external CSS libraries."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Routes.js"}),": maps all the url routes to the JSX components"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"index.jsx"}),": the entry point of the application"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"contributions",children:"Contributions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/Aman-Codes/fossology/wiki/Wireframes",children:"Wireframes"})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/2",children:"feat(structure): add folder structure"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>l});var t=n(67294);const i={},r=t.createContext(i);function l(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8e291ea1.bedc61b9.js b/assets/js/8e291ea1.bedc61b9.js new file mode 100644 index 0000000000..0e4ecb8d11 --- /dev/null +++ b/assets/js/8e291ea1.bedc61b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5818],{79815:(e,a,i)=>{i.r(a),i.d(a,{assets:()=>l,contentTitle:()=>n,default:()=>c,frontMatter:()=>t,metadata:()=>o,toc:()=>p});var s=i(85893),r=i(11151);const t={title:"Week 5",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},n=void 0,o={id:"2022/ui/updates/soham/2022-07-9",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-07-9.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-07-9",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-9",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-07-9.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 5",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-8"},next:{title:"Week 6 and 7",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-01"}},l={},p=[{value:"New endpoint for geting copyright details",id:"new-endpoint-for-geting-copyright-details",level:2},{value:"PR link - feat(api): new endpoint for geting copyright details",id:"pr-link---featapi-new-endpoint-for-geting-copyright-details",level:3},{value:"All jobs only accessible by admin",id:"all-jobs-only-accessible-by-admin",level:2},{value:"PR link - feat(ui): All jobs only accessible by admin",id:"pr-link---featui-all-jobs-only-accessible-by-admin",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const a={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.h2,{id:"new-endpoint-for-geting-copyright-details",children:"New endpoint for geting copyright details"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.em,{children:"(July 21th, 2022)"})}),"\n",(0,s.jsxs)(a.p,{children:["Implementation of a new endpoint which gives the copyright information as a response for the requested upload.",(0,s.jsx)("br",{}),"\nIt also provides the respective file paths for each copyright which is reccuring troughout the output."]}),"\n",(0,s.jsxs)(a.p,{children:["The API response when requested on a upload (used Nirjas repository here): ",(0,s.jsx)("br",{})]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{children:'[\n {\n "copyright": "Copyright (C) 2020 Ayush Bhardwaj (classicayush@gmail.com), Kaushlendra Pratap (kaushlendrapratap.9837@gmail.com)",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/php.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/c.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/matlab.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/text.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/main.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/scala.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/c_sharp.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/perl.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/java.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/python.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/binder.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/ruby.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/rust.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/javascript.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/kotlin.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/cpp.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/html.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/swift.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/shell.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/css.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/go.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/haskell.py",\n "Nirjas-master.zip/Nirjas-master/setup.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/r.py"\n ]\n },\n {\n "copyright": "Copyright (C) 2020 Siemens AG Author: Gaurav Mishra <mishra.gaurav@siemens.com>",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/nirjas/output/single_line.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/output/__init__.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/output/multi_line.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/output/scan_output.py"\n ]\n },\n {\n "copyright": "Copyright (C) 2020 Aman Dwivedi (aman.dwivedi5@gmail.com)",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/scss.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/typescript.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/tests/test_typescript.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/tests/test_dart.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/tests/test_scss.py",\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/dart.py"\n ]\n },\n {\n "copyright": "Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term \\"modification\\".)",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyrighted interfaces, the",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyright\\" line and a pointer to where the full notice is found.",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "Copyright (C) <year> <name of author>",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyright disclaimer\\" for the library, if necessary. Here is a sample; alter the names:",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "copyright interest in the library `Frob\' (a library for tweaking knobs) written by James Random Hacker.",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/LICENSE"\n ]\n },\n {\n "copyright": "Copyright (C) 2021 Hamed Faramarzi Author: Hamed Faramarzi <hamed.faramarzi@gmail.com>",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/nirjas/output/output.py"\n ]\n },\n {\n "copyright": "Copyright (C) Sushant Kumar (sushantmishra02102002@gmail.com) SPDX-License-Identifier: LGPL-2.1 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/sql.py"\n ]\n },\n {\n "copyright": "Copyright (C) 2021 Aswin Murali (aswinmurali.co@gmail.com)",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/Dockerfile"\n ]\n },\n {\n "copyright": "Copyright (C) 2021 Gaurav Mishra <mishra.gaurav@siemens.com>",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/Dockerfile"\n ]\n },\n {\n "copyright": "Copyright (C) 2020 Soham Banerjee (sohambanerjee4abc@hotmail.com),",\n "filePath": [\n "Nirjas-master.zip/Nirjas-master/nirjas/languages/julia.py"\n ]\n }\n]\n\n'})}),"\n",(0,s.jsxs)(a.p,{children:["The requested URL for getting the response is: ",(0,s.jsx)(a.code,{children:"localhost/repo/api/v1/uploads/<UPLOAD_ID>/copyrights"})]}),"\n",(0,s.jsxs)(a.h3,{id:"pr-link---featapi-new-endpoint-for-geting-copyright-details",children:["PR link - ",(0,s.jsx)(a.a,{href:"https://github.com/fossology/fossology/pull/2273",children:"feat(api): new endpoint for geting copyright details"})]}),"\n",(0,s.jsx)(a.h2,{id:"all-jobs-only-accessible-by-admin",children:"All jobs only accessible by admin"}),"\n",(0,s.jsxs)(a.p,{children:["Made changes in the UI so that only admins can access the ",(0,s.jsx)(a.code,{children:"All Recent Jobs"})," page. For other users the route will not be there in the navigation bar."]}),"\n",(0,s.jsxs)(a.p,{children:["Admin veiw:",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(a.img,{alt:"adimin_veiw",src:i(20501).Z+"",width:"265",height:"204"})]}),"\n",(0,s.jsxs)(a.p,{children:["Non-Admin View:",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(a.img,{alt:"non_adimin_veiw",src:i(97573).Z+"",width:"199",height:"143"})]}),"\n",(0,s.jsxs)(a.h3,{id:"pr-link---featui-all-jobs-only-accessible-by-admin",children:["PR link - ",(0,s.jsx)(a.a,{href:"https://github.com/fossology/FOSSologyUI/pull/245",children:"feat(ui): All jobs only accessible by admin"})]}),"\n",(0,s.jsx)(a.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"Developing respective UI for the Copyright endpoint."}),"\n",(0,s.jsx)(a.li,{children:"Picking up remaining API endpoints from the License Browser module."}),"\n"]})]})}function c(e={}){const{wrapper:a}={...(0,r.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},20501:(e,a,i)=>{i.d(a,{Z:()=>s});const s=i.p+"assets/images/admin_view-8b6f8603bd24b36336c4c0b61fa4632a.jpeg"},97573:(e,a,i)=>{i.d(a,{Z:()=>s});const s=i.p+"assets/images/non_admin_view-f06a2af3aeb13c91b1db9a4be1dc9721.jpeg"},11151:(e,a,i)=>{i.d(a,{Z:()=>o,a:()=>n});var s=i(67294);const r={},t=s.createContext(r);function n(e){const a=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),s.createElement(t.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ece504f.4dc46cc3.js b/assets/js/8ece504f.4dc46cc3.js new file mode 100644 index 0000000000..4275d1cb77 --- /dev/null +++ b/assets/js/8ece504f.4dc46cc3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9336],{55824:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var s=i(85893),o=i(11151);const t={title:"Week 19",author:"Abdelrahman Jamal"},r=void 0,c={id:"2023/copyrights/updates/2023-10-04",title:"Week 19",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-10-04.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-10-04",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-10-04.md",tags:[],version:"current",frontMatter:{title:"Week 19",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 18",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-27"},next:{title:"Week 20",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-11"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. <strong>Integration of <code>copyrightfpd</code> into Fossology</strong>:",id:"1-integration-of-copyrightfpd-into-fossology",level:3},{value:"2. <strong>Enhancements in Decluttering using NER</strong>:",id:"2-enhancements-in-decluttering-using-ner",level:3},{value:"Conclusion and Next Steps:",id:"conclusion-and-next-steps",level:2},{value:"1. Renaming Task Rebrand",id:"1-renaming-task-rebrand",level:3},{value:"2. Documentation",id:"2-documentation",level:3},{value:"3. Code Organization",id:"3-code-organization",level:3}];function h(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(October,04,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Anupam"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.h3,{id:"1-integration-of-copyrightfpd-into-fossology",children:["1. ",(0,s.jsxs)(n.strong,{children:["Integration of ",(0,s.jsx)(n.code,{children:"copyrightfpd"})," into Fossology"]}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Resolved speed issues from the previous week."}),"\n",(0,s.jsxs)(n.li,{children:["Evaluated the model's performance on open-source projects from GitHub:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/ansible/ansible",children:"Ansible"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Initial count: 510 copyrights."}),"\n",(0,s.jsx)(n.li,{children:"After false positive removal: 435."}),"\n",(0,s.jsxs)(n.li,{children:["Notable overlooked false positives:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"\xa9 b=e\xf1yei',"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(c) for c in cmd))"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(c) for c in cmd), verbosity=1)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"\xa9 error',"})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/torvalds/linux",children:"Linux"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Initial count: 23,419 copyrights."}),"\n",(0,s.jsx)(n.li,{children:"After false positive removal: 22,780."}),"\n",(0,s.jsxs)(n.li,{children:["Sample of overlooked errors:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"copyright/by:"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(c) | Contending |"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(c) container_of(c, struct wf_lm75_sensor, sens)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(C) clock] */ clock-frequency = <12288000>; pwms = <&tpu 0 81 0>;"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(C) clock]"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"(c) (c->hva_dev->dev)"})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.h3,{id:"2-enhancements-in-decluttering-using-ner",children:["2. ",(0,s.jsx)(n.strong,{children:"Enhancements in Decluttering using NER"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Expanded labeled dataset for better NER performance."}),"\n",(0,s.jsxs)(n.li,{children:["Integrated decluttering functionality into ",(0,s.jsx)(n.code,{children:"copyrightfpd"})," and Fossology. Encountered minor integration issues which are currently under investigation."]}),"\n",(0,s.jsxs)(n.li,{children:["Showcase of decluttering performance (highlighted parts are recognized copyright material):","\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"Copyright (c) InQuant GmbH Stefan Eletzhofer <stefan.eletzhofer@inquant.de>"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Copyright (c) 2001 Bill Bumgarner <bbum@friday.com>"})," License: MIT, see below."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Copyright (C) 2001 Python Software Foundation, www.python.org Taken from Python2.2"}),", License: PSF - see below."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Copyright (C) 2001 Python Software Foundation"})," , ",(0,s.jsx)(n.a,{href:"http://www.python.org",children:"www.python.org"})," ",(0,s.jsx)(n.code,{children:"Taken from Python2.2"}),", License: PSF - see below."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:'copyright, i.e., "'})," ",(0,s.jsx)(n.code,{children:"Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation"}),' ; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.']}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-and-next-steps",children:"Conclusion and Next Steps:"}),"\n",(0,s.jsx)(n.h3,{id:"1-renaming-task-rebrand",children:"1. Renaming Task Rebrand"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"copyrightfpd"})," to be more reflective of its Fossology integration."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"2-documentation",children:"2. Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Focus on updating and improving GSoC documentation."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"3-code-organization",children:"3. Code Organization"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Document and structure the scattered code across Python notebooks for future readability and exploration."}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>r});var s=i(67294);const o={},t=s.createContext(o);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/906c0998.384bd530.js b/assets/js/906c0998.384bd530.js new file mode 100644 index 0000000000..f91920a62e --- /dev/null +++ b/assets/js/906c0998.384bd530.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1856],{12226:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var i=s(85893),t=s(11151);const o={title:"Week 3",author:"Rajul Jha",tags:["gsoc24","CI"]},r="Week 3",c={id:"2024/ci-scanner/updates/2024-06-20",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-06-20.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-06-20",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-06-20.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 3",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-13"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-06-27"}},l={},d=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Work Done",id:"work-done",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function a(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-3",children:"Week 3"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 14, 2024 - June 20, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 19, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Worked on adding nomos json output. But not able to access the theMatches object's licenseAndMatchPositions object. Stuck on this for nomos task."}),"\n",(0,i.jsx)(n.li,{children:"Bumped up spdx_tools library to latest version. Tested with both platforms (GH Actions and Gitlab)."}),"\n",(0,i.jsxs)(n.li,{children:["Discussed an issue in the github workflow, not supporting multiple architectures.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The GH Actions Runner does not support multi-architecture images."}),"\n",(0,i.jsx)(n.li,{children:"We discussed potential solutions for the same including trying to build the image in the GH Action itself or utilizing an emulator like qemu."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"work-done",children:"Work Done"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Upgraded the spdx_tools library ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2762",children:"(#PR2762)"})," and did performance analysis for both versions."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["With Version ",(0,i.jsx)(n.code,{children:"0.0.0a2"}),":\n",(0,i.jsx)(n.img,{alt:"Screenshot",src:s(904).Z+"",width:"2238",height:"1458"})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["With Version ",(0,i.jsx)(n.code,{children:"0.8.2"}),":\n",(0,i.jsx)(n.img,{alt:"Screenshot",src:s(79671).Z+"",width:"1838",height:"1354"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Worked on providing custom ",(0,i.jsx)(n.code,{children:"keyword.conf"})," file during CI pipeline. It works as follows:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["User creates a custom ",(0,i.jsx)(n.code,{children:"keyword.conf"})," file following ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/copyright/agent/keyword.conf",children:"this"})," pattern."]}),"\n",(0,i.jsxs)(n.li,{children:["They set an environment variable called ",(0,i.jsx)(n.code,{children:"KEYWORD_CONF_FILE_PATH"})," in CI providers settings and set its value to the path of the ",(0,i.jsx)(n.code,{children:"keyword.conf"})," file."]}),"\n",(0,i.jsxs)(n.li,{children:["Then, when the pipeline is triggered, say on ",(0,i.jsx)(n.code,{children:"push"})," to ",(0,i.jsx)(n.code,{children:"main"}),", then the keyword scanner reads the custom file and scans for the keywords specified by the user."]}),"\n",(0,i.jsx)(n.li,{children:"Keep in mind that the current keyword file is overwritten by the script, as discussed with the mentors."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Test the keyword functionality with GH Actions and Gitlab CI and send out a PR for the same."}),"\n",(0,i.jsx)(n.li,{children:"Work on providing multi architecture support for GH Actions."}),"\n",(0,i.jsx)(n.li,{children:"Study about how to implement differential scans."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},904:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/Spdx_tools_Version0.8.0a2-953cd60d1ca85a872988d8658c25750a.png"},79671:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/Spdx_tools_Version_0.8.2-e1510676ffe2014008c97f47d35eac1b.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>r});var i=s(67294);const t={},o=i.createContext(t);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9078adee.609104ef.js b/assets/js/9078adee.609104ef.js new file mode 100644 index 0000000000..f66b063b51 --- /dev/null +++ b/assets/js/9078adee.609104ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1853],{26423:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=s(85893),t=s(11151);const o={title:"Week 7",author:"Aman Dwivedi"},i=void 0,l={id:"2021/ui/updates/aman/2021-07-27",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-07-27.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-07-27",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-07-27.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 6",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-20"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-03"}},a={},d=[{value:"Screenshot of added pages",id:"screenshot-of-added-pages",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Added reusable function for error handling"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Fixed Eslint warnings in copyright script"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Updated logout function to accept error message as a parameter"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Updated home page to display the error message from URL query parameter"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Replaced react-helmet with react-helmet-async to fix console warning"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Added reuse_report and reuse_copyright boolean option"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Created dropdown to select reuse group from the list of accessible groups\nDisplayed option to select reuse folder within the selected group (Updates whenever reuse group changes)"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Gave an option to select an upload within the previously selected folder (Updates whenever reuse group or reuse folder changes)"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Fixed prop type check error for the reuse_upload field. A number was expected but ",(0,r.jsx)(n.code,{children:"event.target.value"})," was returning a string"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"screenshot-of-added-pages",children:"Screenshot of added pages"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"error passing",src:s(17418).Z+"",width:"1901",height:"534"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"reuse options",src:s(43323).Z+"",width:"1303",height:"901"})}),"\n",(0,r.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/122",children:"refactor(handleError): add reusable function for error handling"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/124",children:"feat(alert): alert message on homepage for logout error"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/128",children:"feat(reuse): add all reuse options and update corresponding api"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/129",children:"fix(react-helmet): use react-helmet-async to fix console error"})}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},43323:(e,n,s)=>{s.d(n,{Z:()=>r});const r=s.p+"assets/images/reuse-e813245ee5853a0ee87d36c4e74c94cd.png"},17418:(e,n,s)=>{s.d(n,{Z:()=>r});const r=s.p+"assets/images/errorPassing-7b7b059e124d63326cab3e4e14b0f4f2.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>i});var r=s(67294);const t={},o=r.createContext(t);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9088ab58.773e0d59.js b/assets/js/9088ab58.773e0d59.js new file mode 100644 index 0000000000..7e46894e7b --- /dev/null +++ b/assets/js/9088ab58.773e0d59.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3077],{62082:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>o});var t=i(85893),s=i(11151);const a={title:"Week 14",author:"Abdelrahman Jamal"},l=void 0,r={id:"2023/copyrights/updates/2023-08-30",title:"Week 14",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-08-30.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-08-30",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-08-30.md",tags:[],version:"current",frontMatter:{title:"Week 14",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 13",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-23"},next:{title:"Week 15",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-06"}},d={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. Revisiting SpaCy NER:",id:"1-revisiting-spacy-ner",level:3},{value:"2. Insights on SpaCy's NER Model:",id:"2-insights-on-spacys-ner-model",level:3},{value:"3. SpaCy vs. Tiny BERT:",id:"3-spacy-vs-tiny-bert",level:3},{value:"4. Refining Entity Recognition:",id:"4-refining-entity-recognition",level:3},{value:"5. Labeling and Fine-tuning:",id:"5-labeling-and-fine-tuning",level:3},{value:"6. Process Optimization:",id:"6-process-optimization",level:3},{value:"Conclusion and Future Plans:",id:"conclusion-and-future-plans",level:2},{value:"1. Enhancing the NER Labeling and Training:",id:"1-enhancing-the-ner-labeling-and-training",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(August,30,2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,t.jsx)(n.h3,{id:"1-revisiting-spacy-ner",children:"1. Revisiting SpaCy NER:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Opted to retest the SpaCy NER for several reasons:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Earlier attempts lacked proper visualization, making it hard to assess performance on my dataset."}),"\n",(0,t.jsxs)(n.li,{children:["Training a SpaCy model is simplified with well-documented commands:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Dataset Labeling"}),": This is a time-intensive step. I utilized visual annotation tools like ",(0,t.jsx)(n.code,{children:"doccano"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Data Transformation"}),": Converting datasets into a SpaCy-compatible format is straightforward."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Encountered difficulties while coding for the tiny BERT model training."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-insights-on-spacys-ner-model",children:"2. Insights on SpaCy's NER Model:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["SpaCy's NER model is trained on the ",(0,t.jsx)(n.a,{href:"https://catalog.ldc.upenn.edu/LDC2013T19",children:"OntoNotes 5"})," dataset. This dataset, released in late 2013, features 18 entities in contrast to the four in the conll2003 dataset."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"3-spacy-vs-tiny-bert",children:"3. SpaCy vs. Tiny BERT:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["For a fair comparison, I trained the SpaCy model from scratch on the conll2003 dataset:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Tiny BERT achieved an F1 score of 0.8177, while SpaCy reached 0.8182 \u2014 nearly identical performance."}),"\n",(0,t.jsxs)(n.li,{children:["NER entity visualization in SpaCy is straightforward via the ",(0,t.jsx)(n.code,{children:"displacy"})," module."]}),"\n",(0,t.jsx)(n.li,{children:"Chose SpaCy due to its ease of use, training, visualization, and a smaller model size compared to tiny BERT."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"4-refining-entity-recognition",children:"4. Refining Entity Recognition:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Realized that distinguishing between PER and ORG entities was non-essential. My primary goal is identifying copyright holder entities. Decided to merge them for future training."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"5-labeling-and-fine-tuning",children:"5. Labeling and Fine-tuning:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Labeled 750 examples from my dataset using ",(0,t.jsx)(n.code,{children:"doccano"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Fine-tuned the SpaCy model trained on conll2003 with this data."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"6-process-optimization",children:"6. Process Optimization:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Continually working to enhance the process. Will present NER labeled sentences in the coming update."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-future-plans",children:"Conclusion and Future Plans:"}),"\n",(0,t.jsx)(n.h3,{id:"1-enhancing-the-ner-labeling-and-training",children:"1. Enhancing the NER Labeling and Training:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Merge the PER and ORG entities from the conll2003 dataset during training and ignore the other entities as they're not relevant to my goals."}),"\n",(0,t.jsx)(n.li,{children:"Increase the labeled samples from the copyrights dataset to generate a more extensive dataset for training and refinement."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>l});var t=i(67294);const s={},a=t.createContext(s);function l(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9257ef45.20d20df7.js b/assets/js/9257ef45.20d20df7.js new file mode 100644 index 0000000000..e1c2e3978f --- /dev/null +++ b/assets/js/9257ef45.20d20df7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1836],{83590:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>a});var i=s(85893),l=s(11151);const t={title:"Week 6",author:"Aman Dwivedi"},r=void 0,o={id:"2021/ui/updates/aman/2021-07-20",title:"Week 6",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-07-20.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-07-20",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 5",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-13"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-27"}},d={},a=[{value:"Screenshot of added pages",id:"screenshot-of-added-pages",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Created dynamic reusable text icon image component"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Ensured text icon component to use color based on the current active theme"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Updated login mechanism to fetch group list on login"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Saved the group list and current group in local storage for quick access"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Displayed group list on the header as a dropdown"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Passed the current group name as header to every subsequent API request"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Delete user data from local storage and cookie after user logs out"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added reusable error handling function to reduce duplicate code"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Fixed Eslint warnings in copyright script"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Updated absolute import to relative imports in all layout components"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Organized links to keep external links in externalLinks.js file and internal links in routes object"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Fixed the broken upload list on the schedule jobs page"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Sanitized URL query parameters using ",(0,i.jsx)(n.code,{children:"query-string"})," library"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Fixed typo on the browse page"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Refactored the complete codebase to fix all the console warnings"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"screenshot-of-added-pages",children:"Screenshot of added pages"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Group name light",src:s(49556).Z+"",width:"1920",height:"945"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Group name dark",src:s(46742).Z+"",width:"1920",height:"937"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Schedule Analysis page",src:s(8667).Z+"",width:"1892",height:"922"})}),"\n",(0,i.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/104",children:"feat(user-group): display user group in dropdown"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/117",children:"fix(login): delete user data after logout"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/122",children:"refactor(handleError): add reusable function for error handling"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/116",children:"fix(imports): Update absolute import to relative in layout component"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/113",children:"fix(links): keep external links in externalLinks.js file"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/112",children:"fix(schedule-jobs): fix the upload list on schedule jobs page"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/107",children:"fix(query-params): sanitize url query parameters"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/95",children:"fix(typo): fix typo on browse page"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/103",children:"Fix(warnings): fix console warnings"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8667:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/ScheduleAnalysis-686743349e001c1e4bdc49df0fbff3d0.png"},46742:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/groupNameDark-b5eeb637ee1934fbfa957a867ef79d22.png"},49556:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/groupNameLight-2d3d99b34aa92b4ecd59254372db6357.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>r});var i=s(67294);const l={},t=i.createContext(l);function r(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9308303c.6464219f.js b/assets/js/9308303c.6464219f.js new file mode 100644 index 0000000000..64b2597467 --- /dev/null +++ b/assets/js/9308303c.6464219f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3711],{7661:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>t,default:()=>o,frontMatter:()=>h,metadata:()=>l,toc:()=>c});var i=s(85893),r=s(11151);const h={sidebar_position:3,title:"Week 3"},t=void 0,l={id:"2024/minutes/2024-06-13",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-06-13.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-06-13",permalink:"/gsoc/docs/2024/minutes/2024-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-06-13.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Week 3"},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/minutes/2024-06-06"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/minutes/2024-06-20"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,r.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Welcome to meeting minutes page for GSoC 2024 at FOSSology 13-06-2024."}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": General updates regarding project."]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Tested different model using Semantic Search which tries to find similar match."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Test semantic transformer, and work on basic license identifier."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Based on my last discussion with mentors, rewriting the scheduler code from C language to go. Raised a PR for the same."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Trying to implement queue. also working on CLI code"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Worked on generation of SPDX 3.0 JSON format. Looking in to validation of generated reports. will start work on RDF report soon."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"As per my discussion with mentors im using the JSON format to convert the license expression and store it to database(successful)."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Worked on creating UI for the same. currently looking into adding comments acknowledgements and text for license expression."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Finished implementation of OAUTH via API. Currently looking into API upgrade from V1 to V2."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Working on adding the line number support for repo scan. will be working on nomos and ojo part."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"I have added the unit test cases for API's like License, Group and upload. I have opened the pull request for the same."}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},11151:(n,e,s)=>{s.d(e,{Z:()=>l,a:()=>t});var i=s(67294);const r={},h=i.createContext(r);function t(n){const e=i.useContext(h);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:t(n.components),i.createElement(h.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/931055eb.ad8df9b6.js b/assets/js/931055eb.ad8df9b6.js new file mode 100644 index 0000000000..7cff790e29 --- /dev/null +++ b/assets/js/931055eb.ad8df9b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4406],{21853:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var s=n(85893),i=n(11151);const a={title:"Week 4",author:"Shreya Gautam"},o="WEEK 4",l={id:"2024/pipeline/updates/2024-06-20",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-06-20.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-06-20",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-06-20.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Shreya Gautam"},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-13"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-27"}},r={},p=[{value:"Updates",id:"updates",level:2},{value:"Subsequent Steps",id:"subsequent-steps",level:2}];function u(e){const t={em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"week-4",children:"WEEK 4"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(June 20, 2024)"})}),"\n",(0,s.jsx)(t.h2,{id:"updates",children:"Updates"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I could not make to the meeting due to my ongoing semester exams."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"subsequent-steps",children:"Subsequent Steps"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Post-exams, I plan to experiment with creating a library for the NER-POS tagging task alongside developing the data pipeline, and evaluating available models for the specific task."}),"\n"]})]})}function c(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var s=n(67294);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935a8806.adc518b8.js b/assets/js/935a8806.adc518b8.js new file mode 100644 index 0000000000..0c038a85bd --- /dev/null +++ b/assets/js/935a8806.adc518b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1670],{31266:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>l,toc:()=>h});var n=s(85893),i=s(11151);const r={title:"Week 2",author:"Shruti Agarwal"},o=void 0,l={id:"2021/ui/updates/shruti/2021-06-22",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-06-22.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-06-22",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-15"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-06-29"}},d={},h=[{value:"Screenshots",id:"screenshots",level:2},{value:"Footer",id:"footer",level:3},{value:"Navbar",id:"navbar",level:3},{value:"Home",id:"home",level:3},{value:"Contributions",id:"contributions",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Added the Global style theme provider for the codebase to easily switch between the red theme and grey theme with Styled components."}),"\n",(0,n.jsx)(t.li,{children:"Updated the copyright and license Header as suggested my mentors."}),"\n",(0,n.jsx)(t.li,{children:"Added the footer with some global styling."}),"\n",(0,n.jsx)(t.li,{children:"Added the navbar, created the required pages and added the routes for the pages."}),"\n",(0,n.jsxs)(t.li,{children:["Updated the header for both the themes (lightTheme, darkTheme).","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Created the pages for:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Search"}),"\n",(0,n.jsxs)(t.li,{children:["Jobs","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"My Recent Jobs"}),"\n",(0,n.jsx)(t.li,{children:"All Recent Jobs"}),"\n",(0,n.jsx)(t.li,{children:"Schedule Agents"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Organize","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Folders"}),"\n",(0,n.jsx)(t.li,{children:"Licenses"}),"\n",(0,n.jsx)(t.li,{children:"Uploads"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Uploads","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"File"}),"\n",(0,n.jsx)(t.li,{children:"Server"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Added the constant routes for all the pages in ",(0,n.jsx)(t.code,{children:"src/Routes.js"})]}),"\n",(0,n.jsxs)(t.li,{children:["Added ",(0,n.jsx)(t.code,{children:"react-bootstrap-icons"})," for the icons in Navbar and for the other components."]}),"\n",(0,n.jsx)(t.li,{children:"Updated the favicon."}),"\n",(0,n.jsx)(t.li,{children:"Updated the README of the codebase."}),"\n",(0,n.jsx)(t.li,{children:"Added the Home page with features cards to it."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,n.jsx)(t.h3,{id:"footer",children:"Footer"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"footer",src:s(49950).Z+"",width:"1046",height:"66"})}),"\n",(0,n.jsx)(t.h3,{id:"navbar",children:"Navbar"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"navbar",src:s(93374).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(t.h3,{id:"home",children:"Home"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"home",src:s(39058).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/5",children:"feat(styles): created the theme provider"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/7",children:"fix(copyright): updated license and copyright header"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/10",children:"feat(ui): added the footer"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/11",children:"feat(favicon): updated the favicon"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/12",children:"feat(ui): added navbar and the routes constant"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/13",children:"feat(README): updated the README"})}),"\n"]})]})}function a(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},39058:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/home-63e0bdbb0e546c592511e061cae13b46.png"},49950:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/footer-38b59fcfc085ebc039f2a2a344e06b25.png"},93374:(e,t,s)=>{s.d(t,{Z:()=>n});const n=s.p+"assets/images/header-e456cce1acfc8bd706ec82e61909e4c6.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>l,a:()=>o});var n=s(67294);const i={},r=n.createContext(i);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/959dc270.f5caba8b.js b/assets/js/959dc270.f5caba8b.js new file mode 100644 index 0000000000..88614b104f --- /dev/null +++ b/assets/js/959dc270.f5caba8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4211],{94778:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var t=s(85893),i=s(11151);const l={sidebar_position:3,title:"Building FOSSology"},o=void 0,r={id:"2021/buildsystem/build",title:"Building FOSSology",description:"\x3c!--",source:"@site/docs/2021/buildsystem/build.md",sourceDirName:"2021/buildsystem",slug:"/2021/buildsystem/build",permalink:"/gsoc/docs/2021/buildsystem/build",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/build.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Building FOSSology"},sidebar:"2021",previous:{title:"Week 10",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-08-13"},next:{title:"First Evaluation",permalink:"/gsoc/docs/2021/buildsystem/first-evaluation"}},a={},c=[];function d(e){const n={a:"a",code:"code",em:"em",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Install CMake if you haven't already (minimum 3.10 required)"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:" sudo apt install CMake # for Debian based systems\n"})}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Since the new build system is still in review. You must fork\nFOSSology and pull the\n",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2075",children:"#2075"})," pull\nrequest branch. Once you are in FOSSology root, run these commands."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"git fetch https://github.com/avinal/fossology avinal/feat/buildsystem:buildsystem\ngit checkout buildsystem\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The first step towards building is to create a temporary directory\nfor storing intermediate files and build artifacts. By convention we\nuse a directory named ",(0,t.jsx)(n.code,{children:"build"}),", but you can use any\nname. (",(0,t.jsx)(n.strong,{children:"NOTE: For testing do not use other names"}),")"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mkdir build\ncd build\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"In the next steps, we will configure the CMake project and generate\nthe required configurations. You can use several flags to control\nthe build. Given below are the flags available for this project."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"CMake Flags"}),(0,t.jsx)(n.th,{children:"Description"}),(0,t.jsx)(n.th,{children:"Default"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"-DCMAKE_INSTALL_PREFIX=<path>"})}),(0,t.jsx)(n.td,{children:"Sets the install prefix."}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"/usr/local"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:'-DAGENTS="agent1;agent2..."'})}),(0,t.jsx)(n.td,{children:"Only configure these agents."}),(0,t.jsx)(n.td,{children:"ALL AGENTS"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"-DOFFLINE=<ON/OFF>"})}),(0,t.jsx)(n.td,{children:"Controls vendor generation, ON=NO"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"OFF"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"-DCMAKE_BUILD_TYPE=<type>"})}),(0,t.jsxs)(n.td,{children:["- ",(0,t.jsx)(n.code,{children:"Debug"}),", ",(0,t.jsx)(n.code,{children:"Release"}),", ",(0,t.jsx)(n.code,{children:"RelWithDebInfo"}),",",(0,t.jsx)(n.code,{children:"MinSizeRel"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Debug"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"-DTESTING=<ON/OFF>"})}),(0,t.jsx)(n.td,{children:"Controls testing config generation"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"OFF"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"-DMONOPACK=<ON/OFF>"})}),(0,t.jsx)(n.td,{children:"Package adj2nest and ununpack seperately"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"OFF"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"-GNinja"})}),(0,t.jsx)(n.td,{children:"Use Ninja instead of Unix Makefiles"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.em,{children:"Unix MakeFiles"})})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["There are lots of inbuilt CMake command-line options you can see them in the official ",(0,t.jsx)(n.a,{href:"https://cmake.org/cmake/help/v3.10/manual/cmake.1.html",children:"documentation"}),". Once you have chosen your flags we can now configure the project using the following commands."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# From build folder\ncd <name-of-build-directory>\ncmake <flags> ..\n"})}),"\n",(0,t.jsxs)(n.p,{children:["4 . The next step is to build the project. You can use parallel jobs to build faster. For more options you can type ",(0,t.jsx)(n.code,{children:"cmake --help"})," or ",(0,t.jsx)(n.code,{children:"make --help"})," or ",(0,t.jsx)(n.code,{children:"ninja --help"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# Common build command for all generators,\n# Default number of parallel builds depends on generator used\ncmake --build . --parallel <no-of-processes>\n\n# For Unix Makefiles, no parallel build by default\nmake -j <no-of-processes>\n\n# For Ninja, 8+ parallel build by default (depends on system)\nninja -j <no-of-processes>\n"})}),"\n",(0,t.jsxs)(n.ol,{start:"5",children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Installing is also as easy as building. You can choose to install\nonly certain components even if you have built the whole project. If\nyou directly invoke the install command without building the\nproject, it will automatically build the project first."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# For Unix Makefiles\nmake install\n\n# For Ninja\nninja install\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["While testing has some issues, but most of the testing is working\nfine. For now, you must build and run any test from the FOSSology\nroot directory only. You can choose to configure a single agent if\nyou want to test one agent only. See ",(0,t.jsx)(n.code,{children:"ctest --help"})," for\ncontrolling test runs."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# Common testing command\nctest --parallel <no-of-processes>\n\n# For Unix Makefiles\nmake test\n\n# For Ninja\nninja test\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["You can package FOSSology, the packaging currently lacks copyright\nand conf files. But for testing purposes, you can use the following\ncommands. Similar to installing, if you run the package command\nwithout building the project, it will automatically build the\nproject first. See ",(0,t.jsx)(n.code,{children:"cpack --help"})," for more packaging\noptions."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# Common testing command\ncpack\n\n# For Unix Makefiles\nmake package\n\n# For Ninja\nninja package\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Some targets are not built by default, you can manually trigger their build by running ",(0,t.jsx)(n.code,{children:"make ,target-name>"})," or ",(0,t.jsx)(n.code,{children:"ninja <target-name>"}),". You can list all the targets by running ",(0,t.jsx)(n.code,{children:"make help"})," or ",(0,t.jsx)(n.code,{children:"ninja -t targets"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["You can also use ",(0,t.jsx)(n.a,{href:"https://code.visualstudio.com/docs/cpp/cmake-linux",children:"CMake EXtension for VS Code"})," for seamlessly populating and building targets. Can also use gitpod.io for quick setup"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>o});var t=s(67294);const i={},l=t.createContext(i);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/959de7fa.9ed98597.js b/assets/js/959de7fa.9ed98597.js new file mode 100644 index 0000000000..69ea3b63b2 --- /dev/null +++ b/assets/js/959de7fa.9ed98597.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9811],{64777:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>o,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var i=s(85893),h=s(11151);const t={sidebar_position:1,title:"Week 1"},r=void 0,l={id:"2024/minutes/2024-05-30",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-05-30.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-05-30",permalink:"/gsoc/docs/2024/minutes/2024-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-05-30.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Week 1"},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-25"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/minutes/2024-06-06"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,h.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Welcome to meeting minutes page for GSoC 2024 at FOSSology 30-05-2024."}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"mailto:sjha200000@gmail.com",children:"Sahil Jha"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": General updates regarding project. The contributors shall update the GSoC Documentation tool before joining the thursday call."]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Explains about the GSoC Documentation tool. Different rules to contribute the code and documentation."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Basic code to parse file text from fossology and prompt it to different LLM's. LLM is giving license names and also gives multiple licenses, empty in case of no license found."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Checking which LLM is best."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Fossology installation done. created a pull request to enhance cross-platform compatibility and line encoding issues."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Discussed with mentor to solve other issue with mimetype agent."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Exploring and working on SPDX 3.0 JSON format will be opening the pull request soon."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"I was looking into ways to store the license expressions. Found Abstract syntax as one way. i have shared the document to mentors to take a call."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"No major updates i was looking into ways to implement OAUTH via API."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"In call with mentors we have discussed on general milestone for CI/CD project. Working on line number extraction and differencial scans."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"I Dont have many updates i have gone through the idea regarding Monk based text scanning. need to discuss further on how to start."}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,h.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},11151:(n,e,s)=>{s.d(e,{Z:()=>l,a:()=>r});var i=s(67294);const h={},t=i.createContext(h);function r(n){const e=i.useContext(t);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(h):n.components||h:r(n.components),i.createElement(t.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/961aaf41.e43152de.js b/assets/js/961aaf41.e43152de.js new file mode 100644 index 0000000000..e309f09de8 --- /dev/null +++ b/assets/js/961aaf41.e43152de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9547],{35416:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>r,toc:()=>a});var s=i(85893),t=i(11151);const c={title:"Week 7",author:"Abdelrahman Jamal"},o="Meeting 7",r={id:"2024/license-detection/updates/2024-07-11",title:"Week 7",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-07-11.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-07-11",permalink:"/gsoc/docs/2024/license-detection/updates/2024-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-07-11.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Week 6",permalink:"/gsoc/docs/2024/license-detection/updates/2024-07-04"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/spdx30/"}},l={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Improved Semantic Search Algorithm",id:"improved-semantic-search-algorithm",level:3},{value:"License Matching Performance",id:"license-matching-performance",level:3},{value:"Key Findings",id:"key-findings",level:3},{value:"Conclusions and Next Steps",id:"conclusions-and-next-steps",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"meeting-7",children:"Meeting 7"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July 4,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsx)(n.h3,{id:"improved-semantic-search-algorithm",children:"Improved Semantic Search Algorithm"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Presentation of Improved Algorithm"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Approach: Implemented chunking by dividing code comments and paragraphs into multiline strings, starting new chunks at empty lines."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Challenges: Original method of extracting comments resulted in long, merged lines, necessitating a rework to handle multiline comments effectively."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Chunking Example"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"/*\nThis is a multiline comment\nthat should be considered as one\nsingle chunk for better accuracy.\n\nThis is a separate chunk.\n*/\n\n// This is a single line comment\n\n// This is still a single line comment\n// This is also still a single line comment and not a chunk with the previous comment \n"})}),"\n",(0,s.jsx)(n.h3,{id:"license-matching-performance",children:"License Matching Performance"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Initial Results"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Accuracy: The chunking approach significantly improved license matching accuracy but struggled with extremely similar licenses (e.g., 0BSD and ISC)."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Problem: Minor differences between very similar licenses led to occasional misidentifications."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"License Text Examples"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'0BSD License Text:\nCopyright (C) YEAR by AUTHOR EMAIL\n\nPermission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\nISC License Text:\nCopyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")\nCopyright (c) 1995-2003 by Internet Software Consortium\n\nPermission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Enhancements"}),"\n"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Chunk Merging: Attempted merging potential chunks to improve license identification by providing more comprehensive text for comparison."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Combined Line and Chunk Matching: Implemented both line and chunk matching to enhance accuracy, though it increased processing time due to the greater number of combinations."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Results"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Metrics:\nPredicted License Accuracy: 93.33%\nPredicted Licenses Covered: 84.0%"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Notes: Approximately 5% of the remaining 7.6% were files referring to a different license file, not containing the license text directly."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Matching Output Example:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[(100.0,\n ' THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.',\n 'BSD Zero Clause License',\n '0BSD',\n 'THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.',\n [('BSD Zero Clause License', 100.0),\n ('BSD Zero Clause License', 100.0),\n ('ISC License', 97.0),\n ('ISC License', 97.0),\n ('Mackerras 3-Clause License', 93.0)]),\n (100.0,\n ' Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.',\n 'curl License',\n 'curl',\n 'Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.',\n [('curl License', 100.0),\n ('curl License', 100.0),\n ('pkgconf License', 99.0),\n ('ISC License', 99.0),\n ('ISC License', 99.0)]),\n (99.0,\n ' Permission to use, copy, modify, and distribute this software for any',\n 'OAR License',\n 'OAR',\n 'Permission to use, copy, modify, and distribute this software for any',\n [('Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant',\n 99.0),\n ('David M. Gay dtoa License', 99.0),\n ('OAR License', 99.0),\n ('pkgconf License', 97.0),\n ('SGI OpenGL License', 96.0)]),\n (99.0,\n ' copyright notice and this permission notice appear in all copies.',\n 'pkgconf License',\n 'pkgconf',\n 'copyright notice and this permission notice appear in all copies.',\n [('pkgconf License', 99.0),\n ('Historical Permission Notice and Disclaimer - documentation variant',\n 99.0),\n ('CMU Mach - no notices-in-documentation variant', 96.0),\n ('ISC Veillard variant', 87.0),\n ('Historical Permission Notice and Disclaimer - Pbmplus variant', 86.0)]),\n.... (many more)\n\n"})}),"\n",(0,s.jsx)(n.h3,{id:"key-findings",children:"Key Findings"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Enhanced Accuracy: The combination of chunking and line matching improved overall accuracy and coverage."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Increased Processing Time: The dual approach led to longer search times due to the increased number of combinations."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusions-and-next-steps",children:"Conclusions and Next Steps"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Evaluate on Nomos Test Dataset:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Dataset Links:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/blob/master/src/nomos/agent_tests/testdata/LastGoodNomosTestfilesScan",children:"LastGoodNomosTestfilesScan"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/tree/master/src/nomos/agent_tests/testdata/NomosTestfiles",children:"NomosTestfiles"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Objective: Assess the performance of the semantic search and LLM integration on the provided test datasets."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Limit Line/Chunk Matching: To address the issue of excessive matches, limit the line/chunk matching to optimize search time and accuracy."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Additional Tasks"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Acknowledgement from Notice Files: Begin work on identifying and acknowledging licenses from notice files."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Obligations: Convert identified licenses to obligations, detailing the requirements and conditions of each license."}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>o});var s=i(67294);const t={},c=s.createContext(t);function o(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/96273901.b417ef6e.js b/assets/js/96273901.b417ef6e.js new file mode 100644 index 0000000000..c5dfc10378 --- /dev/null +++ b/assets/js/96273901.b417ef6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2351],{43070:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var i=n(85893),t=n(11151);const r={title:"Week 5",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},o="Week 5 Meeting and Activities",a={id:"2024/spdx-expression/updates/2024-06-25",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/updates/2024-06-25.md",sourceDirName:"2024/spdx-expression/updates",slug:"/2024/spdx-expression/updates/2024-06-25",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/updates/2024-06-25.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx-expression",permalink:"/gsoc/docs/tags/spdx-expression"}],version:"current",frontMatter:{title:"Week 5",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-18"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/minutes/2024-05-30"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Presentation of Report Generation",id:"presentation-of-report-generation",level:3},{value:"Activities",id:"activities",level:2},{value:"Sample Reports",id:"sample-reports",level:2}];function c(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-5-meeting-and-activities",children:"Week 5 Meeting and Activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 25, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsx)(s.h3,{id:"presentation-of-report-generation",children:"Presentation of Report Generation"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Presented my work on SPDX Tag Value and CSV reports, including license expression results in the reports."}),"\n",(0,i.jsx)(s.li,{children:"Feedback: There should be functionality for adding license expressions and main licenses."}),"\n",(0,i.jsxs)(s.li,{children:["I have validated SPDX Tag Value reports using ",(0,i.jsx)(s.a,{href:"https://tools.spdx.org/app/",children:"SPDX online tools"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Inquired about how to validate CSV formats."}),"\n",(0,i.jsx)(s.li,{children:"Next steps: Work on different formats."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Opened a WIP PR ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2771",children:"feat(spdx-expression): License Expression Support"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Solved some bugs found during the generation of SPDX Tag Value reports."}),"\n",(0,i.jsx)(s.li,{children:"Worked on SPDX RDF reports and successfully included license expression results in the reports and validated the reports."}),"\n",(0,i.jsx)(s.li,{children:"Added license exception support in the reports."}),"\n",(0,i.jsx)(s.li,{children:"Added an option to make a license expression the main license in the UI."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"sample-reports",children:"Sample Reports"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(17099).Z+"",children:"SPDX Tag Value Sample"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(3663).Z+"",children:"SPDX RDF Sample"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},17099:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/files/SPDX2TV_Test19.zip_1720209488-1636715989f1ccd687a58c10d6c02ba0.spdx"},3663:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/files/SPDX2_Test19.zip_1720209507.spdx-a2cf3ccc7754e928d4d86ebc059da072.rdf"},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>o});var i=n(67294);const t={},r=i.createContext(t);function o(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/97d08d26.5eb9f620.js b/assets/js/97d08d26.5eb9f620.js new file mode 100644 index 0000000000..23ee5abfc7 --- /dev/null +++ b/assets/js/97d08d26.5eb9f620.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5731],{10121:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var n=s(85893),a=s(11151);const i={title:"Week 12",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,o={id:"2022/atarashi/updates/2022-08-30",title:"Week 12",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-08-30.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-08-30",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-08-30.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 12",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 11",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-23"},next:{title:"Introduction",permalink:"/gsoc/docs/2022/project/"}},c={},h=[{value:"Meeting 14",id:"meeting-14",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Disscussion",id:"disscussion",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(t){const e={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h2,{id:"meeting-14",children:"Meeting 14"}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.em,{children:"(Sept 5th, 2022)"})}),"\n",(0,n.jsx)(e.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(e.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"disscussion",children:"Disscussion"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["Had a disscussion with ",(0,n.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," about the issue regarding the speed of\n",(0,n.jsx)(e.a,{href:"https://github.com/nexB/scancode-toolkit",children:"scancode"})," agent in fossology."]}),"\n",(0,n.jsxs)(e.li,{children:["Needed to understand ",(0,n.jsx)(e.a,{href:"https://github.com/nexB/scancode-toolkit/commit/8afa686fb71b9540029234e5a40c0572c4457c28",children:"this commit"}),"\nand try to make a python script such that it can be used to make scancode agent in fossology works faster."]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Will work on scancode integration task."}),"\n"]})]})}function l(t={}){const{wrapper:e}={...(0,a.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},11151:(t,e,s)=>{s.d(e,{Z:()=>o,a:()=>r});var n=s(67294);const a={},i=n.createContext(a);function r(t){const e=n.useContext(i);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:r(t.components),n.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/97fcf222.eb3adb67.js b/assets/js/97fcf222.eb3adb67.js new file mode 100644 index 0000000000..6bcd3d7366 --- /dev/null +++ b/assets/js/97fcf222.eb3adb67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4101],{69388:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>h,toc:()=>o});var t=s(85893),i=s(11151);const a={title:"Week 5",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,h={id:"2022/atarashi/updates/2022-07-11",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-07-11.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-07-11",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-07-11.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 5",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-04"},next:{title:"Week 6",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-19"}},c={},o=[{value:"Meeting 6",id:"meeting-6",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function l(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July 14th, 2022)"})}),"\n",(0,t.jsx)(n.p,{children:"GSOC 2022 weekly update"}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Made changes suggested by the mentors on the ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation/pull/5",children:"pr"}),"\ncreted on ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Implemented agent on ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/atarashi",children:"atarashi"})," for\n",(0,t.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Okapi_BM25",children:"okapibm25"})," and got the accuracy score of ",(0,t.jsx)(n.strong,{children:"62%"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:" Total files scanned = 100\n Successfully matched = 62\n\n ++++++++++++++++++ Result ++++++++++++++++++\n ++++++++++++++++++++++++++++++++++++++++++++\n ---\x3e Total time elapsed: 11.67 Seconds <---\n ---\x3e Accuracy: 62.0% <---\n ++++++++++++++++++++++++++++++++++++++++++++\n ++++++++++++++++++++++++++++++++++++++++++++\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"And raised the pr for the same."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsxs)(n.a,{href:"https://github.com/fossology/atarashi/pull/101",children:["feat(agent)",":Add"," okapibm25 agent"]})}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-python",children:' def scan(self, filePath):\n \'\'\'\n Read the content of filename, extract the comments and preprocess them.\n Find the license of the preprocessed file.\n :param filePath: Path of the file to scan\n :return: Returns the license\'s short name with highest similarity scores\n \'\'\'\n processedData = super().loadFile(filePath)\n\n with open(filePath) as file:\n raw_data = file.read()\n spdx_identifers = spdx_identifer(raw_data,\n self.licenseList[\'shortname\'])\n\n match = []\n if spdx_identifers:\n match.extend(spdx_identifers)\n else:\n tokenize_corpus = []\n corpus_identifier = []\n for idx in range(len(self.licenseList)):\n tok = self.licenseList.iloc[idx][\'processed_text\'].split(" ")\n tokenize_corpus.append(tok)\n tok_identifier = self.licenseList.iloc[idx][\'shortname\']\n corpus_identifier.append(tok_identifier)\n\n bm25 = BM25Okapi(tokenize_corpus)\n doc_scores = bm25.get_scores(processedData.split(" "))\n indices = np.argsort(doc_scores)[::-1][:10]\n\n for index in indices:\n match.append({\n "shortname": str(corpus_identifier[index]),\n "sim_score": doc_scores[index],\n "sim_type": "bm25",\n "description": ""\n })\n\n return match\n'})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["In above given code it can be seen that I have used ",(0,t.jsx)(n.a,{href:"https://pypi.org/project/rank-bm25/",children:"bm25"})," to transform\nprocessed text and then the similarity score has been calculated."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Will make the changes according to further suggestion."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>h,a:()=>r});var t=s(67294);const i={},a=t.createContext(i);function r(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/987068a2.0892524b.js b/assets/js/987068a2.0892524b.js new file mode 100644 index 0000000000..4a18f01d7b --- /dev/null +++ b/assets/js/987068a2.0892524b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5765],{89564:s=>{s.exports=JSON.parse('{"tag":{"label":"clearlydefined","permalink":"/gsoc/docs/tags/clearlydefined","allTagsPath":"/gsoc/docs/tags","count":6,"items":[{"id":"2022/spasht/updates/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-02"},{"id":"2022/spasht/updates/2022-06-08","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-08"},{"id":"2022/spasht/updates/2022-06-15","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-15"},{"id":"2022/spasht/updates/2022-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-06-22"},{"id":"2022/spasht/updates/2022-07-06","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-07-06"},{"id":"2022/spasht/updates/2022-07-13","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/spasht/updates/2022-07-13"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/988d06c4.d1f1aa9d.js b/assets/js/988d06c4.d1f1aa9d.js new file mode 100644 index 0000000000..3b40967001 --- /dev/null +++ b/assets/js/988d06c4.d1f1aa9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2448],{71201:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var n=s(85893),a=s(11151);const i={title:"Week 1",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},l=void 0,r={id:"2022/spasht/updates/2022-06-08",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/spasht/updates/2022-06-08.md",sourceDirName:"2022/spasht/updates",slug:"/2022/spasht/updates/2022-06-08",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/updates/2022-06-08.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"spasht",permalink:"/gsoc/docs/tags/spasht"},{label:"clearlydefined",permalink:"/gsoc/docs/tags/clearlydefined"}],version:"current",frontMatter:{title:"Week 1",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-02"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-15"}},o={},c=[{value:"Meeting 3",id:"meeting-3",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.em,{children:"(June 8th, 2022)"})}),"\n",(0,n.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Got a clear explanation on how to use CLearlyDefined.io tool"}),"\n",(0,n.jsx)(t.li,{children:"Was told to work on small project like atarashi to perform curations initially."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Will fork and install Atarashi repository"}),"\n",(0,n.jsx)(t.li,{children:"Try to curate data using Atarashi repository"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>l});var n=s(67294);const a={},i=n.createContext(a);function l(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/98bdcc53.d8c131bc.js b/assets/js/98bdcc53.d8c131bc.js new file mode 100644 index 0000000000..70b03b8a31 --- /dev/null +++ b/assets/js/98bdcc53.d8c131bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7453],{94279:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>c,toc:()=>r});var o=s(85893),i=s(11151);const n={title:"Week 5",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},a=void 0,c={id:"2023/rest/updates/soham/2023-07-05",title:"Week 5",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-07-05.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-07-05",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-05",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-07-05.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 5",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 4",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-27"},next:{title:"Week 6",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-16"}},d={},r=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Pagination header in getInfo endpoint for copyrights <code>upload/{uploadId}/item/{itemid}/copyrights</code>",id:"1-pagination-header-in-getinfo-endpoint-for-copyrights-uploaduploadiditemitemidcopyrights",level:4},{value:"2. Get Customise page data <code>/customise</code>",id:"2-get-customise-page-data-customise",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Updated Pull Request to include pagination feature. ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"uploads/{uploadId}/item/{itemid}/copyrights"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2475",children:"#2475"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for fetching Customise page data. ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/copyrights/inactive"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2520",children:"#2520"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsxs)(t.h4,{id:"1-pagination-header-in-getinfo-endpoint-for-copyrights-uploaduploadiditemitemidcopyrights",children:["1. Pagination header in getInfo endpoint for copyrights ",(0,o.jsx)(t.code,{children:"upload/{uploadId}/item/{itemid}/copyrights"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"header-copyrights-file",src:s(15301).Z+"",width:"806",height:"603"})}),"\n",(0,o.jsxs)(t.h4,{id:"2-get-customise-page-data-customise",children:["2. Get Customise page data ",(0,o.jsx)(t.code,{children:"/customise"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"get-customise",src:s(10093).Z+"",width:"1014",height:"881"})}),"\n",(0,o.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Modify the existing endpoints according to the suggestions from mentors"}),"\n",(0,o.jsx)(t.li,{children:"Focus on Midterm Evaluation for the GSOC"}),"\n",(0,o.jsx)(t.li,{children:"Keeping an target of making existing PRs to ready status by this week."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},15301:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/getInfoHeader-1158582578376263db72dad1ac12c662.png"},10093:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/cusomise-8a5c0a138239577da966e131ad20d26d.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>c,a:()=>a});var o=s(67294);const i={},n=o.createContext(i);function a(e){const t=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/99a3c1f5.742db6fc.js b/assets/js/99a3c1f5.742db6fc.js new file mode 100644 index 0000000000..36066a3205 --- /dev/null +++ b/assets/js/99a3c1f5.742db6fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2404],{24095:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var t=i(85893),s=i(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2024/rest/"},r=void 0,l={id:"2024/rest/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/rest/index.md",sourceDirName:"2024/rest",slug:"/2024/rest/",permalink:"/gsoc/docs/2024/rest/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/rest/"},sidebar:"2024",previous:{title:"Week 7",permalink:"/gsoc/docs/2024/minutes/2024-07-11"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-05-07"}},a={},d=[{value:"Authors",id:"authors",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"authors",children:"Authors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:divijs75@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://linkedin.com/in/dvjsharma",children:"LinkedIn"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:valensniyonsenga2003@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.linkedin.com/in/valens-niyonsenga-947440228/",children:"LinkedIn"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,t.jsx)(n.p,{children:"REST API Improvements"}),"\n",(0,t.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,t.jsxs)(n.p,{children:["In recent years, FOSSology's REST APIs have expanded significantly, enhancing user accessibility, flexibility, and automation. However, the development is not yet complete, prompting some users to resort to mocking WebUI access solely for information retrieval. With the development of FOSSology's new ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI",children:"React UI"})," also underway, robust support for REST APIs becomes imperative."]}),"\n",(0,t.jsx)(n.p,{children:"This project aims to finalize the development of FOSSology's REST API by exposing any remaining endpoints, enhancing and upgrading existing ones to V2, increasing test coverage, and improving documentation. The approach involves a comprehensive review of each module to ensure the availability and exposure of required APIs for frontend consumption. These efforts will streamline development workflows, enhancing the overall usability of the FOSSology platform and facilitating the development of the new React UI."}),"\n",(0,t.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,t.jsx)(n.p,{children:"This project involves the following tasks:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Exposing New API Endpoints:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Identify and expose any remaining endpoints required for frontend consumption."}),"\n",(0,t.jsx)(n.li,{children:"Ensure that all endpoints are RESTful and adhere to the OpenAPI specification."}),"\n",(0,t.jsx)(n.li,{children:"Update documentation to reflect the new endpoints and their usage."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Upgrading Existing Endpoints to Version 2:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Develop a REST API guideline which will provide a solid set of rules to follow."}),"\n",(0,t.jsx)(n.li,{children:"Upgrade existing endpoints to V2 based on the guideline, also ensuring backward compatibility."}),"\n",(0,t.jsx)(n.li,{children:"Update documentation to reflect the changes and versioning."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Increasing Test Coverage:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Study each endpoint and its functionality to identify potential edge cases."}),"\n",(0,t.jsx)(n.li,{children:"Write unit tests for all existing and new endpoints."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["More specific details about each task can be found in the ",(0,t.jsx)(n.a,{href:"https://docs.google.com/document/d/158BZBZ5owLtI-SqD1MIduMy4bR3XLuwm4aDLynoFZAA/edit?usp=sharing",children:"Task Details Table"}),"."]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var t=i(67294);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/99c6882e.1cd1ec5f.js b/assets/js/99c6882e.1cd1ec5f.js new file mode 100644 index 0000000000..09e771e863 --- /dev/null +++ b/assets/js/99c6882e.1cd1ec5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[382],{81456:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>o,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var i=s(85893),n=s(11151);const l={sidebar_position:1,title:"GSoC'23 @ FOSSology",slug:"/2023"},r=void 0,c={id:"2023/index",title:"GSoC'23 @ FOSSology",description:"\x3c!--",source:"@site/docs/2023/index.md",sourceDirName:"2023",slug:"/2023",permalink:"/gsoc/docs/2023",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"GSoC'23 @ FOSSology",slug:"/2023"},sidebar:"2023",next:{title:"Google Summer of Code Proposals 2023",permalink:"/gsoc/docs/2023/GSoC-projects"}},d={},h=[{value:"Projects",id:"projects",level:3},{value:"Mentors",id:"mentors",level:3},{value:"Meetings table",id:"meetings-table",level:3},{value:"Photo",id:"photo",level:3}];function a(e){const t={a:"a",em:"em",h3:"h3",img:"img",li:"li",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["2023 is the sixth time participation for FOSSology in\n",(0,i.jsx)(t.a,{href:"https://summerofcode.withgoogle.com/programs/2023/organizations/fossology",children:"Google Summer of Code"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["You can visit our ",(0,i.jsx)(t.a,{href:"/gsoc/docs/2023/GSoC-projects",children:"idea page for GSoC 2022"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"This year, following contributors were shortlisted for the program. However, we\nwould like to thank everyone who has applied with FOSSology for the Google\nSummer of Code program."}),"\n",(0,i.jsx)(t.h3,{id:"projects",children:"Projects"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Contributor"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Project"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Final Reports"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2023/copyrights",children:"Reducing False positive copyrights"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/Hero2323/GSoC-2023",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2023/rest",children:"REST API improvements"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/dushimsam/GSoC-23",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2023/laas",children:"License as a service"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2023/laas/finalevaluation",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2023/rest",children:"REST API improvements"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/soham4abc/GSOC23",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2023/cyclonedx",children:"Support CycloneDX report"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/its-sushant/GSoC-23",children:"Visit"})})]})]})]}),"\n",(0,i.jsx)(t.p,{children:"These links (also on the left sidebar) contains information about the project,\nthe weekly updates from the students and even technical documentation which\nwere generated during the Google Summer of Code."}),"\n",(0,i.jsx)(t.h3,{id:"mentors",children:"Mentors"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(t.li,{children:"Katharina Ettinger"}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"meetings-table",children:"Meetings table"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Topic(s)"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Timings"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Meeting link"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"ICS"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"General Meeting"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Thursday"})," 13:00 - 14:00 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZjQ3ZDgyYWMtNDE0NC00NWY0LWFlZDItOWJlOWEwOTRhZWQ0%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(99549).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Rest API"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Wednesday"})," 12:00 - 13:00 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZDEwNjQwYjktMzgyMy00YzIxLWIwYjEtMzgwODUyOTU1NjU0%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(23704).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Copyright"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Wednesday"})," 11:30 - 12:15 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2E1ZWNhYjktZTAwMy00NDU1LTg2MDktMjJhODE1MDJlZWRi%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(38847).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"LaaS"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Friday"})," 10:30 - 11:00 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_NTE5NzQyYjUtMGNiOS00ZGE3LWJkZTAtMzU3MDc4Y2ZjNTBm%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(5839).Z+"",children:".ics"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"CycloneDX"}),(0,i.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,i.jsx)(t.em,{children:"Tuesday"})," 05:00 - 05:30 UTC"]}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://teams.microsoft.com/l/meetup-join/19%3ameeting_MDA2OGQ1Y2UtYmQ2Mi00ZmZkLTliOTUtNmEyODlkZmViYjQz%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%22a2c4f566-cad3-46d5-9146-26004cf4bc7c%22%7d",children:"Microsoft Teams"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(6905).Z+"",children:".ics"})})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"photo",children:"Photo"}),"\n",(0,i.jsx)(t.p,{children:"Here are some screen captures of the conclusion meeting of GSoC 2023 with all\nmentors and contributors."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.img,{alt:"group photo1",src:s(65171).Z+"",title:"GSoC 2023 Participants - 1",width:"1847",height:"984"}),"\n[Participants photo 1]"]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.img,{alt:"group photo2",src:s(32641).Z+"",title:"GSoC 2023 Participants - 2",width:"1848",height:"981"}),"\n[Participants photo 2]"]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.img,{alt:"group photo3",src:s(2412).Z+"",title:"GSoC 2023 Participants - 3",width:"1920",height:"1017"}),"\n[Participants photo 3]"]}),"\n",(0,i.jsx)(t.p,{children:"Thanks for being part of the community. \ud83d\udc9a"})]})}function o(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},38847:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2023_copyright-2a13938d0dbb41139e9489e7943c8e36.ics"},6905:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2023_cyclonedx-60321d8c57218983047090f7590e4aee.ics"},5839:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2023_laas-49fd108c8b4efcb7015b6ca7703de6db.ics"},23704:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2023_rest-56d9e264652456438580e626f9e8cb47.ics"},99549:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/files/gsoc_2023_weekly-1952eade81b26e41916522b84619be9b.ics"},65171:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc23participants1-8b266099ad2289e665e2e16f87f86129.png"},32641:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc23participants2-3a7dfe93623ef8f61176f8d64876d0f0.png"},2412:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc23participants3-ac6a5bf213e6d783d50547cd298e65cc.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>c,a:()=>r});var i=s(67294);const n={},l=i.createContext(n);function r(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9a78ab14.054d445d.js b/assets/js/9a78ab14.054d445d.js new file mode 100644 index 0000000000..2acfbe8672 --- /dev/null +++ b/assets/js/9a78ab14.054d445d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2876],{17095:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var i=s(85893),t=s(11151);const r={title:"Week 3",author:"Shreya"},a="Coding Week-3 Meeting",l={id:"2021/minerva/updates/2021-06-29",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-06-29.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-06-29",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-06-29.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Shreya"},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-22"},next:{title:"Week 4",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-05"}},h={},o=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:2},{value:"Week 3 Progress",id:"week-3-progress",level:2},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function d(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"coding-week-3-meeting",children:"Coding Week-3 Meeting"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Results from Markov implemented text files that were validated by nomos."}),"\n",(0,i.jsx)(n.li,{children:"Reusing Unclassified_licenses labeled files by adding significant keywords."}),"\n",(0,i.jsx)(n.li,{children:"To implement the algorithms on few more licenses that are MIT and Apache to get a generalized view on both the approaches."}),"\n",(0,i.jsx)(n.li,{children:"To-do: Validation on n-gram generated licenses and compare both the results."}),"\n",(0,i.jsx)(n.li,{children:"How to not make the dataset biased."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"week-3-progress",children:"Week 3 Progress"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Generated MIT-0, MIT, MITNFA, MIT-CMU, MIT-enna, MIT-feh, MIT-advertising, Apache-1.1, Apache-2.0, Apache-1.0 licenses and got them validated them using nomos."}),"\n",(0,i.jsx)(n.li,{children:"Implemented ngram + markov approach to generate all the files."}),"\n",(0,i.jsx)(n.li,{children:"Tweaked regex implementation while generating files for these licenses which further improved the results during validation."}),"\n",(0,i.jsx)(n.li,{children:"Segregated different labeled license files in different folders."}),"\n",(0,i.jsx)(n.li,{children:"Working on a script to automate the entire process."}),"\n",(0,i.jsxs)(n.li,{children:["Worksamples : ",(0,i.jsx)(n.a,{href:"https://drive.google.com/drive/folders/1Xax_nkc4e3hHZDompzO6ePKrH5lLoErV?usp=sharing",children:"GeneratedFiles"}),", ",(0,i.jsx)(n.a,{href:"https://colab.research.google.com/drive/1URpkYGqZyZqwag6XUsLwPf84s2YBWNXY",children:"Markov_implementation"}),", ",(0,i.jsx)(n.a,{href:"https://colab.research.google.com/drive/1bR3O98q3k2oMq-cOg_-1F8QcJe3gpmDG",children:"filesgen-markov"}),", ",(0,i.jsx)(n.a,{href:"https://colab.research.google.com/drive/1myI_jMiObbUMcHUJdIKmmeurueMxFN5d",children:"fileshen-ngram"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsx)(n.p,{children:"Automate the entire process for different licenses and get them validated using Nomos."})]})}function c(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>a});var i=s(67294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9be35a5c.e904647e.js b/assets/js/9be35a5c.e904647e.js new file mode 100644 index 0000000000..f237f21f67 --- /dev/null +++ b/assets/js/9be35a5c.e904647e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7980],{98446:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var s=i(85893),t=i(11151);const r={title:"Week 2",author:"Divij Sharma",tags:["gsoc24","rest"]},c="Week 2 meeting and activities",o={id:"2024/rest/updates/Divij/2024-06-06",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-06-06.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-06-06",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-06-06.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 2",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-05-30"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-11"}},l={},d=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2}];function a(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"week-2-meeting-and-activities",children:"Week 2 meeting and activities"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 6,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"No major updates since the last meeting."}),"\n",(0,s.jsx)(n.li,{children:"Discussed the improvements that can be made in the REST API Version 2."}),"\n",(0,s.jsx)(n.li,{children:"Discussed the implementation of OAuth 2.0 in the project."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"activities",children:"Activities"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"OAuth 2.0"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Researched OAuth 2.0 and its application on production servers. Found the ",(0,s.jsx)(n.a,{href:"https://auth0.com/intro-to-iam/what-is-oauth-2",children:"Auth0 article"})," particularly helpful. Studied various architectural patterns for different flows to determine the best fit for our project."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Prepared a draft outlining the implementation details, focusing on two scenarios:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"For the API"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Create an endpoint to add new clients, accepting ",(0,s.jsx)(n.code,{children:"name"}),", ",(0,s.jsx)(n.code,{children:"clientId"}),", and ",(0,s.jsx)(n.code,{children:"scope"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Another endpoint to configure FOSSology, accepting ",(0,s.jsx)(n.code,{children:"appName"}),", ",(0,s.jsx)(n.code,{children:"clientId"}),", ",(0,s.jsx)(n.code,{children:"clientSecret"}),", ",(0,s.jsx)(n.code,{children:"clientClaim"}),", ",(0,s.jsx)(n.code,{children:"redirectUri"}),", and ",(0,s.jsx)(n.code,{children:"discoveryUri"}),". The ",(0,s.jsx)(n.code,{children:"discoveryUri"})," will be used to fetch other required endpoints."]}),"\n",(0,s.jsx)(n.li,{children:"Once these steps are completed, FOSSology will be configured to use OAuth 2.0. Users can obtain a token from their authorization server to access the FOSSology API."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"For the Web Application"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Implement the Authorization Code Grant flow for the frontend. This requires a login page where users can log in and receive a code, which can be exchanged for a token to access the FOSSology API."}),"\n",(0,s.jsx)(n.li,{children:"Researched libraries to implement this flow on the frontend."}),"\n",(0,s.jsx)(n.li,{children:"On the server side, implement a mechanism to verify user credentials received from the server and issue a token to the user."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"REST API Version 2"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Reviewed the code and identified areas for improvement."}),"\n",(0,s.jsxs)(n.li,{children:["Found the following things which we can look into:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Status Codes: Particularly 204 (no content)"}),"\n",(0,s.jsx)(n.li,{children:"Adding pagination to all necessary endpoints"}),"\n",(0,s.jsx)(n.li,{children:"Using model classes for all major/minor responses"}),"\n",(0,s.jsx)(n.li,{children:"Test coverage"}),"\n",(0,s.jsx)(n.li,{children:"Authentication workflow"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>c});var s=i(67294);const t={},r=s.createContext(t);function c(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9bebd0d9.33d7ca5f.js b/assets/js/9bebd0d9.33d7ca5f.js new file mode 100644 index 0000000000..023f055bb0 --- /dev/null +++ b/assets/js/9bebd0d9.33d7ca5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1550],{91918:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>h,toc:()=>c});var t=n(85893),a=n(11151);const i={title:"Week 6",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,h={id:"2022/atarashi/updates/2022-07-19",title:"Week 6",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-07-19.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-07-19",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-19",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-07-19.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 6",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-11"},next:{title:"Week 7",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-26"}},l={},c=[{value:"Meeting 8",id:"meeting-8",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function o(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"meeting-8",children:"Meeting 8"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 21st, 2022)"})}),"\n",(0,t.jsx)(s.p,{children:"GSOC 2022 weekly update"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"This week I was wrapping up my all contributions till mid-term evaluation."}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Major Pull Requests:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/atarashi/pull/100",children:"Add agent for Logistic Regression model on atarashi"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["This pull requested was created for the Logistic Regression agent that I have implemented\non ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/atarashi",children:"atarashi"}),". Currently the agent is giving the accuracy of\n",(0,t.jsx)(s.strong,{children:"63"})," percent."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/atarashi/pull/102",children:"Add agent for Linear Support vector machine"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["This agent is also giving the accuracy of ",(0,t.jsx)(s.strong,{children:"63"})," percent. And the pull request for the same has\nbeen created on ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/atarashi",children:"atarashi"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/atarashi/pull/101",children:"Add Okapibm25 agent"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["The agent for Okapibm25 is the very basic implementation. I have used\n",(0,t.jsx)(s.a,{href:"https://pypi.org/project/rank-bm25/",children:"Rank_bm25"})," package for\ntransformation and the accuracy score is ",(0,t.jsx)(s.strong,{children:"62"})," percent."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation/pull/5",children:"Add model packages"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"This pull request was created for the package that I have created for trained models. The\npackage can be used in atarashi agent for predicting the license short name from source code."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Will start working further and train some deep learning model on\n",(0,t.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"minerva dataset"})]}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>h,a:()=>r});var t=n(67294);const a={},i=t.createContext(a);function r(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9d90f292.a456a40d.js b/assets/js/9d90f292.a456a40d.js new file mode 100644 index 0000000000..5a67e7ab33 --- /dev/null +++ b/assets/js/9d90f292.a456a40d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1728],{74387:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=s(85893),i=s(11151);const r={sidebar_position:6,title:"Week 5"},o=void 0,l={id:"2023/minutes/2023-06-29",title:"Week 5",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-06-29.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-06-29",permalink:"/gsoc/docs/2023/minutes/2023-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-06-29.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Week 5"},sidebar:"2023",previous:{title:"Week 4",permalink:"/gsoc/docs/2023/minutes/2023-06-22"},next:{title:"Week 6",permalink:"/gsoc/docs/2023/minutes/2023-07-06"}},h={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/HastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Done implementation of the CycloneDX agent, ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2507",children:"PR #2507"})]}),"\n",(0,t.jsx)(n.li,{children:"Gave demo of the CycloneDX agent report generation."}),"\n",(0,t.jsxs)(n.li,{children:["Suggestion, create ",(0,t.jsx)(n.code,{children:"bomRef"})," as ",(0,t.jsx)(n.code,{children:"<upload_id>-<item_id>"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Added authentication for REST API."}),"\n",(0,t.jsx)(n.li,{children:"Using username and password for now."}),"\n",(0,t.jsxs)(n.li,{children:["Implemented fuzzy search and full-text search.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Suggestion is to add a query parameter to let user decide to go for fuzzy or full-text search."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on copyright related endpoints."}),"\n",(0,t.jsx)(n.li,{children:"Raised PRs and working on changes requested."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on jobs and standard acknowledgement endpoints."}),"\n",(0,t.jsx)(n.li,{children:"Showed demo of the acknowledgements endpoints with insert, update and toggle enable."}),"\n",(0,t.jsx)(n.li,{children:"Working on merging the license decision endpoints and showed the demo."}),"\n"]}),"\n"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>o});var t=s(67294);const i={},r=t.createContext(i);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9dda5328.d77913fd.js b/assets/js/9dda5328.d77913fd.js new file mode 100644 index 0000000000..fb951dae97 --- /dev/null +++ b/assets/js/9dda5328.d77913fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1146],{93367:e=>{e.exports=JSON.parse('{"tags":[{"label":"gsoc21","permalink":"/gsoc/docs/tags/gsoc-21","count":10},{"label":"buildsystem","permalink":"/gsoc/docs/tags/buildsystem","count":10},{"label":"ci/cd","permalink":"/gsoc/docs/tags/ci-cd","count":10},{"label":"cmake","permalink":"/gsoc/docs/tags/cmake","count":10},{"label":"gsoc22","permalink":"/gsoc/docs/tags/gsoc-22","count":83},{"label":"atarashi","permalink":"/gsoc/docs/tags/atarashi","count":13},{"label":"project","permalink":"/gsoc/docs/tags/project","count":15},{"label":"reuse","permalink":"/gsoc/docs/tags/reuse","count":14},{"label":"spasht","permalink":"/gsoc/docs/tags/spasht","count":6},{"label":"clearlydefined","permalink":"/gsoc/docs/tags/clearlydefined","count":6},{"label":"react","permalink":"/gsoc/docs/tags/react","count":35},{"label":"ui","permalink":"/gsoc/docs/tags/ui","count":1},{"label":"api","permalink":"/gsoc/docs/tags/api","count":10},{"label":"community bonding","permalink":"/gsoc/docs/tags/community-bonding","count":1},{"label":"Week 1","permalink":"/gsoc/docs/tags/week-1","count":1},{"label":"Week 2","permalink":"/gsoc/docs/tags/week-2","count":1},{"label":"Week 3","permalink":"/gsoc/docs/tags/week-3","count":1},{"label":"Week 4","permalink":"/gsoc/docs/tags/week-4","count":1},{"label":"Week 5","permalink":"/gsoc/docs/tags/week-5","count":1},{"label":"Week 6","permalink":"/gsoc/docs/tags/week-6","count":1},{"label":"Week 7","permalink":"/gsoc/docs/tags/week-7","count":1},{"label":"Week 8","permalink":"/gsoc/docs/tags/week-8","count":1},{"label":"Week 9","permalink":"/gsoc/docs/tags/week-9","count":1},{"label":"Week 10","permalink":"/gsoc/docs/tags/week-10","count":1},{"label":"Week 11","permalink":"/gsoc/docs/tags/week-11","count":1},{"label":"Week 12","permalink":"/gsoc/docs/tags/week-12","count":1},{"label":"license as a service","permalink":"/gsoc/docs/tags/license-as-a-service","count":12},{"label":"open source licensing","permalink":"/gsoc/docs/tags/open-source-licensing","count":12},{"label":"gsoc23","permalink":"/gsoc/docs/tags/gsoc-23","count":19},{"label":"rest","permalink":"/gsoc/docs/tags/rest","count":33},{"label":"gsoc24","permalink":"/gsoc/docs/tags/gsoc-24","count":38},{"label":"CI","permalink":"/gsoc/docs/tags/ci","count":8},{"label":"pipeline","permalink":"/gsoc/docs/tags/pipeline","count":5},{"label":"spdx-expression","permalink":"/gsoc/docs/tags/spdx-expression","count":5},{"label":"spdx30","permalink":"/gsoc/docs/tags/spdx-30","count":6}]}')}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.8e0b2f0c.js b/assets/js/9e4087bc.8e0b2f0c.js new file mode 100644 index 0000000000..b1fa0c6e44 --- /dev/null +++ b/assets/js/9e4087bc.8e0b2f0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3608],{63169:(e,r,t)=>{t.r(r),t.d(r,{default:()=>m});t(67294);var a=t(33692),n=t(95999),s=t(8264),i=t(9788),c=t(46040),l=t(92503),o=t(85893);function d(e){let{year:r,posts:t}=e;const n=(0,i.P)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.Z,{as:"h3",id:r,children:r}),(0,o.jsx)("ul",{children:t.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(a.Z,{to:e.metadata.permalink,children:[(r=e.metadata.date,n.format(new Date(r)))," - ",e.metadata.title]})},e.metadata.date);var r}))})]})}function h(e){let{years:r}=e;return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},r)))})})})}function m(e){let{archive:r}=e;const t=(0,n.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),a=(0,n.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const r=e.reduce(((e,r)=>{const t=r.metadata.date.split("-")[0],a=e.get(t)??[];return e.set(t,[r,...a])}),new Map);return Array.from(r,(e=>{let[r,t]=e;return{year:r,posts:t}}))}(r.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.d,{title:t,description:a}),(0,o.jsxs)(c.Z,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.Z,{as:"h1",className:"hero__title",children:t}),(0,o.jsx)("p",{className:"hero__subtitle",children:a})]})}),(0,o.jsx)("main",{children:i.length>0&&(0,o.jsx)(h,{years:i})})]})]})}},9788:(e,r,t)=>{t.d(r,{P:()=>n});var a=t(52263);function n(e){void 0===e&&(e={});const{i18n:{currentLocale:r}}=(0,a.Z)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,a.Z)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:t,...e})}}}]); \ No newline at end of file diff --git a/assets/js/9ea496a9.6320d17d.js b/assets/js/9ea496a9.6320d17d.js new file mode 100644 index 0000000000..5fc173246e --- /dev/null +++ b/assets/js/9ea496a9.6320d17d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1652],{47314:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>h,toc:()=>a});var n=i(85893),t=i(11151);const r={title:"Week 4",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},l=void 0,h={id:"2022/reuse/updates/2022-07-04",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-07-04.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-07-04",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-07-04.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 4",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-27"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-11"}},o={},a=[{value:"Meeting 10",id:"meeting-10",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 11",id:"meeting-11",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-10",children:"Meeting 10"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 05th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Issue ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/1513",children:"#1513"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["We discussed approach for ",(0,n.jsx)(s.code,{children:"Support the SPDX-FileCopyrightText keyword in the copyright agent"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"To correctly identify SPDX-FileCopyrightText, regex needs to be improved."}),"\n",(0,n.jsxs)(s.li,{children:["Reso agent will copy the findings of Copyright agent from the ",(0,n.jsx)(s.code,{children:".license"})," file to the associated file."]}),"\n",(0,n.jsx)(s.li,{children:"To make testing easier, mentors taught the CLI method."}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["REUSE copyright and licensing standard Implementation","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Current REUSE status","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"When running reuse lint, the result is as follows:"}),"\n"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"Files with copyright information: 4152 / 4360\nFiles with license information: 3723 / 4360\n"})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Mentors reviewed pull request ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2248",children:"#2248"})," and suggested few changes."]}),"\n",(0,n.jsx)(s.li,{children:"Discussed the issue of bad licenses/missing licenses coming from testdata files in resue tool. Mentors suggested to raise a issue in reuse github repository."}),"\n",(0,n.jsx)(s.li,{children:"Few doubts were cleared regarding the comment formatting of the files."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"meeting-11",children:"Meeting 11"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(July 07th, 2022)"})}),"\n",(0,n.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,n.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Implemented REUSE standard in more files."}),"\n",(0,n.jsx)(s.li,{children:"Learned about regular expressions."}),"\n",(0,n.jsxs)(s.li,{children:["During the implementation of the REUSE.software standard, I added the license and copyright information to testdata files through dep5. However, reuse tool still shows missing/bad licensing information from testdata files. I have added an ",(0,n.jsx)(s.a,{href:"https://github.com/fsfe/reuse-tool/issues/556",children:"issue"})," to fsfe/reuse-tool for the solution to this."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"I will implement REUSE copyright and licensing information on more files"}),"\n",(0,n.jsx)(s.li,{children:"We will discuss a solution to the issue of testdata file at our next project meeting."}),"\n",(0,n.jsx)(s.li,{children:"I will work on the SPDX-FileCopyrightText keyword in the copyright agent this week."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,i)=>{i.d(s,{Z:()=>h,a:()=>l});var n=i(67294);const t={},r=n.createContext(t);function l(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9ecc6cb6.3e7b1d79.js b/assets/js/9ecc6cb6.3e7b1d79.js new file mode 100644 index 0000000000..5f3e70204e --- /dev/null +++ b/assets/js/9ecc6cb6.3e7b1d79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7810],{88253:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>h,toc:()=>o});var i=s(85893),t=s(11151);const r={title:"Week 9",author:"Shreya Singh"},a="Coding Week-9 Meeting",h={id:"2021/minerva/updates/2021-08-10",title:"Week 9",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-08-10.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-08-10",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-08-10.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-03"},next:{title:"Week 10",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-17"}},l={},o=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week-9 Progress",id:"week-9-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"coding-week-9-meeting",children:"Coding Week-9 Meeting"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Sliding window approach to be followed in initial split of licenses i.e para1+para2, para2+para3, etc."}),"\n",(0,i.jsxs)(n.li,{children:["Adding License GPL-2.0 to the ",(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation",children:"Minerva Dataset"})," so that it can be integrated to Fossology"]}),"\n",(0,i.jsx)(n.li,{children:"Used Recently released SPDX licenses, licenseListVersion: 3.13"}),"\n",(0,i.jsx)(n.li,{children:"Removing duplicate codes from the repository."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-9-progress",children:"Week-9 Progress"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Implemented Sliding Window approach."}),"\n",(0,i.jsxs)(n.li,{children:["Added Licenses to the repository ",(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation",children:"Minerva Dataset"})]}),"\n",(0,i.jsx)(n.li,{children:"Added license header to the all the scripts of repo."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsx)(n.p,{children:"Discussion on Augly Implementation to produce noise in the Dataset."})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>h,a:()=>a});var i=s(67294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9f3eea2d.40eed792.js b/assets/js/9f3eea2d.40eed792.js new file mode 100644 index 0000000000..fb0816415e --- /dev/null +++ b/assets/js/9f3eea2d.40eed792.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2322],{64602:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>h,toc:()=>c});var a=s(85893),n=s(11151);const r={title:"Week 7",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},i=void 0,h={id:"2022/atarashi/updates/2022-07-26",title:"Week 7",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-07-26.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-07-26",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-26",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-07-26.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 7",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 6",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-19"},next:{title:"Week 8",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-02"}},o={},c=[{value:"Meeting 9",id:"meeting-9",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Updates",id:"updates",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function l(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"meeting-9",children:"Meeting 9"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.em,{children:"(July 28th, 2022)"})}),"\n",(0,a.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,a.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"updates",children:"Updates"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Started working on second part of my project."}),"\n",(0,a.jsxs)(t.li,{children:["Created a ",(0,a.jsx)(t.a,{href:"https://www.kaggle.com/code/sushanttkr07/doc2vec",children:"notebook"})," on kaggle to\ntrain and test the working of ",(0,a.jsx)(t.a,{href:"https://radimrehurek.com/gensim/models/doc2vec.html",children:"Doc2vec Model"}),"\non smaller part of ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva Dataset"}),"."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Will start training of ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation/tree/main/Split-DB-Foss-Licenses",children:"dataset"}),"\non ",(0,a.jsx)(t.a,{href:"https://radimrehurek.com/gensim/models/doc2vec.html",children:"Doc2vec Model"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>h,a:()=>i});var a=s(67294);const n={},r=a.createContext(n);function i(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9f48525f.ef1a03e3.js b/assets/js/9f48525f.ef1a03e3.js new file mode 100644 index 0000000000..30ba403dbc --- /dev/null +++ b/assets/js/9f48525f.ef1a03e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4895],{32557:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>d,metadata:()=>o,toc:()=>l});var n=t(85893),i=t(11151);const d={title:"Week 6",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"24th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 6"]},r=void 0,o={id:"2022/ui/updates/krishna/2022-07-24",title:"Week 6",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-07-24.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-07-24",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-24",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-07-24.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 6",permalink:"/gsoc/docs/tags/week-6"}],version:"current",frontMatter:{title:"Week 6",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"24th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 6"]},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-17"},next:{title:"Week 7",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-31"}},a={},l=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"Requested changes and modifications",id:"requested-changes-and-modifications",level:2},{value:"For the Edit User Api",id:"for-the-edit-user-api",level:3},{value:"New API for adding a user (Started)",id:"new-api-for-adding-a-user-started",level:2},{value:"Testing <code>POST /users</code>",id:"testing-post-users",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function h(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Sl. No."}),(0,n.jsx)(s.th,{children:"Initial Goals"}),(0,n.jsx)(s.th,{children:"Completed"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"1."}),(0,n.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,n.jsx)(s.td,{children:"Done"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"2."}),(0,n.jsx)(s.td,{children:"Resume the implementation of API to add a user"}),(0,n.jsx)(s.td,{children:"Pending (Docs)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"3."}),(0,n.jsx)(s.td,{children:"API for changing the upload permissions"}),(0,n.jsx)(s.td,{children:"Not Started"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"requested-changes-and-modifications",children:"Requested changes and modifications"}),"\n",(0,n.jsx)(s.hr,{}),"\n",(0,n.jsx)(s.h3,{id:"for-the-edit-user-api",children:"For the Edit User Api"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"Changing the request format to be more simplified ---"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["From this\n",(0,n.jsx)(s.img,{alt:"req-body-edit-user",src:t(12199).Z+"",width:"866",height:"978"})]}),"\n",(0,n.jsxs)(s.li,{children:["To this\n",(0,n.jsx)(s.img,{alt:"req-body-edit-user-updated",src:t(68802).Z+"",width:"802",height:"900"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Modify the backend function to allow the user to send the only field which he/she wants to modify(edit). For instance, If the user wants to update the ",(0,n.jsx)(s.code,{children:"description"})," he will just give the ",(0,n.jsx)(s.code,{children:"userId"})," in params in path, and description field in the request body. All other fields which are not given in the request body will be automatically set in the backend from the DB. Refer to the discussion ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2262#issuecomment-1193073900",children:"here"}),"."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"new-api-for-adding-a-user-started",children:"New API for adding a user (Started)"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Gaurav sir"})," sent me the ",(0,n.jsx)(s.a,{href:"https://files.slack.com/files-pri/T6P6QSFSN-F03PD0S03QF/defaultplugin.patch",children:"patch"})," that converted the ",(0,n.jsx)(s.code,{children:"user_add"})," plugin to extend from ",(0,n.jsx)(s.code,{children:"DefaultPlugin"})," rather than ",(0,n.jsx)(s.code,{children:"FO_Plugin"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"This enabled me to use this plugin's existing methods to add a user which prevented code duplication and repetition of logic."}),"\n",(0,n.jsxs)(s.li,{children:["This Implementation included the following tasks ---","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Create a new ",(0,n.jsx)(s.code,{children:"POST /users"})," route in the ",(0,n.jsx)(s.code,{children:"index.php"})," file inside ",(0,n.jsx)(s.code,{children:"www/ui/api"})," directory."]}),"\n",(0,n.jsxs)(s.li,{children:["Add a new method ",(0,n.jsx)(s.code,{children:"AddUser"})," in the ",(0,n.jsx)(s.code,{children:"UserController.php"})," file."]}),"\n",(0,n.jsxs)(s.li,{children:["Try to re-use the methods that are already used in the ",(0,n.jsx)(s.code,{children:"user-add"})," plugin."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.h2,{id:"testing-post-users",children:["Testing ",(0,n.jsx)(s.code,{children:"POST /users"})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Use any API platform like postman."}),"\n",(0,n.jsxs)(s.li,{children:["Pull the changes from this ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2256",children:"PR"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Provide the request body as following ----\n",(0,n.jsx)(s.img,{alt:"req-body-add-user",src:t(20439).Z+"",width:"622",height:"514"})]}),"\n",(0,n.jsxs)(s.li,{children:["You can expect a response like this\n",(0,n.jsx)(s.img,{alt:"res-body-add-user",src:t(24215).Z+"",width:"662",height:"226"})]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Complete the implementation of ",(0,n.jsx)(s.code,{children:"POST /users"})," API to add a new user and document everything in ",(0,n.jsx)(s.code,{children:"openapi.yaml"})," file."]}),"\n",(0,n.jsxs)(s.li,{children:["Start figuring out the requirements for the implementation of ",(0,n.jsx)(s.code,{children:"upload-permisions"})," API for modifying the upload permissions of each group for a upload and design the API in swagger docs.."]}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},20439:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/addUserReqUpdated-dd565ed97b565645d22abd057739a18f.png"},24215:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/addUserResUpdated-301193484a5450458486b77e9d9518ce.png"},68802:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/editReqUpdated-e32531e0dd1e9cd052620f1ce2bde91d.png"},12199:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/reqBodyEditUser-5be82b54e69879a6a2850c51d8655ef8.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>r});var n=t(67294);const i={},d=n.createContext(i);function r(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9f6800f0.677668ab.js b/assets/js/9f6800f0.677668ab.js new file mode 100644 index 0000000000..c1e37694c9 --- /dev/null +++ b/assets/js/9f6800f0.677668ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8827],{27042:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var a=n(85893),i=n(11151);const s={title:"Week 1",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},o=void 0,c={id:"2022/ui/updates/samuel/2021-06-24",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2021-06-24.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2021-06-24",permalink:"/gsoc/docs/2022/ui/updates/samuel/2021-06-24",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2021-06-24.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 1",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 12",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-09-04"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-06-02"}},l={},u=[{value:"Activities",id:"activities",level:2},{value:"Explanation",id:"explanation",level:2},{value:"SCREENSHOTS",id:"screenshots",level:3},{value:"1. Maintenance Page",id:"1-maintenance-page",level:3},{value:"2. BucketPool Page",id:"2-bucketpool-page",level:3},{value:"Contributions",id:"contributions",level:2}];function r(e){const t={a:"a",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Created FOSSOlogy maintenance page."}),"\n",(0,a.jsx)(t.li,{children:"Created Duplicate BucketPool Page."}),"\n",(0,a.jsx)(t.li,{children:"Created the pull request for FOSSology maintenance page."}),"\n",(0,a.jsx)(t.li,{children:"Started to implement the APIs for FOSSology maintenance."}),"\n",(0,a.jsx)(t.li,{children:"Decided to quit the development of Duplicate BucketPool page for now\nsince it's not urgent yet."}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"explanation",children:"Explanation"}),"\n",(0,a.jsx)(t.p,{children:"The FOSSOlogy maintenance and the Duplicate BucketPool page from the Admin section\nwere not available. In this week i managed to add these new pages as a part of the UI\nproject."}),"\n",(0,a.jsx)(t.h3,{id:"screenshots",children:"SCREENSHOTS"}),"\n",(0,a.jsx)(t.h3,{id:"1-maintenance-page",children:"1. Maintenance Page"}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.img,{alt:"mantainance-page-pic-1",src:n(56742).Z+"",width:"1917",height:"902"}),"\n",(0,a.jsx)(t.img,{alt:"mantainance-page-pic-2",src:n(70617).Z+"",width:"1927",height:"899"})]}),"\n",(0,a.jsx)(t.h3,{id:"2-bucketpool-page",children:"2. BucketPool Page"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"bucket-pool",src:n(4221).Z+"",width:"1918",height:"901"})}),"\n",(0,a.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/commit/9f05b81a8027cad4e0adc6acb2dc96dd854a9034",children:"feat(ui): implementation of mantainance page on the admin section"})}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(r,{...e})}):r(e)}},4221:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/bucket_pool-18a0a724693ef1298085f84254abbc50.png"},56742:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/maintenance_1-8aa5ba903cbb22936bb49bd5b6f54961.png"},70617:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/maintenance_2-3166f718385e90d3c81f3026d5e5d49b.png"},11151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>o});var a=n(67294);const i={},s=a.createContext(i);function o(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9fa1d9d8.4724fa84.js b/assets/js/9fa1d9d8.4724fa84.js new file mode 100644 index 0000000000..33be1abbe8 --- /dev/null +++ b/assets/js/9fa1d9d8.4724fa84.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3937],{90513:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=t(85893),i=t(11151);const r={title:"Week 4 & 5",author:"Kaushlendra"},a="Coding Week 4&5 Meeting",c={id:"2021/copyrights/updates/2021-07-06",title:"Week 4 & 5",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-07-06.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-07-06",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-07-06.md",tags:[],version:"current",frontMatter:{title:"Week 4 & 5",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-22"},next:{title:"Week 6",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-13"}},o={},l=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 4&5 Progress",id:"week-45-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={h1:"h1",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-45-meeting",children:"Coding Week 4&5 Meeting"}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Checking results manually and understanding the edge cases."}),"\n",(0,s.jsx)(n.li,{children:"Implementation of the edge cases like (c) --\x3e copyright, Date needed to be mandatory."}),"\n",(0,s.jsx)(n.li,{children:"Go through different manually checked copyright CSV provided and The final CSV provided by Michael."}),"\n",(0,s.jsx)(n.li,{children:"Traversing the CSV provided by Michael and Implementing the algorithm over it."}),"\n",(0,s.jsx)(n.li,{children:"Implementing a performance score with which the algorithms performance to detect the copyrights is been calculated."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"week-45-progress",children:"Week 4&5 Progress"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All the results from the different CSVs were traversed and few edge cases were predicted: Org/person name in a different language is impacting, (c) was not been predicted as copyright and it was excluded, [Date] needed to be an important entity for copyright recognition."}),"\n",(0,s.jsx)(n.li,{children:'Solution was: (c) --\x3e has been changed to "copyright" string and then it was fed to the algorithm, [Date] check has been implemented inside all the checks which individually helps as a final check before calling it a hit.'}),"\n",(0,s.jsx)(n.li,{children:"CSV provided by Michael contained 13lakh+ datasets that were not ideal to traverse through all of it once (Jupyter server crashed after continuous 10 hours running)."}),"\n",(0,s.jsx)(n.li,{children:"Divided the datasets into chunks of 10,000 and will traverse through it and check the ideal results on all over it."}),"\n",(0,s.jsxs)(n.li,{children:["Performance score was calculated {hitscore/No.of copyrights in list}*100, which came out as ",(0,s.jsx)(n.strong,{children:"82.65%"})]}),"\n",(0,s.jsx)(n.li,{children:"Wiki has been Updated"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsx)(n.p,{children:"Understanding the edge cases and calculating the accuracy score over True Positives."})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>a});var s=t(67294);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a0b98cfa.9b34c123.js b/assets/js/a0b98cfa.9b34c123.js new file mode 100644 index 0000000000..51e37b49c1 --- /dev/null +++ b/assets/js/a0b98cfa.9b34c123.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6807],{36719:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var t=s(85893),i=s(11151);const o={title:"Week 7",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"31st July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 7"]},r=void 0,a={id:"2022/ui/updates/krishna/2022-07-31",title:"Week 7",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-07-31.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-07-31",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-31",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-07-31.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 7",permalink:"/gsoc/docs/tags/week-7"}],version:"current",frontMatter:{title:"Week 7",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"31st July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 7"]},sidebar:"2022",previous:{title:"Week 6",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-24"},next:{title:"Week 8",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-08-07"}},d={},l=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"API Docs (<code>POST /users</code>)",id:"api-docs-post-users",level:2},{value:"Exploring upload-permissions plugin and designing the API",id:"exploring-upload-permissions-plugin-and-designing-the-api",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Sl. No."}),(0,t.jsx)(n.th,{children:"Initial Goals"}),(0,t.jsx)(n.th,{children:"Completed"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"1."}),(0,t.jsx)(n.td,{children:"Solve requested changes on existing PRs"}),(0,t.jsx)(n.td,{children:"Done"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"2."}),(0,t.jsxs)(n.td,{children:["Write the API docs for ",(0,t.jsx)(n.code,{children:"POST /users"})," in openapi.yaml"]}),(0,t.jsx)(n.td,{children:"Done"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"3."}),(0,t.jsx)(n.td,{children:"Design the API for changing the upload permissions"}),(0,t.jsx)(n.td,{children:"Done"})]})]})]}),"\n",(0,t.jsxs)(n.h2,{id:"api-docs-post-users",children:["API Docs (",(0,t.jsx)(n.code,{children:"POST /users"}),")"]}),"\n",(0,t.jsxs)(n.p,{children:["I completed writing the docs for the ",(0,t.jsx)(n.code,{children:"/users"})," POST route in the swagger ",(0,t.jsx)(n.code,{children:"openapi.yaml"})," file and it looked like mentioned below ---"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"/users:\n post:\n operationId: createUser\n tags:\n - User\n - Admin\n summary: Create a new user\n description: >\n Create a new user\n requestBody:\n required: true\n content:\n application/json:\n schema:\n allOf:\n - $ref: '#/components/schemas/User'\n - type: object\n properties:\n user_pass:\n type: string\n defaultVisibility:\n type: string\n enum:\n - public\n - protected\n - private\n required:\n - name\n application/x-www-form-urlencoded:\n schema:\n allOf:\n - $ref: '#/components/schemas/User'\n - type: object\n properties:\n user_pass:\n type: string\n defaultVisibility:\n type: string\n enum:\n - public\n - protected\n - private\n required:\n - name\n responses:\n '201':\n description: User created successfully\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/Info'\n '409':\n description: User with the same email or username already exists\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/Info'\n '500':\n description: Internal server error with details\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/Info'\n default:\n $ref: '#/components/responses/defaultResponse'\n"})}),"\n",(0,t.jsx)(n.h2,{id:"exploring-upload-permissions-plugin-and-designing-the-api",children:"Exploring upload-permissions plugin and designing the API"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["I took some time to understand the functionality of the ",(0,t.jsx)(n.code,{children:"upload-permssions"})," plugin's methods and explored the existing functionalities."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"I realised how the format of the request body should be by monitoring the network logs"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:" mod: upload_permissions\n folder: 1\n upload: 3\n alluploadsperm: 0\n newperm: 0\n newgroup: 5\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["So if we observe the parameters, we see that we need the ",(0,t.jsx)(n.code,{children:"folderId"}),", ",(0,t.jsx)(n.code,{children:"uploadId"}),", ",(0,t.jsx)(n.code,{children:"allUploadsPermission"})," for setting a common permision for every upload in a folder, ",(0,t.jsx)(n.code,{children:"newperm"})," for setting up the new permission for the upload and ",(0,t.jsx)(n.code,{children:"newGroup"})," which is the group Id for which the permissons are being set."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Keeping the above factors in mind, the API design comes out to be something like mentioned below."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"/uploads/{id}/permissions:\nparameters:\n - name: id\n required: true\n description: Enter any upload id\n in: path\n schema:\n type: integer\nput:\n operationId: setUploadPermissions\n tags:\n - Upload\n summary: Set permissions for a upload in a folder for different groups\n description: >\n Set permissions for a upload in a folder for different groups\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties:\n folderId:\n type: integer\n description: Enter a folder id\n allUploadsPermission:\n type: boolean\n enum:\n - true\n - false\n description: Apply same permissions to all uploads in this folder\n groupId:\n type: integer\n description: Enter the id of the group you want to add or edit permission for this upload\n newPermission:\n type: string\n enum:\n - none\n - read_only\n - read_write\n - clearing_admin\n - admin\n description: Select the permission for selected group\n publicPermission:\n type: string\n enum:\n - none\n - read_only\n - read_write\n - clearing_admin\n - admin\n description: Select the public permission for this upload\n required:\n - allUploadsPermission\n responses:\n '202':\n description: Permissions updated successfully\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/components/schemas/Info'\n '400':\n description: Bad Request\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/components/schemas/Info'\n '404':\n description: Upload does not exist\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/components/schemas/Info'\n '503':\n description: Scheduler is not running\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/components/schemas/Info'\n default:\n $ref: '#/components/responses/defaultResponse'\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Get the API design approved by the mentors and start working on the implementation."}),"\n",(0,t.jsxs)(n.li,{children:["Study the UI behaviour of the ",(0,t.jsx)(n.code,{children:"upload-permissions"})," page and realise the requirements of the UI implementaion in react."]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var t=s(67294);const i={},o=t.createContext(i);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a1bf526c.ba7c4a65.js b/assets/js/a1bf526c.ba7c4a65.js new file mode 100644 index 0000000000..6a676bb740 --- /dev/null +++ b/assets/js/a1bf526c.ba7c4a65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2396],{23034:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>t,metadata:()=>r,toc:()=>d});var i=s(85893),a=s(11151);const t={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 2",r={id:"2023/laas/updates/2023-06-09",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-06-09.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-06-09",permalink:"/gsoc/docs/2023/laas/updates/2023-06-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-06-09.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-02"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-16"}},o={},d=[{value:"Attendees",id:"attendees",level:2},{value:"Update",id:"update",level:2},{value:"Discussions",id:"discussions",level:2},{value:"General",id:"general",level:2},{value:"Conclusion and Future Plan",id:"conclusion-and-future-plan",level:2}];function c(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-2",children:"Week 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June, 09, 2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"update",children:"Update"}),"\n",(0,i.jsx)(n.p,{children:"Added code to populate data from JSON file to the database:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"added automigration capability"}),"\n",(0,i.jsx)(n.li,{children:"added CLI arguments for database connection"}),"\n",(0,i.jsx)(n.li,{children:"database can be populated with json file etc"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Shaheem suggested to discuss it with Anupam and Gaurav for License Candidate file.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"For now we will use License database of license."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"If the data in database is not same as that in json file we will migrate it from\njson file. For ths we have RF flag in fossology, this flag refers if the data is\nfrom UI or from json."}),"\n",(0,i.jsx)(n.li,{children:"Marydone is field for candidate license flag."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Do we want plain log or structured log?","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"We need keep structured, as structured are easy to parse to extend we can start\nputting logs."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Use fatalf for error format instead of panic."}),"\n",(0,i.jsx)(n.li,{children:"Create Signed commit"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and Future Plan"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Get endpoints to be done."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" GET METHOD: /api/licenses // get all licenses \n GET METHOD: /api/license/:shortname // get licenses by shortname\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Evaluate both fuzzy search and fulltext in PostgreSQL."}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>l});var i=s(67294);const a={},t=i.createContext(a);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a2168394.366cf6c0.js b/assets/js/a2168394.366cf6c0.js new file mode 100644 index 0000000000..ef5c528e11 --- /dev/null +++ b/assets/js/a2168394.366cf6c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8375],{90500:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>a});var i=t(85893),o=t(11151);const s={title:"Community bonding",author:"Valens Niyonsenga"},r="Community Bonding",d={id:"2024/text-phrases/updates/2024-05-7",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/text-phrases/updates/2024-05-7.md",sourceDirName:"2024/text-phrases/updates",slug:"/2024/text-phrases/updates/2024-05-7",permalink:"/gsoc/docs/2024/text-phrases/updates/2024-05-7",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/text-phrases/updates/2024-05-7.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Valens Niyonsenga"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/text-phrases/"}},c={},a=[{value:"Introduction meeting",id:"introduction-meeting",level:2},{value:"Meeting 2",id:"meeting-2",level:2},{value:"During community bonding week 1",id:"during-community-bonding-week-1",level:2},{value:"Activities",id:"activities",level:3},{value:"Work done",id:"work-done",level:3},{value:"Meeting 3",id:"meeting-3",level:2}];function l(e){const n={em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,i.jsx)(n.h2,{id:"introduction-meeting",children:"Introduction meeting"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 7,2024)"})}),"\n",(0,i.jsx)(n.p,{children:"We had the introductory meeting opening the community bonding for GSoC'24. All members, including mentors and contributors, introduced themselves and discussed more about the general meeting time and platform decision."}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 9,2024)"})}),"\n",(0,i.jsx)(n.p,{children:"After the introductory meeting, we had the first general meeting where mentors emphasized the significance of maintaining communication and providing updates. Contributors were encouraged to ask any questions they had."}),"\n",(0,i.jsx)(n.h2,{id:"during-community-bonding-week-1",children:"During community bonding week 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 12,2024- May 18,2024)"})}),"\n",(0,i.jsx)(n.h3,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussed with mentors more about the project and the tasks that need to be completed."}),"\n",(0,i.jsx)(n.li,{children:"Got in touch with fellow contributors, sharing ideas on how we were going to approach our respective projects."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"work-done",children:"Work done"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I set up the project's development environment."}),"\n",(0,i.jsx)(n.li,{children:"Cleared some doubts and asked questions to understand the project better.."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 30,2024)"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Mentors asked for any updates from contributors."}),"\n",(0,i.jsx)(n.li,{children:"Mentors asked to update the documentation tool before joining the next call."}),"\n",(0,i.jsx)(n.li,{children:"Mentors explained about the GSoC tool documentation tool, different rules for the code, and documentation."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var i=t(67294);const o={},s=i.createContext(o);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a28343ab.4b6c313e.js b/assets/js/a28343ab.4b6c313e.js new file mode 100644 index 0000000000..ee243b4d09 --- /dev/null +++ b/assets/js/a28343ab.4b6c313e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2429],{99254:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>a});var o=t(85893),s=t(11151);const i={sidebar_position:1,title:"Introduction",slug:"/2022/reuse/"},r=void 0,d={id:"2022/reuse/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2022/reuse/index.md",sourceDirName:"2022/reuse",slug:"/2022/reuse/",permalink:"/gsoc/docs/2022/reuse/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2022/reuse/"},sidebar:"2022",previous:{title:"Week14",permalink:"/gsoc/docs/2022/project/updates/2022-09-08"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-02"}},c={},a=[{value:"Author",id:"author",level:3},{value:"Contact info",id:"contact-info",level:3},{value:"Adopting REUSE standards in FOSSology",id:"adopting-reuse-standards-in-fossology",level:2}];function l(e){const n={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h3,{id:"author",children:"Author"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"contact-info",children:"Contact info"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"mailto:rohit.pandey4900@gmail.com",children:"Email"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://linkedin.com/in/ipandeyrohit",children:"LinkedIn"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"adopting-reuse-standards-in-fossology",children:"Adopting REUSE standards in FOSSology"}),"\n",(0,o.jsx)(n.p,{children:"Copyright and licensing is difficult, especially when reusing software from\ndifferent projects that are released under various different licenses. REUSE\nmake it easier for us to declare the licenses under which our works are\nreleased, but they also make it easier for a computer to understand how your\nproject is licensed. FOSSology currently uses old methods of defining licenses\non source files. Following the REUSE specs, the code base of FOSSology should\nbe updated with new licensing format."})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var o=t(67294);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a3727c48.08ca585f.js b/assets/js/a3727c48.08ca585f.js new file mode 100644 index 0000000000..9ad222b261 --- /dev/null +++ b/assets/js/a3727c48.08ca585f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1151],{43301:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=n(85893),t=n(11151);const r={title:"Week 11",author:"Abdelrahman Jamal"},l=void 0,a={id:"2023/copyrights/updates/2023-08-09",title:"Week 11",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-08-09.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-08-09",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-08-09.md",tags:[],version:"current",frontMatter:{title:"Week 11",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 10",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-02"},next:{title:"Week 12",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-16"}},o={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Datasets & Findings:",id:"datasets--findings",level:4},{value:"Model Performance:",id:"model-performance",level:4},{value:"External Datasets Testing:",id:"external-datasets-testing",level:4},{value:"Feature Extraction & LDA:",id:"feature-extraction--lda",level:4},{value:"Language Detection:",id:"language-detection",level:4},{value:"GitHub Repository:",id:"github-repository",level:4},{value:"Conclusion & Future Plans:",id:"conclusion--future-plans",level:2},{value:"Language Detection",id:"language-detection-1",level:3},{value:"Preprocessing Improvements",id:"preprocessing-improvements",level:3},{value:"Feature Extraction",id:"feature-extraction",level:3},{value:"Documentation",id:"documentation",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(August,09,2023)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsx)(s.h4,{id:"datasets--findings",children:"Datasets & Findings:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Dataset Corrections"}),": This week commenced with a detailed inspection of datasets which led to the rectification of various errors. The corrected datasets and predictions from the current model have been updated in ",(0,i.jsx)(s.a,{href:"https://docs.google.com/spreadsheets/d/132NnbJT4nqb-hxPX-XRFvUWTUg9SW0-ueW2YkpykgSk/edit?usp=sharing",children:"this spreadsheet"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Inconsistencies Addressed"}),": I found that the treatment of separate language rows varied across datasets. To maintain consistency, all such records have been treated as copyrights, requiring manual intervention later."]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Annotating Mistakes"}),": Through model predictions, I detected errors in dataset annotations. These errors have been fixed and the updates can be found in the aforementioned spreadsheet."]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Dataset Merging"}),": Given the presence of different languages across datasets, I decided to consolidate all datasets for training, setting aside 20% for testing. The new dataset comprises:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Class 0 (copyrights)"}),": 75.22% (16377 rows)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Class 1"}),": 24.77% (5393 rows)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Total rows"}),": 21770"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Additional Dataset"}),": Gaurav has provided an additional dataset comprising 26188 unique rows. I've yet to label this dataset."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h4,{id:"model-performance",children:"Model Performance:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"TF-IDF Vectorizer"}),": The model achieved significant results using the TF-IDF vectorizer, without additional preprocessing:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.32%"})," (52 out of 16377)"]}),"\n",(0,i.jsxs)(s.li,{children:["Class 1 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.61%"})," (33 out of 5393)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Preprocessing Enhancements"}),": I devised a preprocessing function which improved the model's performance. These enhancements include replacing digits, copyright symbols, emails, and more. This approach reduced the misclassifications:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0: ",(0,i.jsx)(s.strong,{children:"0.26%"})," (43 out of 16377)"]}),"\n",(0,i.jsxs)(s.li,{children:["Class 1: ",(0,i.jsx)(s.strong,{children:"0.82%"})," (44 out of 5393)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"TF-IDF Parameter Tweaking"}),": Further fine-tuning of TF-IDF parameters allowed the model to achieve:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.16%"})," (27 out of 16377)"]}),"\n",(0,i.jsxs)(s.li,{children:["Class 1 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.54%"})," (29 out of 5393)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Thresholding at 0.99"}),": Applying a threshold of 0.99 rendered impressive results:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.03%"})," (5 out of 16377)"]}),"\n",(0,i.jsxs)(s.li,{children:["Class 1 misclassifications: ",(0,i.jsx)(s.strong,{children:"4.6%"})," (248 out of 5393)"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h4,{id:"external-datasets-testing",children:"External Datasets Testing:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Fossology-provided-2 dataset"}),": Initial results on this dataset indicated:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.46%"})," (27 out of 5808)"]}),"\n",(0,i.jsx)(s.li,{children:"However, after manual inspection, only 12 were genuine misclassifications."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Dataset from Paper"}),": I tested the model on the dataset from ",(0,i.jsx)(s.a,{href:"https://doi.org/10.1587/transinf.2020EDL8089",children:"this paper"}),". The results were:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0 misclassifications: ",(0,i.jsx)(s.strong,{children:"0.09%"})," (2 out of 2146)"]}),"\n",(0,i.jsxs)(s.li,{children:["Class 1 misclassifications: ",(0,i.jsx)(s.strong,{children:"1.32%"})," (2 out of 151)"]}),"\n",(0,i.jsx)(s.li,{children:"Notably, the two misclassifications in class 1 were found to be correctly predicted by our model."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h4,{id:"feature-extraction--lda",children:"Feature Extraction & LDA:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Feature Extraction from Paper"}),": Implementing the paper's feature extraction method yielded the following results:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Class 0 misclassifications: ",(0,i.jsx)(s.strong,{children:"2.91%"})," (477 out of 16377)"]}),"\n",(0,i.jsxs)(s.li,{children:["Class 1 misclassifications: ",(0,i.jsx)(s.strong,{children:"6.93%"})," (374 out of 5393)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"LDA Analysis"}),": Leveraging LDA, I identified the 20 most frequent words in each class, offering insights for potential feature extraction enhancements."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h4,{id:"language-detection",children:"Language Detection:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"cld3 Limitation"}),": Although ",(0,i.jsx)(s.code,{children:"cld3"})," proved efficient, its ",(0,i.jsx)(s.code,{children:"Apache License 2.0"})," is incompatible with Fossology's ",(0,i.jsx)(s.code,{children:"GNU General Public License v2.0"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"spaCy's Model"}),": Despite utilizing spaCy's language detection model, many English rows were misclassified as non-English and vice versa."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h4,{id:"github-repository",children:"GitHub Repository:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["I've established a ",(0,i.jsx)(s.a,{href:"https://github.com/Hero2323/Fossology-Reducing-Copyrights",children:"GitHub repository"})," to store all project files."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"conclusion--future-plans",children:"Conclusion & Future Plans:"}),"\n",(0,i.jsx)(s.h3,{id:"language-detection-1",children:"Language Detection"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Investigate more efficient language detection methods."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"preprocessing-improvements",children:"Preprocessing Improvements"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Enhance preprocessing by using NER for name and organization replacements."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"feature-extraction",children:"Feature Extraction"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Delve deeper into feature extraction techniques."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"documentation",children:"Documentation"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Cleanup my documentation"}),"\n",(0,i.jsx)(s.li,{children:"Cleanup and update my GitHub repository."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>l});var i=n(67294);const t={},r=i.createContext(t);function l(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a4428ea9.cd847ed7.js b/assets/js/a4428ea9.cd847ed7.js new file mode 100644 index 0000000000..2c740ab0a9 --- /dev/null +++ b/assets/js/a4428ea9.cd847ed7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9154],{32686:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=t(85893),o=t(11151);const i={title:"Week 5",author:"Sushant Kumar"},l=void 0,c={id:"2023/cyclonedx/updates/2023-06-29",title:"Week 5",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-06-29.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-06-29",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-06-29.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 4",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-22"},next:{title:"Week 6",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-06"}},r={},d=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function a(e){const n={em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June,29,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"License Info Retrieval:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"This week, I successfully retrieved license information for each file from\nthe FOSSology database."}),"\n",(0,s.jsx)(n.li,{children:"Noteworthy, if a user designates a license as the main license for an\nupload, it will be added to the main component license in the report."}),"\n",(0,s.jsx)(n.li,{children:"However, if no main license is designated for an upload, the license\ninformation for the main component will not be added to the report."}),"\n",(0,s.jsx)(n.li,{children:"Additionally, if a user concludes a specific license for a component, only\nthe concluded license will be added to the report. Otherwise, all license\nfindings for that component will be included."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"CycloneDX Agent UI:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"I've been working on the UI part for the CycloneDX agent."}),"\n",(0,s.jsx)(n.li,{children:"As of now, the agent is running successfully from the FOSSology UI."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"In the coming weeks, my focus will be on improving the clarity and\ncomprehensibility of the code. Once these enhancements are made, I plan to\nsubmit a PR for adding CycloneDX agent."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>l});var s=t(67294);const o={},i=s.createContext(o);function l(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a451cadc.cc1ff217.js b/assets/js/a451cadc.cc1ff217.js new file mode 100644 index 0000000000..3a5ce694e5 --- /dev/null +++ b/assets/js/a451cadc.cc1ff217.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2373],{29799:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>a,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var t=i(85893),o=i(11151);const s={title:"Community bonding",author:"Divij Sharma"},r="Community Bonding",d={id:"2024/rest/updates/Divij/2024-05-07",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-05-07.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-05-07",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-05-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-05-07.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Divij Sharma"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/rest/"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-05-30"}},l={},c=[{value:"Introduction meeting",id:"introduction-meeting",level:2},{value:"Meeting 1",id:"meeting-1",level:2},{value:"During community bonding week 1",id:"during-community-bonding-week-1",level:2},{value:"Activities",id:"activities",level:3},{value:"Work done",id:"work-done",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"During community bonding week 2",id:"during-community-bonding-week-2",level:2},{value:"Activities",id:"activities-1",level:3},{value:"Work done",id:"work-done-1",level:3},{value:"Meeting 3",id:"meeting-3",level:2},{value:"During community bonding week 3",id:"during-community-bonding-week-3",level:2},{value:"Activities",id:"activities-2",level:3},{value:"Work done",id:"work-done-2",level:3},{value:"Meeting 4",id:"meeting-4",level:2}];function h(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,t.jsx)(n.h2,{id:"introduction-meeting",children:"Introduction meeting"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 7,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"This was the first meeting of the community bonding period for GSoC '24. Mentors and contributors introduced themselves, and the general meeting time and platform were decided."}),"\n",(0,t.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 9,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"This was the first general meeting after the introduction meeting. Mentors discussed the importance of communication and the need for regular updates. The contributors were free to ask any questions they had."}),"\n",(0,t.jsx)(n.h2,{id:"during-community-bonding-week-1",children:"During community bonding week 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 9,2024- May 15,2024)"})}),"\n",(0,t.jsx)(n.h3,{id:"activities",children:"Activities"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"I created an unofficial communication group with fellow contributors to get to know each other better."}),"\n",(0,t.jsx)(n.li,{children:"I discussed the project and the tasks that need to be completed during the coding period with the mentors."}),"\n",(0,t.jsx)(n.li,{children:"I clarified some of my doubts regarding the project timeline."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"work-done",children:"Work done"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"I was already familiar with the code-base because of my previous contributions to FOSSology. I started working on upgrading the REST APIs to version 2."}),"\n",(0,t.jsxs)(n.li,{children:["I fixed some minor bugs in the following of my uplink PRs related to the upgradation:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2711",children:"feat(api): Upgrade User & Group APIs to Version 2 "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2712",children:"feat(api): Upgrade Folder, License & Obligation APIs to Version 2"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 16,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"We discussed the progress made during the first week of community bonding. Mentors asked if contributors were able to set up their development environments and if they faced any issues. Everyone gave a brief overview of the tasks they were working on."}),"\n",(0,t.jsx)(n.h2,{id:"during-community-bonding-week-2",children:"During community bonding week 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 16,2024- May 22,2024)"})}),"\n",(0,t.jsx)(n.h3,{id:"activities-1",children:"Activities"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"I had calls with fellow contributors to help them set up their development environments."}),"\n",(0,t.jsxs)(n.li,{children:["I had a discussion with my colleague ",(0,t.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens"})," about how we shall manage our tasks."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"work-done-1",children:"Work done"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"I continued working on upgrading the REST APIs to version 2."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"I finalized the work on a new endpoint to retrieve user copyright findings and also upgraded Jobs and Report APIs to version 2."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2717",children:"feat(api): New endpoint to retrieve user copyright findings "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2736",children:"feat(api): Upgrade Jobs and Report APIs to Version 2 "})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 23,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"We discussed the progress made during the second week of the community bonding period. Mentors asked if contributors faced any issues while installing the project and encouraged us to make small contributions. We also decided on the time for project-specific weekly meetings."}),"\n",(0,t.jsx)(n.h2,{id:"during-community-bonding-week-3",children:"During community bonding week 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 23,2024- May 29,2024)"})}),"\n",(0,t.jsx)(n.h3,{id:"activities-2",children:"Activities"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"I helped few of my colleagues in setting up their development environments."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"work-done-2",children:"Work done"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"I continued working on upgrading the REST APIs to version 2."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"I upgraded the Search, Copyright & Admin APIs to Version 2."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2744",children:"feat(api): Upgrade Search, Copyright & Admin APIs to Version 2 "})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 30,2024)"})}),"\n",(0,t.jsx)(n.p,{children:"We discussed the progress made during the third week of the community bonding period. Mentors gave general updates followed by weekly updates by contributors. We had a session on how are we supposed to present and maintain our work during the coding period through the documentation."})]})}function a(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>d,a:()=>r});var t=i(67294);const o={},s=t.createContext(o);function r(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a49d0071.d2d4b559.js b/assets/js/a49d0071.d2d4b559.js new file mode 100644 index 0000000000..4c397a2a42 --- /dev/null +++ b/assets/js/a49d0071.d2d4b559.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3349],{67120:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=n(85893),t=n(11151);const r={title:"Week 2",author:"Omar AbdelSamea"},l="Coding Week 2",o={id:"2021/microservice/updates/2021-06-15",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-06-15.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-06-15",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-06-15.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-07"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-22"}},d={},c=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Meeting 0",id:"meeting-0-1",level:2},{value:"Organizer",id:"organizer-1",level:3},{value:"Attendees",id:"attendees-1",level:3},{value:"Outcomes",id:"outcomes-1",level:3},{value:"End of the week results",id:"end-of-the-week-results",level:2},{value:"Created the following deployments for Kubernetes",id:"created-the-following-deployments-for-kubernetes",level:3},{value:"Created the following services",id:"created-the-following-services",level:3}];function a(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"coding-week-2",children:"Coding Week 2"}),"\n",(0,i.jsx)(s.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,i.jsx)(s.h3,{id:"organizer",children:"Organizer"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(s.li,{children:"Vasudev Maduri"}),"\n",(0,i.jsx)(s.li,{children:"Kaushlendra Singh"}),"\n",(0,i.jsx)(s.li,{children:"Shreya Pratap"}),"\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea (Me) presented the initial implementation of Kubernetes cluster, config files and deployments."}),"\n",(0,i.jsx)(s.li,{children:"Gaurav suggested to schedule a meeting on Sunday to discuss how to modify schedule logic to work with single agent on each host instead of full set of agents on each host"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-0-1",children:"Meeting 0"}),"\n",(0,i.jsx)(s.h3,{id:"organizer-1",children:"Organizer"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Vasudev Maduri"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outcomes-1",children:"Outcomes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Discussed cluster architecture."}),"\n",(0,i.jsx)(s.li,{children:"Vasudev stated that creating a separate Kubernetes service for each agent won't be suitable with FOSSology"}),"\n",(0,i.jsxs)(s.li,{children:["Discussed an alternative of using ClusterIP service for each agent which is using ",(0,i.jsx)(s.a,{href:"https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/",children:"Kubernetes pods DNS"})," and ",(0,i.jsx)(s.a,{href:"https://kubernetes.io/docs/concepts/services-networking/service/#headless-services",children:"headless services"})]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,i.jsx)(s.h3,{id:"created-the-following-deployments-for-kubernetes",children:"Created the following deployments for Kubernetes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Web"}),"\n",(0,i.jsx)(s.li,{children:"Scheduler"}),"\n",(0,i.jsx)(s.li,{children:"Database"}),"\n",(0,i.jsx)(s.li,{children:"nomos"}),"\n",(0,i.jsx)(s.li,{children:"copyright"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"created-the-following-services",children:"Created the following services"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"NodePort service for DB"}),"\n",(0,i.jsx)(s.li,{children:"ClusterIP service for scheduler"}),"\n",(0,i.jsx)(s.li,{children:"ClusterIP for nomos"}),"\n",(0,i.jsx)(s.li,{children:"ClusterIP for copyright"}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Links: ",(0,i.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea/fossology/tree/OmarAbdelSamea/GSoC/K8s/k8s",children:"https://github.com/OmarAbdelSamea/fossology/tree/OmarAbdelSamea/GSoC/K8s/k8s"})]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>l});var i=n(67294);const t={},r=i.createContext(t);function l(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a5379a4b.28e0ce2d.js b/assets/js/a5379a4b.28e0ce2d.js new file mode 100644 index 0000000000..df414d876d --- /dev/null +++ b/assets/js/a5379a4b.28e0ce2d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2358],{85238:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=t(85893),a=t(11151);const o={title:"Week 1",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},r=void 0,i={id:"2022/ui/updates/soham/2022-06-24",title:"Week 1",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-06-24.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-06-24",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-06-24",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-06-24.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 1",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-06-02"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-07-3"}},l={},c=[{value:"All Recent Jobs Page",id:"all-recent-jobs-page",level:2},{value:"PR link - feature(ui): /allRecentJobs page completed",id:"pr-link---featureui-allrecentjobs-page-completed",level:3},{value:"My Recent Jobs Page",id:"my-recent-jobs-page",level:2},{value:"PR link - feature(ui): /myRecentJobs page completed",id:"pr-link---featureui-myrecentjobs-page-completed",level:3},{value:"Search in Browse Page",id:"search-in-browse-page",level:2},{value:"PR link - fix(browse): search bar function implemented ",id:"pr-link---fixbrowse-search-bar-function-implemented-",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"all-recent-jobs-page",children:"All Recent Jobs Page"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 16th, 2022)"})}),"\n",(0,n.jsxs)(s.p,{children:["Implementation of the All Recent Jobs page in the UI started.\nThe response from the ",(0,n.jsx)(s.code,{children:"/jobs"})," endpoint was used in order to get the data from the backend server"]}),"\n",(0,n.jsxs)(s.p,{children:["Response format of the API: ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.img,{alt:"Screenshot from 2022-06-24 10-04-12",src:t(98017).Z+"",width:"643",height:"342"})]}),"\n",(0,n.jsxs)(s.p,{children:["At first ",(0,n.jsx)(s.code,{children:"MDBReact"})," datatable was used to render the data but further discussions on optimising the page the idea was scrapped and ",(0,n.jsx)(s.code,{children:"X-Total-pages"})," header was used to get the data from the server in already paginated form."]}),"\n",(0,n.jsxs)(s.p,{children:["Final UI of the All Recent jobs page after the discussions looks like: ",(0,n.jsx)("br",{})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Screenshot from 2022-06-24 10-10-47",src:t(87179).Z+"",width:"1850",height:"1003"})}),"\n",(0,n.jsxs)(s.h3,{id:"pr-link---featureui-allrecentjobs-page-completed",children:["PR link - ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/223",children:"feature(ui): /allRecentJobs page completed"})]}),"\n",(0,n.jsx)(s.h2,{id:"my-recent-jobs-page",children:"My Recent Jobs Page"}),"\n",(0,n.jsxs)(s.p,{children:["The same API endpoint was used in My Recent Jobs page and the logged in user's UID was fetched from the ",(0,n.jsx)(s.code,{children:"getUserSelf()"})," function.\n",(0,n.jsx)(s.code,{children:"MDBReact"})," table was used here and this requires change to the same UI as of ",(0,n.jsx)(s.code,{children:"/allRecentJobs"})," page."]}),"\n",(0,n.jsxs)(s.h3,{id:"pr-link---featureui-myrecentjobs-page-completed",children:["PR link - ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/228",children:"feature(ui): /myRecentJobs page completed"})]}),"\n",(0,n.jsx)(s.h2,{id:"search-in-browse-page",children:"Search in Browse Page"}),"\n",(0,n.jsx)(s.p,{children:"There was a search-bar present in the Browse page but, there was no function implented to make the search work. Thus introduced a search function which filters the API response as per the query data and only renders the value which is asked by the user."}),"\n",(0,n.jsxs)(s.h3,{id:"pr-link---fixbrowse-search-bar-function-implemented-",children:["PR link - ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/230",children:"fix(browse): search bar function implemented "})]}),"\n",(0,n.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Currently will be impleneting the My Recent Jobs page and will be introducing a row style pagination navigator as discussed with the mentors."}),"\n",(0,n.jsxs)(s.li,{children:["The REST API for ",(0,n.jsx)(s.code,{children:"/jobs"})," endpoint also needs a rework as it needs to send the processes as a subgroup of its respective job rather than sending all the processes at once."]}),"\n",(0,n.jsx)(s.li,{children:"Other filters in the Browse page aslo needs to be implemented as the UI is ready but there is no funtion implemented."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},87179:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/alljobs_ui_sample-db5910acbfb5cb6e07268e421729c9b6.png"},98017:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/docs_api_res-b674d5af3e54afbc846fcbb7d9299054.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>i,a:()=>r});var n=t(67294);const a={},o=n.createContext(a);function r(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a66288bb.fa8a8445.js b/assets/js/a66288bb.fa8a8445.js new file mode 100644 index 0000000000..c32a95b39b --- /dev/null +++ b/assets/js/a66288bb.fa8a8445.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7422],{62828:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var n=t(85893),i=t(11151);const a={title:"Week 7",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},c=void 0,o={id:"2023/rest/updates/samuel/2023-07-13",title:"Week 7",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-07-13.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-07-13",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-07-13.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 7",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 6",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-06"},next:{title:"Week 8",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-20"}},r={},d=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Add, Edit and Toggle Standard License Comment API <code>/licenses/stdcomments</code>",id:"1-add-edit-and-toggle-standard-license-comment-api-licensesstdcomments",level:4},{value:"2. Search and Suggest License API <code>/licenses/suggest</code>",id:"2-search-and-suggest-license-api-licensessuggest",level:4},{value:"3. Verify a license as new or a variant API <code>/licenses/verify</code>",id:"3-verify-a-license-as-new-or-a-variant-api-licensesverify",level:4},{value:"4. Merge a license into an existing one API <code>/licenses/merge</code>",id:"4-merge-a-license-into-an-existing-one-api-licensesmerge",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function l(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Added the REST API to add, edit and toggle the standard license comment: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2518",children:"#2518"})]}),"\n",(0,n.jsxs)(s.li,{children:["Added the REST API to search and suggest license from the given reference text: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2524",children:"#2524"})]}),"\n",(0,n.jsxs)(s.li,{children:["Created the REST API to verify a license as new or a variant: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2528",children:"#2528"})]}),"\n",(0,n.jsxs)(s.li,{children:["Added the REST API to merge a license into an existing one: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2529",children:"#2529"})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,n.jsxs)(s.h4,{id:"1-add-edit-and-toggle-standard-license-comment-api-licensesstdcomments",children:["1. Add, Edit and Toggle Standard License Comment API ",(0,n.jsx)(s.code,{children:"/licenses/stdcomments"})]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"crud-stdcomments-req",src:t(42499).Z+"",width:"1431",height:"526"}),"\n",(0,n.jsx)(s.img,{alt:"crud-stdcomments-res",src:t(90058).Z+"",width:"1444",height:"719"})]}),"\n",(0,n.jsxs)(s.h4,{id:"2-search-and-suggest-license-api-licensessuggest",children:["2. Search and Suggest License API ",(0,n.jsx)(s.code,{children:"/licenses/suggest"})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"suggest-license",src:t(63786).Z+"",width:"928",height:"667"})}),"\n",(0,n.jsxs)(s.h4,{id:"3-verify-a-license-as-new-or-a-variant-api-licensesverify",children:["3. Verify a license as new or a variant API ",(0,n.jsx)(s.code,{children:"/licenses/verify"})]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"verify-as-new",src:t(29258).Z+"",width:"1244",height:"464"}),"\n",(0,n.jsx)(s.img,{alt:"verify-as-variant",src:t(71096).Z+"",width:"1510",height:"474"})]}),"\n",(0,n.jsxs)(s.h4,{id:"4-merge-a-license-into-an-existing-one-api-licensesmerge",children:["4. Merge a license into an existing one API ",(0,n.jsx)(s.code,{children:"/licenses/merge"})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"merge-license",src:t(21996).Z+"",width:"1511",height:"477"})}),"\n",(0,n.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Get the database contents for the dashboard overview."}),"\n",(0,n.jsx)(s.li,{children:"Get database metrics for the dashboard overview."}),"\n",(0,n.jsx)(s.li,{children:"Get active queries for the dashboard overview."}),"\n",(0,n.jsx)(s.li,{children:"Get disk space usage for the dashboard overview."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},42499:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/crud_stdcomments_req-c05cfc74887e3a2bd3f5a6715ce663a9.png"},90058:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/crud_stdcomments_res-fd4cf9718133f660a6fb6d191658bd56.png"},21996:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/merge_license-02ee1b801b1ea551026dbd1d1374902b.png"},63786:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/suggest_license-8d51ea2788480e04b16e133f6168ac56.png"},29258:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/verify_as_new-c962b1952de973007595036d46a457aa.png"},71096:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/verify_as_variant-b273bf8bac094b7b0b2f9c9fbacb9347.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>c});var n=t(67294);const i={},a=n.createContext(i);function c(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.bacd5c82.js b/assets/js/a6aa9e1f.bacd5c82.js new file mode 100644 index 0000000000..52e8e5e584 --- /dev/null +++ b/assets/js/a6aa9e1f.bacd5c82.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3089],{84351:(e,t,a)=>{a.r(t),a.d(t,{default:()=>f});a(67294);var n=a(36905),i=a(52263),r=a(8264),o=a(35281),s=a(61460),l=a(99703),d=a(90197),c=a(79985),g=a(35742),p=a(20136),u=a(85893);function m(e){const t=(0,p.C)(e);return(0,u.jsx)(g.Z,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function h(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:o,permalink:s}=t,l="/"===s?a:o;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.d,{title:l,description:n}),(0,u.jsx)(d.Z,{tag:"blog_posts_list"})]})}function b(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(s.Z,{sidebar:n,children:[(0,u.jsx)(c.Z,{items:a}),(0,u.jsx)(l.Z,{metadata:t})]})}function f(e){return(0,u.jsxs)(r.FG,{className:(0,n.Z)(o.k.wrapper.blogPages,o.k.page.blogListPage),children:[(0,u.jsx)(h,{...e}),(0,u.jsx)(m,{...e}),(0,u.jsx)(b,{...e})]})}},99703:(e,t,a)=>{a.d(t,{Z:()=>o});a(67294);var n=a(95999),i=a(32244),r=a(85893);function o(e){const{metadata:t}=e,{previousPage:a,nextPage:o}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(i.Z,{permalink:a,title:(0,r.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),o&&(0,r.jsx)(i.Z,{permalink:o,title:(0,r.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,a)=>{a.d(t,{Z:()=>o});a(67294);var n=a(9460),i=a(33665),r=a(85893);function o(e){let{items:t,component:a=i.Z}=e;return(0,r.jsx)(r.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,r.jsx)(n.n,{content:t,children:(0,r.jsx)(a,{children:(0,r.jsx)(t,{})})},t.metadata.permalink)}))})}},20136:(e,t,a)=>{a.d(t,{C:()=>c,i:()=>g});var n=a(44996),i=a(52263),r=a(65102);var o=a(9460);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(p);return{author:1===t.length?t[0]:t}}function d(e,t,a){return e?{image:u({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function c(e){const{siteConfig:t}=(0,i.Z)(),{withBaseUrl:a}=(0,n.C)(),{metadata:{blogDescription:r,blogTitle:o,permalink:c}}=e,g=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":g,mainEntityOfPage:g,headline:o,description:r,blogPost:e.items.map((e=>function(e,t,a){const{assets:n,frontMatter:i,metadata:r}=e,{date:o,title:c,description:g,lastUpdatedAt:p}=r,u=n.image??i.image,m=i.keywords??[],h=`${t.url}${r.permalink}`,b=p?s(p):void 0;return{"@type":"BlogPosting","@id":h,mainEntityOfPage:h,url:h,headline:c,name:c,description:g,datePublished:o,...b?{dateModified:b}:{},...l(r.authors),...d(u,a,c),...m?{keywords:m}:{}}}(e.content,t,a)))}}function g(){const e=function(){const e=(0,r.Z)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:a}=(0,o.C)(),{siteConfig:c}=(0,i.Z)(),{withBaseUrl:g}=(0,n.C)(),{date:p,title:u,description:m,frontMatter:h,lastUpdatedAt:b}=a,f=t.image??h.image,x=h.keywords??[],j=b?s(b):void 0,k=`${c.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":k,mainEntityOfPage:k,url:k,headline:u,name:u,description:m,datePublished:p,...j?{dateModified:j}:{},...l(a.authors),...d(f,g,u),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${c.url}${e.blogBasePath}`,name:e.blogTitle}}}function p(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function u(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}}}]); \ No newline at end of file diff --git a/assets/js/a7456010.bb650dbb.js b/assets/js/a7456010.bb650dbb.js new file mode 100644 index 0000000000..af1be74bb5 --- /dev/null +++ b/assets/js/a7456010.bb650dbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5980],{79365:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/a7a07b17.f06ed746.js b/assets/js/a7a07b17.f06ed746.js new file mode 100644 index 0000000000..7c4c9c1a26 --- /dev/null +++ b/assets/js/a7a07b17.f06ed746.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1175],{67537:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>o,frontMatter:()=>h,metadata:()=>a,toc:()=>c});var t=s(85893),i=s(11151);const h={title:"week-04",author:"Aaditya Singh"},r="Meeting 5",a={id:"2024/scheduler/updates/General/2024-05-30",title:"week-04",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/General/2024-05-30.md",sourceDirName:"2024/scheduler/updates/General",slug:"/2024/scheduler/updates/General/2024-05-30",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/General/2024-05-30.md",tags:[],version:"current",frontMatter:{title:"week-04",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/scheduler/"},next:{title:"week-06",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-13"}},l={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Mentors",id:"mentors",level:3},{value:"Contributors",id:"contributors",level:3}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 30, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,t.jsx)(n.h3,{id:"mentors",children:"Mentors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Provided general updates regarding the project. Reminded contributors to update the GSoC Documentation tool before the Thursday call."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Explained the rules and use of the GSoC Documentation tool, including how to contribute code and documentation."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"contributors",children:"Contributors"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"}),": Presented basic code to parse file text from FOSSology and prompt it to different LLMs. The LLMs provide license names and handle multiple licenses or return empty if no license is found. Currently assessing which LLM performs best."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"}),": Absent."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Completed FOSSology installation and created a pull request to enhance cross-platform compatibility and line encoding issues. Discussed with the mentor how to resolve an issue with the mimetype agent."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"}),": Exploring SPDX 3.0 JSON format and plans to open a pull request soon."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"}),": Investigated storing license expressions and proposed using Abstract Syntax. Has shared a document with mentors for decision-making."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"}),": Reported no major updates; currently exploring OAuth implementation via API."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"}),": Discussed general milestones for the CI/CD project during a call with mentors. Working on line number extraction and differential scans."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"}),": Limited updates, reviewed the concept regarding Monk-based text scanning and needs to discuss further how to start."]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var t=s(67294);const i={},h=t.createContext(i);function r(e){const n=t.useContext(h);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.e29e3484.js b/assets/js/a7bd4aaa.e29e3484.js new file mode 100644 index 0000000000..85608228a2 --- /dev/null +++ b/assets/js/a7bd4aaa.e29e3484.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8518],{8564:(n,s,e)=>{e.r(s),e.d(s,{default:()=>d});e(67294);var r=e(8264),o=e(43320),t=e(74477),c=e(18790),i=e(90197),u=e(85893);function a(n){const{version:s}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.Z,{version:s.version,tag:(0,o.os)(s.pluginId,s.version)}),(0,u.jsx)(r.d,{children:s.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:s,route:e}=n;return(0,u.jsx)(r.FG,{className:s.className,children:(0,u.jsx)(t.q,{version:s,children:(0,c.H)(e.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.9cf579bd.js b/assets/js/a94703ab.9cf579bd.js new file mode 100644 index 0000000000..6c7d6f1ab9 --- /dev/null +++ b/assets/js/a94703ab.9cf579bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4368],{12674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(67294),o=n(36905),i=n(8264),s=n(35281),l=n(52802),r=n(1116),c=n(95999),d=n(12466),u=n(85936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(85893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(91442),x=n(16550),f=n(87524),j=n(86668),k=n(21327);function v(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const _={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",_.collapseSidebarButton),onClick:t,children:(0,b.jsx)(v,{className:_.collapseSidebarButtonIcon})})}var C=n(59689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(86043),Z=n(48596),A=n(33692),L=n(72389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),v=(0,l._F)(t,i),_=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!v&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":_}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":v}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":_?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(13919),H=n(39471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(13102),X=n(72961);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(v,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var a=n(36905),o=n(95999),i=n(92503),s=n(85893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a94b7453.a7615653.js b/assets/js/a94b7453.a7615653.js new file mode 100644 index 0000000000..ce77ef1097 --- /dev/null +++ b/assets/js/a94b7453.a7615653.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8971],{34933:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>a});var s=i(85893),t=i(11151);const l={title:"Week 4",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},r=void 0,o={id:"2021/buildsystem/updates/2021-06-29",title:"Week 4",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-06-29.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-06-29",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-06-29.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 4",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-22"},next:{title:"Week 5",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-09"}},c={},a=[{value:"Meeting 7",id:"meeting-7",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 4 Progress",id:"week-4-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 8",id:"meeting-8",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"meeting-7",children:"Meeting 7"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 29th, 2021)"})}),"\n",(0,s.jsx)(n.p,{children:"In this seventh meeting question related to installing the FOSSology were discussed."}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"week-4-progress",children:"Week 4 Progress"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"CMake configuration files have been refactored to make each agent as a separate sub-project."}),"\n",(0,s.jsx)(n.li,{children:"VERSION files can be generated now during configure step"}),"\n",(0,s.jsx)(n.li,{children:"Version parsing logic implemented."}),"\n",(0,s.jsx)(n.li,{children:"VERSION and COMMIT_HASH added to every executables."}),"\n",(0,s.jsxs)(n.li,{children:["Installing part is complete except ",(0,s.jsx)("code",{children:"cli"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Symbolic Links are installing and working fine."}),"\n",(0,s.jsxs)(n.li,{children:["Version, Symbolic Links, ",(0,s.jsx)("code",{children:"VERSION"})," file generation, ",(0,s.jsx)("code",{children:"version.php"})," generation are now more modular and called via a single function for each agent"]}),"\n",(0,s.jsx)(n.li,{children:"Most dependencies are now moved to single configuration file."}),"\n",(0,s.jsx)(n.li,{children:"Vendor directory generation and installing are now working."}),"\n",(0,s.jsxs)(n.li,{children:["To test the current progress, follow the instructions ",(0,s.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"There are two types of replacements CMake can configure file with."})," ",(0,s.jsx)(n.code,{children:"@VARIABLE@"})," ",(0,s.jsx)(n.strong,{children:"and"})," ",(0,s.jsx)(n.code,{children:"${VARIABLE}"}),"\n",(0,s.jsx)(n.strong,{children:". Since in PHP"})," ",(0,s.jsx)(n.code,{children:"$variable"})," ",(0,s.jsx)(n.strong,{children:"is used, it may create problem for CMake replacements. So may I replace them?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Yeah sure, go ahead. It will be more robust."}),"\n",(0,s.jsxs)(n.li,{children:["The replacement of ",(0,s.jsx)(n.code,{children:"$VARIABLE"})," can be stopped by using ",(0,s.jsx)(n.code,{children:"@ONLY"})," option in ",(0,s.jsx)(n.code,{children:"configure_file(...)"})," command."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"How to generate vendor directory?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The code for generating vendor directory is in ",(0,s.jsx)(n.code,{children:"src/Makefile"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Before executing code for the generation, make sure to copy ",(0,s.jsx)(n.code,{children:"composer.json"})," and ",(0,s.jsx)(n.code,{children:"composer.lock"})," to the target directory."]}),"\n",(0,s.jsx)(n.li,{children:"There is also a patch that FOSSology needs to function as intended. Make sure to run that patch to check and apply."}),"\n",(0,s.jsxs)(n.li,{children:["For now, we generate ",(0,s.jsx)(n.em,{children:"vendor"})," while building, but it would be nice if it can be generated in the build step."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Currently I am generating the VERSION file in configure step itself. Should I move it to the build or install step?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Yeah, please move it to the build step. As in configure step the data might be outdated."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Is there any configuration for Release that we can use to install or test?"})," ",(0,s.jsx)(n.em,{children:"(Michael)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Yeah, there are 4 inbuilt configurations for various levels of optimization and can be applied to tests and installation."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Is the VERSION file is generated for each agent or whole project at once? Because in the latter case, the VERSION file can be generated as the last step."})," ",(0,s.jsx)(n.em,{children:"(Sarita)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"No agent has a VERSION file along with the main VERSION file for FOSSology."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"How I can build and install a single agent or component?"})," ",(0,s.jsx)(n.em,{children:"(Sarita)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"There are two ways you can build and install a specific agent or component only."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"The first one is quite simple. Just change your directory to the specific agent's directory and run all the usual commands for building and installing."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"The second one is a bit for typing work. This can be used directly from the top-level directory. After configuring the CMake, you can run the following command to install the specific component."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# for Unix Makefiles\nmake list_install_component # this will list all the available components\ncmake -DCOMPONENT=<component-name> -P cmake_install.cmake\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["I am writing a macro that will let us install a component by simply running ",(0,s.jsx)(n.code,{children:"make install component"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Implement generation of vendor directory."}),"\n",(0,s.jsx)(n.li,{children:"Move VERSION file generation to build step."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-8",children:"Meeting 8"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July 2nd, 2021)"})}),"\n",(0,s.jsx)(n.p,{children:"In this eighth meeting questions related to post install generation were asked. This was a short meeting."}),"\n",(0,s.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Why all the symbolic links in cli points to"})," ",(0,s.jsx)(n.code,{children:"fo_wrapper"})," ",(0,s.jsx)(n.strong,{children:"script?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"fo_wrapper"})," script calls the PHP script on the symbolic link that called the fo_wrapper. It also initializes any requirement before calling the scripts."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"How to generate all the other configuration in"})," ",(0,s.jsx)(n.code,{children:"/usr/local/etc/fossology"})," ",(0,s.jsx)(n.strong,{children:"directory?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["You can find the input files for all these configurations in the ",(0,s.jsx)(n.code,{children:"install/defcon"})," directory."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"What are"})," ",(0,s.jsx)(n.code,{children:"OBSOLETEFILES"})," ",(0,s.jsx)(n.strong,{children:"in"})," ",(0,s.jsx)(n.code,{children:"www/ui/Makefile"})," ",(0,s.jsx)(n.strong,{children:"?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"They are kept for compatibility purposes. Although they have been removed in the current versions of FOSSology, if a user installs a new version on top of an older instance, then we should explicitly remove those files."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"I have created a separate folder for generating vendor directory. Is that okay?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Yeah, it should be fine, But it would be better to rename it to something else. Or even better if moved to ",(0,s.jsx)(n.em,{children:"www"})," itself. Since these files are used by ",(0,s.jsx)(n.a,{href:"http://www",children:"www"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Move ",(0,s.jsx)(n.code,{children:"vendor"})," scripts to ",(0,s.jsx)(n.code,{children:"www"})," directory."]}),"\n",(0,s.jsx)(n.li,{children:"Implement installing for FOSSology cli."}),"\n",(0,s.jsx)(n.li,{children:"Implement installing configuration scripts."}),"\n",(0,s.jsx)(n.li,{children:"Finish installation for testing"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>r});var s=i(67294);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a96aad4c.040a2b63.js b/assets/js/a96aad4c.040a2b63.js new file mode 100644 index 0000000000..3aed58cf29 --- /dev/null +++ b/assets/js/a96aad4c.040a2b63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1534],{90767:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var i=t(85893),o=t(11151);const s={title:"Community bonding",author:"Valens Niyonsenga"},r="Community Bonding",d={id:"2024/rest/updates/valens/2024-05-07",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/rest/updates/valens/2024-05-07.md",sourceDirName:"2024/rest/updates/valens",slug:"/2024/rest/updates/valens/2024-05-07",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-05-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/valens/2024-05-07.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Valens Niyonsenga"},sidebar:"2024",previous:{title:"Week 8",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-16"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-05-30"}},c={},l=[{value:"Introduction meeting",id:"introduction-meeting",level:2},{value:"Meeting 1",id:"meeting-1",level:2},{value:"During community bonding week 1",id:"during-community-bonding-week-1",level:2},{value:"Activities",id:"activities",level:3},{value:"Work done",id:"work-done",level:3},{value:"Meeting 2",id:"meeting-2",level:2}];function a(e){const n={em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,i.jsx)(n.h2,{id:"introduction-meeting",children:"Introduction meeting"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 7,2024)"})}),"\n",(0,i.jsx)(n.p,{children:"We had the introductory meeting opening the community bonding for GSoC'24. All members, including mentors and contributors, introduced themselves and discussed more about the general meeting time and platform decision."}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 9,2024)"})}),"\n",(0,i.jsx)(n.p,{children:"After introductory meetinThis was our initial general meeting following the introductory session. The mentors emphasized the significance of maintaining communication and providing updates. Contributors were encouraged to ask any questions they had."}),"\n",(0,i.jsx)(n.h2,{id:"during-community-bonding-week-1",children:"During community bonding week 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 12,2024- May 18,2024)"})}),"\n",(0,i.jsx)(n.h3,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussed with mentors more about the project and the tasks that need to be completed."}),"\n",(0,i.jsx)(n.li,{children:"Got in touch with fellow contributors, sharing ideas on how we were going to approach our respective projects."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"work-done",children:"Work done"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I set up the project's development environment."}),"\n",(0,i.jsx)(n.li,{children:"Cleared some doubts and asked questions to understand the project better.."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 30,2024)"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Mentors asked for any updates from contributors."}),"\n",(0,i.jsx)(n.li,{children:"Mentors asked to update the documentation tool before joining the next call."}),"\n",(0,i.jsx)(n.li,{children:"Mentors explained about the GSoC tool documentation tool, different rules for the code, and documentation."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var i=t(67294);const o={},s=i.createContext(o);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a9eff1ed.96c5303e.js b/assets/js/a9eff1ed.96c5303e.js new file mode 100644 index 0000000000..1d77050753 --- /dev/null +++ b/assets/js/a9eff1ed.96c5303e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8187],{75183:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>h,toc:()=>l});var i=s(85893),t=s(11151);const r={title:"week-07",author:"Aaditya Singh"},a=void 0,h={id:"2024/scheduler/updates/Discussion/2024-06-21",title:"week-07",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/Discussion/2024-06-21.md",sourceDirName:"2024/scheduler/updates/Discussion",slug:"/2024/scheduler/updates/Discussion/2024-06-21",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/Discussion/2024-06-21.md",tags:[],version:"current",frontMatter:{title:"week-07",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-06",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14"},next:{title:"week-08",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28"}},o={},l=[{value:"Participants",id:"participants",level:2},{value:"Mentors",id:"mentors",level:3},{value:"Contributors",id:"contributors",level:3},{value:"Discussion:",id:"discussion",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h1,{id:"meeting-12",children:"Meeting 12"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 21,2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"participants",children:"Participants"}),"\n",(0,i.jsx)(n.h3,{id:"mentors",children:"Mentors"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"contributors",children:"Contributors"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Contributor:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Presented a thorough analysis of a use case, identifying several important aspects:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Clear separation of dependent and independent job queues."}),"\n",(0,i.jsx)(n.li,{children:"Implementation of a rate limiter using a sliding window log."}),"\n",(0,i.jsx)(n.li,{children:"Application of semaphores for queue synchronization."}),"\n",(0,i.jsxs)(n.li,{children:["Integration of feedback through ",(0,i.jsx)(n.em,{children:(0,i.jsx)(n.a,{href:"https://www.influxdata.com/time-series-platform/telegraf/",children:"Telegraf"})}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"golang_architecture",src:s(81145).Z+"",width:"1097",height:"747"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"\u26a0\ufe0f In the diagram above, mutexes and channels for synchronization haven't been considered yet. Introducing single semaphore into the diagram might undermine the goal of achieving parallelism in extreme situations."}),"\n"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Concluded that the architecture faces several challenges:","\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Potential deadlocks from using multiple semaphores."}),"\n",(0,i.jsx)(n.li,{children:"Limitations of using a single semaphore under certain conditions affecting multiprogramming."}),"\n",(0,i.jsx)(n.li,{children:"The need for a load balancer to prioritize users based on their analysis needs or project size."}),"\n",(0,i.jsx)(n.li,{children:"Establishment of a heartbeat mechanism to monitor system performance."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Mentors"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": Discussed the potential deadlock issues with the use of multiple semaphores."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Suggested the implementation of a heartbeat system, possibly through Grafana, to oversee system health."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"}),": Asked about the scalability of the current approach given the project size and complexity."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Proposed integrating a priority mechanism within the dependent queue to optimize processing time for smaller or less complex projects."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"\u2139\ufe0f: Additional studies and enhancements are considered for these areas."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},81145:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/golang_arch-845b2fcaba867fd8c16c3061cf774283.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>h,a:()=>a});var i=s(67294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aa55d53c.b5b34a8f.js b/assets/js/aa55d53c.b5b34a8f.js new file mode 100644 index 0000000000..08778c25e6 --- /dev/null +++ b/assets/js/aa55d53c.b5b34a8f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5413],{80482:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=i(85893),r=i(11151);const t={title:"Week 9",author:"Shruti Agarwal"},a=void 0,c={id:"2021/ui/updates/shruti/2021-08-10",title:"Week 9",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-08-10.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-08-10",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-10",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-08-10.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-03"},next:{title:"Week 10",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-08-17"}},d={},l=[{value:"Screenshots",id:"screenshots",level:2},{value:"Search Pagination",id:"search-pagination",level:3},{value:"Software Heritage Details",id:"software-heritage-details",level:3},{value:"Copyright Browser",id:"copyright-browser",level:3},{value:"File Browser",id:"file-browser",level:3},{value:"ECC",id:"ecc",level:3},{value:"License Browser",id:"license-browser",level:3},{value:"Fixed Snackbar",id:"fixed-snackbar",level:3},{value:"Search API",id:"search-api",level:3},{value:"Contributions",id:"contributions",level:2}];function o(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["No fallback condition is there if no upload is selected in move or copy.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Added the condition for move upload and copy upload."}),"\n",(0,n.jsx)(s.li,{children:"Added the spinner in buttons."}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Added the browsing of uploads with folders. Closes ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/issues/131",children:"#131"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"Studied API architecture of Fossology."}),"\n",(0,n.jsxs)(s.li,{children:["Added pagination in ",(0,n.jsx)(s.code,{children:"/search"})," request. Closes ",(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues/1",children:"#1"}),".","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Added the page and limit as header in ",(0,n.jsx)(s.code,{children:"searchController.php"})]}),"\n",(0,n.jsxs)(s.li,{children:["Updated the maxperpage in ",(0,n.jsx)(s.code,{children:"search-helper.php"})]}),"\n",(0,n.jsx)(s.li,{children:"Returned the total number of pages in search result."}),"\n",(0,n.jsxs)(s.li,{children:["Updated the ",(0,n.jsx)(s.code,{children:"openapi.yaml"})," with the mentioned changes."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Fixed the version in ",(0,n.jsx)(s.code,{children:"openapi.yaml"})," closes ",(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/11",children:"#10"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"Added the pagination in search page. Since new api exposed the pages and limit params."}),"\n",(0,n.jsxs)(s.li,{children:["Added the pages for browseUploads:","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Software Heritage"}),"\n",(0,n.jsx)(s.li,{children:"License Browser"}),"\n",(0,n.jsx)(s.li,{children:"File Browser"}),"\n",(0,n.jsx)(s.li,{children:"Copyright"}),"\n",(0,n.jsx)(s.li,{children:"ECC"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"Added the browse Uploads separate header."}),"\n",(0,n.jsxs)(s.li,{children:["The ui is shifting down whenever the snackbar is appearing which leads to bad user experience.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Added the styling for keeping the snackbar fixed."}),"\n",(0,n.jsx)(s.li,{children:"Fixed all the pages."}),"\n",(0,n.jsx)(s.li,{children:"Shifted snackbar code inside main container to remove the flicker effect."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,n.jsx)(s.h3,{id:"search-pagination",children:"Search Pagination"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"search-pagination",src:i(79395).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"software-heritage-details",children:"Software Heritage Details"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"software-heritage-details",src:i(34687).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"copyright-browser",children:"Copyright Browser"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"copyright-browser",src:i(64557).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"file-browser",children:"File Browser"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"file-browser",src:i(27877).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"ecc",children:"ECC"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"ecc",src:i(39894).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"license-browser",children:"License Browser"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"license-browser",src:i(43433).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"fixed-snackbar",children:"Fixed Snackbar"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"fixed-snackbar",src:i(41060).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"fixed-snackbar-search",src:i(22582).Z+"",width:"1920",height:"1080"})}),"\n",(0,n.jsx)(s.h3,{id:"search-api",children:"Search API"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"search-api-postman",src:i(92657).Z+"",width:"1425",height:"771"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"search-api-swagger",src:i(85599).Z+"",width:"667",height:"503"})}),"\n",(0,n.jsx)(s.h2,{id:"contributions",children:"Contributions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/133",children:"fix(uplods-move-copy): added the fallback condition"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/136/commits/9136e849cc07357d450ed57fb19a640b629668ab",children:"feat(browse): added the browsing of uploads with folders"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/136/commits/1a1b96e202c35037b1d479c875677ecae90c2ebe",children:"fix(browse): fixed the ui and recursive call"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/137",children:"feat(search): added the pagination in search page"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/139/commits/09881cedffd835335692a1c2b392c9eda6bb97f9",children:"feat(browseUploads): added the header and pages"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/139/commits/24e76019c8e156850a61e019ac2ef5f191319a6f",children:"feat(header): added header for browse uploads"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/139/commits/2e6a49456e57420e4e23a016f58d5d0755c41adf",children:"fix(style): fixed the styling of header"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/144",children:"fix(ui): fixed the snackbar now ui not shifting"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/9",children:"feat(rest): added the pagination in search request"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/11",children:"fix(version): fixed the version in openapi.yaml"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},92657:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/searchPostman-ec037b1388b9ed18cd6b6d223b948678.png"},85599:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/searchSwagger-ec95c9faa3d35d6513f6336c98eaefce.png"},64557:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/copyrightBrowser-1cdee5a37cfa9e0666afc27cf8a0e90a.png"},39894:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/ecc-b63ca5a281b3a2587c00093b3cc45e7c.png"},27877:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/fileBrowser-999c42d67e4be69110f85cb64faab8cb.png"},43433:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/licenseBrowser-46eef0e1b48954e030ff36c33342209d.png"},34687:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/softwareHeritage-e9cef5fb1515b7acfa6ca863271f2ec3.png"},79395:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/searchPagination-cec65f26d18968307cc4b26a642210e4.png"},41060:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/fixedSnackbar-46efd6d1cbfc473d11fd98ba1a16df3b.png"},22582:(e,s,i)=>{i.d(s,{Z:()=>n});const n=i.p+"assets/images/fixedSnackbarSearch-7dfd1fda24b3e226b8e5efe2ffeb5568.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>c,a:()=>a});var n=i(67294);const r={},t=n.createContext(r);function a(e){const s=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aa70e1cd.849da262.js b/assets/js/aa70e1cd.849da262.js new file mode 100644 index 0000000000..5ff875f455 --- /dev/null +++ b/assets/js/aa70e1cd.849da262.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6118],{81065:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>r,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>o});var i=s(85893),t=s(11151);const a={title:"week-08",author:"Aaditya Singh"},r="Meeting 16",c={id:"2024/scheduler/updates/Discussion/2024-06-28",title:"week-08",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/Discussion/2024-06-28.md",sourceDirName:"2024/scheduler/updates/Discussion",slug:"/2024/scheduler/updates/Discussion/2024-06-28",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/Discussion/2024-06-28.md",tags:[],version:"current",frontMatter:{title:"week-08",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-07",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21"},next:{title:"week-09",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05"}},h={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-16",children:"Meeting 16"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 28,2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),":"]}),"\n",(0,i.jsx)(n.p,{children:"Shared the updated architecture of the Scheduler via this link for team review:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(43356).Z+"",children:"Scheduler Architecture"})}),"\n",(0,i.jsx)(n.p,{children:"Detailed enhancements to overcome specific challenges:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Deadlock handling through channels facilitating communication between two semaphores, intended to transmit data structures, ideally integers representing user IDs or group IDs."}),"\n",(0,i.jsx)(n.li,{children:"Addressing race conditions among go-routines."}),"\n",(0,i.jsx)(n.li,{children:"Implementing a heartbeat mechanism between go-routines and a load balancer, utilizing channels to check the state of go-routines, returning a boolean value to minimize overhead in frequent signaling."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Emphasized the importance of package size as a critical parameter in Fossology, suggesting communication to users about partitioning large packages or providing a UI page for package size-related settings."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(94367).Z+"",children:"Admin Scheduler"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"}),": Questioned the criteria for determining whether packages are of larger or smaller size before processing begins."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Clarified that the ",(0,i.jsx)(n.code,{children:"Unpackage"})," agent determines the package size, stating that the current setup looks promising and encouraged starting coding for further enhancements."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"}),": Inquired about the possibility of pausing smaller packages as a form of context switching."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Noted that context switching is currently handled under go-routines, which are synchronized per user, making pausing not feasible at the moment."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Suggested the development of a web page to make informed decisions based on package size."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),": Complimented the improvements from the previous version and recommended proceeding with coding."]}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43356:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/files/golang_arch-845b2fcaba867fd8c16c3061cf774283.png"},94367:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/files/set_priority-eb0c34d744c59123327d1bb5aa8ca510.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>r});var i=s(67294);const t={},a=i.createContext(t);function r(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aae3891b.15c28b44.js b/assets/js/aae3891b.15c28b44.js new file mode 100644 index 0000000000..7eec087b39 --- /dev/null +++ b/assets/js/aae3891b.15c28b44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8632],{2955:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var i=s(85893),r=s(11151);const o={sidebar_position:3,title:"Setup"},c=void 0,l={id:"2021/microservice/setup",title:"Setup",description:"\x3c!--",source:"@site/docs/2021/microservice/setup.md",sourceDirName:"2021/microservice",slug:"/2021/microservice/setup",permalink:"/gsoc/docs/2021/microservice/setup",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/setup.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Setup"},sidebar:"2021",previous:{title:"Week 10",permalink:"/gsoc/docs/2021/microservice/updates/2021-08-17"},next:{title:"Docker Images",permalink:"/gsoc/docs/2021/microservice/dockerImages"}},t={},d=[];function a(e){const n={a:"a",code:"code",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Install and run Kubernetes"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["install ",(0,i.jsx)(n.a,{href:"https://minikube.sigs.k8s.io/docs/start/",children:"minikube"})," or any alternative (k3s, kind, etc..)"]}),"\n",(0,i.jsxs)(n.li,{children:["after succesful installation:","\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["run ",(0,i.jsx)(n.code,{children:"minikube start"})]}),"\n",(0,i.jsxs)(n.li,{children:["run ",(0,i.jsx)(n.code,{children:"eval $(minikube -p minikube docker-env)"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["clone forked fossology repo ",(0,i.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea/fossology",children:"https://github.com/OmarAbdelSamea/fossology"})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"checkout to OmarAbdelSamea/GSoC/Microservices branch"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add all images to your machine"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Option 1 (Suggested for testing)","\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Download ",(0,i.jsx)(n.code,{children:"fossology_images.tar"})," from ",(0,i.jsx)(n.a,{href:"https://drive.google.com/file/d/16lMpzCzTCGyDzh3z2ebQ56sK2a9SoWjt/view?usp=sharing",children:"here"})]}),"\n",(0,i.jsxs)(n.li,{children:["run ",(0,i.jsx)(n.code,{children:"docker load -i fossology_images.tar"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Option 2","\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"cd Docker"})}),"\n",(0,i.jsxs)(n.li,{children:["Build all docker images. the list of all docker images will be found in ",(0,i.jsx)(n.a,{href:"/gsoc/docs/2021/microservice/dockerImages",children:"Docker Images"})," wiki page"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"cd .."})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["run ",(0,i.jsx)(n.code,{children:"kubectl apply -f k8s/"})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"got to UI"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["if you are using minikube run ",(0,i.jsx)(n.code,{children:"minikube service web"})," and the UI will be opened in the default browser"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["to delete an agent from the cluster run ",(0,i.jsx)(n.code,{children:"bash k8s/fo_delete.sh -a <agent-name>"})]}),"\n"]}),"\n"]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>c});var i=s(67294);const r={},o=i.createContext(r);function c(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ab61ba2a.2bc29564.js b/assets/js/ab61ba2a.2bc29564.js new file mode 100644 index 0000000000..208af65535 --- /dev/null +++ b/assets/js/ab61ba2a.2bc29564.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1218],{13637:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var i=s(85893),t=s(11151);const r={title:"Week 8",author:"Shreya Singh"},a="Coding Week-8 Meeting",l={id:"2021/minerva/updates/2021-08-03",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-08-03.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-08-03",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-08-03.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-27"},next:{title:"Week 9",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-10"}},h={},o=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week-8 Progress",id:"week-8-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"coding-week-8-meeting",children:"Coding Week-8 Meeting"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"To implement itertools combination for initial splitting of licenses."}),"\n",(0,i.jsx)(n.li,{children:"This approach works well for licenses less than 20 paras but not for larger licenses."}),"\n",(0,i.jsxs)(n.li,{children:["Reuse the ",(0,i.jsx)(n.a,{href:"https://github.com/hastagAB/SPDX-OSS-Dataset/pull/1/commits/24ce5ddc16aa4d23d99c34180994a9dddcb8feca",children:"Split"})," script."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-8-progress",children:"Week-8 Progress"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Implemented itertools and ngram on two different length licenses in ",(0,i.jsx)(n.a,{href:"https://colab.research.google.com/drive/1V_tKjdpfuOqZxIpwYk7MNVZE_sjZYhrK?usp=sharing",children:"notebook"})]}),"\n",(0,i.jsx)(n.li,{children:"Downloaded SPDX released licenses, licenseListVersion:3.14 and implemented my script on these licenses."}),"\n",(0,i.jsxs)(n.li,{children:["Updated ",(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation",children:"Minerva-Dataset"})," repository."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsx)(n.p,{children:"To get a count of all the license files generated using different approaches for intial split."})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>a});var i=s(67294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ab75e5ae.dd3a2df1.js b/assets/js/ab75e5ae.dd3a2df1.js new file mode 100644 index 0000000000..7534130473 --- /dev/null +++ b/assets/js/ab75e5ae.dd3a2df1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7279],{46672:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>r,toc:()=>o});var i=s(85893),l=s(11151);const c={title:"Week 8",author:"Sarita Singh"},d=void 0,r={id:"2021/scancode/updates/2021-07-27",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-07-27.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-07-27",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-07-27.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Sarita Singh"},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-20"},next:{title:"Installing scancode",permalink:"/gsoc/docs/2021/scancode/installation"}},t={},o=[{value:"Coding Week 8 Meeting 1",id:"coding-week-8-meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 7 Progress",id:"week-7-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Coding Week 8 Meeting 2",id:"coding-week-8-meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-8-meeting-1",children:"Coding Week 8 Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-27"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-7-progress",children:"Week 7 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Added boost ",(0,i.jsx)(n.code,{children:"program_options"})," library to get scan flags."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Changed state class of ScanCode agent to include ",(0,i.jsx)(n.code,{children:"cliOptions"})," along with ",(0,i.jsx)(n.code,{children:"agentId"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Upload from ",(0,i.jsx)(n.code,{children:"VCS"})," is working now for ScanCode and other ",(0,i.jsx)(n.code,{children:"parameterize"})," agents."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Working upon email/url/author tabs ",(0,i.jsx)(n.code,{children:"cookies"}),", they are not working as expected."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Added parameters for ScanCode Toolkit in the upload section."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:s(27261).Z+"",width:"1854",height:"1048"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Flags are inserted in the ",(0,i.jsx)(n.code,{children:"jobqueue"})," table under ",(0,i.jsx)(n.code,{children:"jq_cmd_args"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Upload from version control is not working for ScanCode with new parameters."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Under Email/URL/Author bulk view, sticky tabs are not working correctly."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Whenever we refresh the page, active tab according to cookies is not sync with UI."}),"\n",(0,i.jsx)(n.li,{children:"Gaurav would see the code if it can be fixed."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"cmd_args"})," for ScanCode will have prefix as ",(0,i.jsx)(n.code,{children:"scan="})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Upload from VCS have agents schedules in two levels as shown below"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:s(36872).Z+"",width:"1853",height:"421"})}),"\n",(0,i.jsx)(n.p,{children:"Gaurav confirmed it to be normal as levels of schedules depends on the scheduler working."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"scheduleAgents function in php code has"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add ScanCode in copyright single file view along with FOSSology copyright agent."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"There would be two sticky tabs each for ScanCode and FOSSology in the single file view under scanners findings."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Fix schedule tabs for ScanCode and FOSSology"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:s(23683).Z+"",width:"1850",height:"308"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"coding-week-8-meeting-2",children:"Coding Week 8 Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-31"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["List of tasks remains:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Minimum score fix to 50"}),"\n",(0,i.jsx)(n.li,{children:"Error handling in ScanCode"}),"\n",(0,i.jsx)(n.li,{children:"URL tabs fix"}),"\n",(0,i.jsx)(n.li,{children:"Installation script for ScanCode"}),"\n",(0,i.jsx)(n.li,{children:"Initial PR for integrating ScanCode-Toolkit to FOSSology"}),"\n",(0,i.jsx)(n.li,{children:"Custom template PR(ScanCode toolkit project)"}),"\n",(0,i.jsx)(n.li,{children:"Create a ScanCode plugin to get license text"}),"\n",(0,i.jsx)(n.li,{children:"Copyright agent schedule"}),"\n",(0,i.jsx)(n.li,{children:"code refactoring"}),"\n",(0,i.jsx)(n.li,{children:"Write tests for scancode agent"}),"\n",(0,i.jsx)(n.li,{children:"Copyright Highlight"}),"\n",(0,i.jsx)(n.li,{children:"Complete CLI for scancode agent"}),"\n",(0,i.jsx)(n.li,{children:"Integrate scancode copyright in the report"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"This list of tasks are according to priority"}),"\n",(0,i.jsx)(n.li,{children:"complete first four tasks and raise an initial pr ASAP"}),"\n",(0,i.jsx)(n.li,{children:"It would be easier to review code with pr and suggest changes needed"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},23683:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/schedule-adb6ca8137064efa46be59a435a7af4d.png"},27261:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/upload_file-7745bab7013315c6cb4baa78ae72d3c9.png"},36872:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/vcs_job-a23876c475d419d662483bdd242e19d2.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>d});var i=s(67294);const l={},c=i.createContext(l);function d(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aba21aa0.f41d8e67.js b/assets/js/aba21aa0.f41d8e67.js new file mode 100644 index 0000000000..12ea6b219c --- /dev/null +++ b/assets/js/aba21aa0.f41d8e67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3629],{41765:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/ac0d1e06.648dab39.js b/assets/js/ac0d1e06.648dab39.js new file mode 100644 index 0000000000..5fbcffb293 --- /dev/null +++ b/assets/js/ac0d1e06.648dab39.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6200],{32857:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>h,toc:()=>l});var n=s(85893),a=s(11151);const i={title:"Week 9",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,h={id:"2022/atarashi/updates/2022-08-09",title:"Week 9",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-08-09.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-08-09",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-08-09.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 9",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 8",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-02"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-16"}},o={},l=[{value:"Meeting 11",id:"meeting-11",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Updates",id:"updates",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"meeting-11",children:"Meeting 11"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.em,{children:"(August 11th, 2022)"})}),"\n",(0,n.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"updates",children:"Updates"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Created a report of my project for final evaluation. Report can be seen ",(0,n.jsx)(t.a,{href:"https://github.com/its-sushant/GSoC-22",children:"here"})]}),"\n",(0,n.jsxs)(t.li,{children:["Traning of ",(0,n.jsx)(t.a,{href:"https://radimrehurek.com/gensim/models/doc2vec.html",children:"Doc2vec Model"})," is on hold for now because the model\nis taking too long to train."]}),"\n",(0,n.jsxs)(t.li,{children:["Started learning transformers for implementing it on ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"minerva dataset"})]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"As the main part of my project is completed and currently I am working on some optional part of the project, will\nwork accordingly as per the suggestions from mentors."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>h,a:()=>r});var n=s(67294);const a={},i=n.createContext(a);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/acecf23e.0fa7fbfb.js b/assets/js/acecf23e.0fa7fbfb.js new file mode 100644 index 0000000000..2024cecde7 --- /dev/null +++ b/assets/js/acecf23e.0fa7fbfb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1454],{81838:s=>{s.exports=JSON.parse('{"blogBasePath":"/gsoc/blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/ad41fe21.ce8ca5de.js b/assets/js/ad41fe21.ce8ca5de.js new file mode 100644 index 0000000000..4eb76f1f81 --- /dev/null +++ b/assets/js/ad41fe21.ce8ca5de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4604],{36569:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=t(85893),s=t(11151);const r={title:"Week 16",author:"Abdelrahman Jamal"},l=void 0,o={id:"2023/copyrights/updates/2023-09-13",title:"Week 16",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-09-13.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-09-13",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-09-13.md",tags:[],version:"current",frontMatter:{title:"Week 16",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 15",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-06"},next:{title:"Week 17",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-20"}},d={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. Dataset Cleanup:",id:"1-dataset-cleanup",level:3},{value:"2. Fine-tuning and Testing:",id:"2-fine-tuning-and-testing",level:3},{value:"Conclusion and Future Plans:",id:"conclusion-and-future-plans",level:2},{value:"1. Fossology Integration:",id:"1-fossology-integration",level:3},{value:"2. Decluttering Process:",id:"2-decluttering-process",level:3}];function a(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(September,13,2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsx)(n.h3,{id:"1-dataset-cleanup",children:"1. Dataset Cleanup:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Initiated code to clean the conll2003 dataset as mentioned in week 14:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Merged ",(0,i.jsx)(n.code,{children:"PER"})," and ",(0,i.jsx)(n.code,{children:"ORG"})," entities."]}),"\n",(0,i.jsxs)(n.li,{children:["Discarded ",(0,i.jsx)(n.code,{children:"LOC"})," and ",(0,i.jsx)(n.code,{children:"MISC"})," entities since they are not pertinent to my requirements."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"2-fine-tuning-and-testing",children:"2. Fine-tuning and Testing:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Conducted another round of fine-tuning using 750 examples from my dataset and assessed the NER model's performance within my preprocessing function.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Noticed a slight dip in performance due to obfuscation of repetitive copyright holder names in the dataset."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Labeled an additional 750 examples, totaling slightly over 1500, and fine-tuned the primary model with this data.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The model, while proficient, occasionally mislabeled non-copyright sentences as ",(0,i.jsx)(n.code,{children:"ENT"})," (the copyright holder entity), potentially increasing false positives."]}),"\n",(0,i.jsxs)(n.li,{children:["Below are some detection results using the dataset from the feature extraction paper to test on unseen examples (detected entities are highlighted):","\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Copyright (C) 2017 ",(0,i.jsx)(n.code,{children:"DENX Software Engineering"})]}),"\n",(0,i.jsxs)(n.li,{children:["Copyright (C) ",(0,i.jsx)(n.code,{children:"IBM Corporation"})," 2016"]}),"\n",(0,i.jsxs)(n.li,{children:["Copyright (c) 2000-2005 ",(0,i.jsx)(n.code,{children:"Vojtech Pavlik"})," <",(0,i.jsx)(n.a,{href:"mailto:vojtech@suse.cz",children:"vojtech@suse.cz"}),">"]}),"\n",(0,i.jsxs)(n.li,{children:["Copyright (c) 2009, ",(0,i.jsx)(n.code,{children:"Microsoft Corporation"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Copyright (C) ST-Ericsson 2010 - 2013 (Entity missed)"}),"\n",(0,i.jsxs)(n.li,{children:["Copyright (c) 2012 ",(0,i.jsx)(n.code,{children:"Steffen Trumtrar"})," <",(0,i.jsx)(n.a,{href:"mailto:s.trumtrar@pengutronix.de",children:"s.trumtrar@pengutronix.de"}),">, ",(0,i.jsx)(n.code,{children:"Pengutronix"})]}),"\n",(0,i.jsxs)(n.li,{children:["Copyright 2008 ",(0,i.jsx)(n.code,{children:"GE Intelligent Platforms Embedded Systems"}),", Inc."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"The model detected the majority of entities, missing less than 5%."}),"\n",(0,i.jsx)(n.li,{children:"Adopted semi-supervised training by using the preceding model to label the entire dataset and trained on it. This refined model, now in use, missed under 1% of the copyright holder entities in the same test set."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-future-plans",children:"Conclusion and Future Plans:"}),"\n",(0,i.jsx)(n.h3,{id:"1-fossology-integration",children:"1. Fossology Integration:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Aim to integrate the false positive copyright detection code into Fossology."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"2-decluttering-process",children:"2. Decluttering Process:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Initiate the decluttering procedure, which will bear similarities to the copyright holder entity detection process."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>l});var i=t(67294);const s={},r=i.createContext(s);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ae515947.d9ae3f91.js b/assets/js/ae515947.d9ae3f91.js new file mode 100644 index 0000000000..9a4730e1fb --- /dev/null +++ b/assets/js/ae515947.d9ae3f91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[976],{66398:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>h,metadata:()=>r,toc:()=>d});var t=s(85893),i=s(11151);const h={sidebar_position:12,title:"Week 12"},a=void 0,r={id:"2022/minutes/18-08-2022",title:"Week 12",description:"\x3c!--",source:"@site/docs/2022/minutes/18-08-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/18-08-2022",permalink:"/gsoc/docs/2022/minutes/18-08-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/18-08-2022.md",tags:[],version:"current",sidebarPosition:12,frontMatter:{sidebar_position:12,title:"Week 12"},sidebar:"2022",previous:{title:"Week 11",permalink:"/gsoc/docs/2022/minutes/11-08-2022"},next:{title:"Week 13",permalink:"/gsoc/docs/2022/minutes/25-08-2022"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function o(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 18-08-2022."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Discussion/KT on database has been done by ",(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})," on 16th and 17th august."]}),"\n",(0,t.jsx)(n.li,{children:"In person meeting didnt happen as most of the mentors and org Admins and on vacation."}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})," asked students to send updates via message through slack."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"No Updates."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"No Updates."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"No Updates."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"No Updates."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"In the past week I have been following your database sessions and trying to understand the database of the fossology more. I was working on all the raised PRs and updated them with the changes requested by the respective mentors. I was also working on a method to display the clearing decision on the UI itself. Will raise a PR for this as soon as the PR for the backend is merged. In addition to that I was able to plan out a way to return the number of decisions to be cleared for each file name and will try to implement them soon. Also I am currently lagging behind in the gsoc docs section which I plan to clear it out asap."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Integrated Fossology Maintenance Page, Added UI tests for UPLOAD functionality, Added get license candidates API, Added A REST API TO import a csv-license file, Added all the requested changes to the API to initiate Fossology Maintenance."}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>a});var t=s(67294);const i={},h=t.createContext(i);function a(e){const n=t.useContext(h);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aea84821.32d4a53a.js b/assets/js/aea84821.32d4a53a.js new file mode 100644 index 0000000000..25f0c4090c --- /dev/null +++ b/assets/js/aea84821.32d4a53a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9973],{89738:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var t=i(85893),s=i(11151);const a={title:"Community Bonding",author:"Ayush Kumar",author_url:"https://github.com/Ayush7614",author_image_url:"https://avatars.githubusercontent.com/u/67006255?v=4",tags:["gsoc22","react","ui","api"]},o=void 0,r={id:"2022/ui/updates/ayush/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/ui/updates/ayush/2022-06-02.md",sourceDirName:"2022/ui/updates/ayush",slug:"/2022/ui/updates/ayush/2022-06-02",permalink:"/gsoc/docs/2022/ui/updates/ayush/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/ayush/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"ui",permalink:"/gsoc/docs/tags/ui"},{label:"api",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Community Bonding",author:"Ayush Kumar",author_url:"https://github.com/Ayush7614",author_image_url:"https://avatars.githubusercontent.com/u/67006255?v=4",tags:["gsoc22","react","ui","api"]},sidebar:"2022",previous:{title:"Introduction",permalink:"/gsoc/docs/2022/ui/"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-02"}},l={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const n={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June 2nd, 2022)"})}),"\n",(0,t.jsx)(n.p,{children:"GSOC 2022 weekly update."}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Ayush Kumar"}),"\n",(0,t.jsx)(n.li,{children:"Katharina"}),"\n",(0,t.jsx)(n.li,{children:"Michael"}),"\n",(0,t.jsx)(n.li,{children:"Nicolas"}),"\n",(0,t.jsx)(n.li,{children:"Anupam"}),"\n",(0,t.jsx)(n.li,{children:"Gaurav"}),"\n",(0,t.jsx)(n.li,{children:"Shaheem"}),"\n",(0,t.jsx)(n.li,{children:"Kaushalendra"}),"\n",(0,t.jsx)(n.li,{children:"Ayush"}),"\n",(0,t.jsx)(n.li,{children:"Shruthi"}),"\n",(0,t.jsx)(n.li,{children:"Avinal"}),"\n",(0,t.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,t.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,t.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,t.jsx)(n.li,{children:"Thanvi Lahari Pendyala"}),"\n",(0,t.jsx)(n.li,{children:"Krishna Mahato"}),"\n",(0,t.jsx)(n.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Know more about organization."}),"\n",(0,t.jsx)(n.li,{children:"Meet the mentors, interact with mentors."}),"\n",(0,t.jsx)(n.li,{children:"Understand the flow and process of the weekly update of the meetings organised by the Organization."}),"\n",(0,t.jsx)(n.li,{children:"Get to know the internal workflow of the organization and project."}),"\n",(0,t.jsx)(n.li,{children:"Since it was the first meeting of community bonding period, we were introduced to every mentors and contributors."}),"\n",(0,t.jsx)(n.li,{children:"Project Setup Done"}),"\n",(0,t.jsx)(n.li,{children:"Discussion about api testing."}),"\n",(0,t.jsx)(n.li,{children:"Make my own Github Repo For Daily and weekly updates."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Compatible meeting timing was decided"}),"\n",(0,t.jsx)(n.li,{children:"Need to keep gsoc page updated"}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>o});var t=i(67294);const s={},a=t.createContext(s);function o(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aff6cca9.18119080.js b/assets/js/aff6cca9.18119080.js new file mode 100644 index 0000000000..df91f8bb9c --- /dev/null +++ b/assets/js/aff6cca9.18119080.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5584],{25628:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var s=n(85893),r=n(11151);const o={title:"Week6",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},i=void 0,a={id:"2022/project/updates/2022-07-14",title:"Week6",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-07-14.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-07-14",permalink:"/gsoc/docs/2022/project/updates/2022-07-14",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-07-14.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week6",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week5",permalink:"/gsoc/docs/2022/project/updates/2022-07-07"},next:{title:"Week7",permalink:"/gsoc/docs/2022/project/updates/2022-07-21"}},c={},l=[{value:"Meeting 7",id:"meeting-7",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-7",children:"Meeting 7"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(July 14th, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(t.li,{children:"Kaushlendra Pratap"}),"\n",(0,s.jsx)(t.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(t.li,{children:"Ayush Bhardwaj"}),"\n",(0,s.jsx)(t.li,{children:"Shruti Agarwal"}),"\n",(0,s.jsx)(t.li,{children:"Vasudev Maduri"}),"\n",(0,s.jsx)(t.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(t.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(t.li,{children:"Feng Wenhan"}),"\n",(0,s.jsx)(t.li,{children:"Soham Banerjee"}),"\n",(0,s.jsx)(t.li,{children:"Samuel Dushimimana"}),"\n",(0,s.jsx)(t.li,{children:"Thanvi Lahari Pendyala"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:"I have created Project Add, Project Delete and Project Edit pages. However, this pages are static and couln't provide their function now because most of their codes are just copy from the folder pages. However, for now I can show what I will do for other GSOC members. Mentors give me some advices for next steps (where the code is and how to begin)"}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Created some new pages but not completely work"}),"\n",(0,s.jsx)(t.li,{children:"In next week, I will try to make the pages dynamic and able to provide their functions."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>i});var s=n(67294);const r={},o=s.createContext(r);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b063e761.43c67bdd.js b/assets/js/b063e761.43c67bdd.js new file mode 100644 index 0000000000..a1fa6eb475 --- /dev/null +++ b/assets/js/b063e761.43c67bdd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[884],{81458:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var i=n(85893),t=n(11151);const r={title:"Week 1",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},l="Week 1 meeting and activities",o={id:"2024/spdx30/updates/2024-05-28",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/spdx30/updates/2024-05-28.md",sourceDirName:"2024/spdx30/updates",slug:"/2024/spdx30/updates/2024-05-28",permalink:"/gsoc/docs/2024/spdx30/updates/2024-05-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/updates/2024-05-28.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx30",permalink:"/gsoc/docs/tags/spdx-30"}],version:"current",frontMatter:{title:"Week 1",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},sidebar:"2024",previous:{title:"Community bonding",permalink:"/gsoc/docs/2024/spdx30/updates/2024-05-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-04"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Core and software profile use cases",id:"core-and-software-profile-use-cases",level:2},{value:"Core profile",id:"core-profile",level:3},{value:"Software profile",id:"software-profile",level:3},{value:"Updates",id:"updates",level:2}];function c(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-1-meeting-and-activities",children:"Week 1 meeting and activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(May 28,2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"I presented the basic SPDX v3.0 JSON-ld format report to the mentors."}),"\n",(0,i.jsx)(s.li,{children:"Got a feedback for the implementation of the required fields and profiles in the reports ."}),"\n",(0,i.jsxs)(s.li,{children:["Also was asked to validate the reports generated using the ",(0,i.jsx)(s.a,{href:"https://github.com/spdx/tools-python",children:"SPDX python tool"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Next Step: Work on Licensing profile in JSON-ld reports."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"core-and-software-profile-use-cases",children:"Core and software profile use cases"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.h3,{id:"core-profile",children:"Core profile"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"The Core profile describes the foundational classes and properties that are used by all profiles of the SPDX model."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.h3,{id:"software-profile",children:"Software profile"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"The Software profile contains information about files, packages, SBOMs, snippets, and artifacts of the software application."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["The ",(0,i.jsx)(s.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(85920).Z+"",children:"model image"})," for the Core+Software profile.\nI have implemented the following use cases as required by the organization for this profile:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Person"}),"\n",(0,i.jsx)(s.li,{children:"Agent"}),"\n",(0,i.jsx)(s.li,{children:"Tool"}),"\n",(0,i.jsx)(s.li,{children:"File"}),"\n",(0,i.jsx)(s.li,{children:"Package"}),"\n",(0,i.jsx)(s.li,{children:"Person with full CreationInfo"}),"\n",(0,i.jsx)(s.li,{children:"Package with ExternalIdentifier"}),"\n",(0,i.jsx)(s.li,{children:"Relationship with Package containing Files"}),"\n",(0,i.jsx)(s.li,{children:"SpdxDocument with Files"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"updates",children:"Updates"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Started working on SPDX v3.0 JSON-ld format report generation."}),"\n",(0,i.jsx)(s.li,{children:"In this week, I targeted to implement Core and Software profiles in this format."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},85920:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/files/model_Core+Software-5cc67202e8183f9c98a6df3b7d60a401.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>l});var i=n(67294);const t={},r=i.createContext(t);function l(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b2810712.3ff112b0.js b/assets/js/b2810712.3ff112b0.js new file mode 100644 index 0000000000..64b0c9abbc --- /dev/null +++ b/assets/js/b2810712.3ff112b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6817],{97618:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=n(85893),s=n(11151);const r={title:"Week13",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},i=void 0,c={id:"2022/project/updates/2022-09-01",title:"Week13",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-09-01.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-09-01",permalink:"/gsoc/docs/2022/project/updates/2022-09-01",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-09-01.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week13",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week12",permalink:"/gsoc/docs/2022/project/updates/2022-08-25"},next:{title:"Week14",permalink:"/gsoc/docs/2022/project/updates/2022-09-08"}},a={},l=[{value:"Meeting 14",id:"meeting-14",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"meeting-14",children:"Meeting 14"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.em,{children:"(September 1st, 2022)"})}),"\n",(0,o.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,o.jsx)(t.p,{children:"There is no attendees list available."}),"\n",(0,o.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,o.jsx)(t.p,{children:"In this week, I learn the code of report generation. However, in fact, I don't know exactly what I should do to add the new generation method to pages: add a button? give a new page? or other things?\nMentors give me a show about how the report generation function run of current version. They also tell me where should I begin with."}),"\n",(0,o.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"I will try to implemnt the new report generation function."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>i});var o=n(67294);const s={},r=o.createContext(s);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b3353e9f.e3492934.js b/assets/js/b3353e9f.e3492934.js new file mode 100644 index 0000000000..393b4e344a --- /dev/null +++ b/assets/js/b3353e9f.e3492934.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1632],{32282:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>c,toc:()=>a});var t=s(85893),n=s(11151);const d={title:"Week 3",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},l=void 0,c={id:"2023/rest/updates/samuel/2023-06-15",title:"Week 3",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-06-15.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-06-15",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-06-15.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 3",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 2",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-08"},next:{title:"Week 4",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-22"}},o={},a=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Remove main license API <code>/uploads/{id}/licenses/{licenseId}/main</code>",id:"1-remove-main-license-api-uploadsidlicenseslicenseidmain",level:4},{value:"2. Get main licenses API <code>/uploads/{id}/licenses/main</code>",id:"2-get-main-licenses-api-uploadsidlicensesmain",level:4},{value:"3. Add new license decision API <code>/uploads/{id}/items/{itemId}/licenses</code>",id:"3-add-new-license-decision-api-uploadsiditemsitemidlicenses",level:4},{value:"4. Delete License decision API <code>/uploads/{id}/items/{itemId}/licenses/{licenseId}</code>",id:"4-delete-license-decision-api-uploadsiditemsitemidlicenseslicenseid",level:4},{value:"5. Get all license decisions for an item API <code>/uploads/{id}/items/{itemId}/licenses</code>",id:"5-get-all-license-decisions-for-an-item-api-uploadsiditemsitemidlicenses",level:4},{value:"6. Update the clearing info API <code>/uploads/{id}/items/{itemId}/licenses</code>",id:"6-update-the-clearing-info-api-uploadsiditemsitemidlicenses",level:4},{value:"7. Get clearing history API <code>/uploads/{id}/items/{itemId}/clearing_history</code>",id:"7-get-clearing-history-api-uploadsiditemsitemidclearing_history",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function r(e){const i={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h2,{id:"activities",children:"Activities"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["Added the REST API to remove a particular main license from the upload: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2463",children:"#2463"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the REST API to retrieve all the main licenses assigned on a particular upload: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2465",children:"#2465"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the REST API to add new license decision for an item: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2466",children:"#2466"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the REST API to delete a specific license decision assigned on an item: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2469",children:"#2469"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the REST API to list the license decisions for a specific item: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2470",children:"#2470"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the REST API to update the clearing info (",(0,t.jsx)(i.strong,{children:"License text"}),", ",(0,t.jsx)(i.strong,{children:"acknowledgement"})," & ",(0,t.jsx)(i.strong,{children:"Comment"}),") for a specific license decision on the item: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2471",children:"#2471"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the REST API to retrieve the clearing history for a specific item: ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/fossology/pull/2477",children:"#2477"})]}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,t.jsxs)(i.h4,{id:"1-remove-main-license-api-uploadsidlicenseslicenseidmain",children:["1. Remove main license API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/licenses/{licenseId}/main"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"delete-main-license",src:s(65262).Z+"",width:"1464",height:"621"})}),"\n",(0,t.jsxs)(i.h4,{id:"2-get-main-licenses-api-uploadsidlicensesmain",children:["2. Get main licenses API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/licenses/main"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"get-main-licenses",src:s(49988).Z+"",width:"1438",height:"591"})}),"\n",(0,t.jsxs)(i.h4,{id:"3-add-new-license-decision-api-uploadsiditemsitemidlicenses",children:["3. Add new license decision API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/items/{itemId}/licenses"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"add-license-decision",src:s(59707).Z+"",width:"1441",height:"579"})}),"\n",(0,t.jsxs)(i.h4,{id:"4-delete-license-decision-api-uploadsiditemsitemidlicenseslicenseid",children:["4. Delete License decision API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/items/{itemId}/licenses/{licenseId}"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"delete-license-decision",src:s(14525).Z+"",width:"1456",height:"472"})}),"\n",(0,t.jsxs)(i.h4,{id:"5-get-all-license-decisions-for-an-item-api-uploadsiditemsitemidlicenses",children:["5. Get all license decisions for an item API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/items/{itemId}/licenses"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"get-license-decisions",src:s(2150).Z+"",width:"1837",height:"771"})}),"\n",(0,t.jsxs)(i.h4,{id:"6-update-the-clearing-info-api-uploadsiditemsitemidlicenses",children:["6. Update the clearing info API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/items/{itemId}/licenses"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"update-license-decision",src:s(61581).Z+"",width:"891",height:"483"})}),"\n",(0,t.jsxs)(i.h4,{id:"7-get-clearing-history-api-uploadsiditemsitemidclearing_history",children:["7. Get clearing history API ",(0,t.jsx)(i.code,{children:"/uploads/{id}/items/{itemId}/clearing_history"})]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"get-clearing-history",src:s(52974).Z+"",width:"1876",height:"772"})}),"\n",(0,t.jsx)(i.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Add the PR for the REST API to schedule the bulk scan."}),"\n",(0,t.jsx)(i.li,{children:"Add the PR for the REST API to handle the three-pointers functionality."}),"\n",(0,t.jsx)(i.li,{children:"Add the REST API to retrieve the positions for the highlighting the content of the file."}),"\n",(0,t.jsx)(i.li,{children:"Add the REST API for the Tree view: Reuse Summary, Scanner Details (GET & for filter)."}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(r,{...e})}):r(e)}},59707:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/add_new_license_decision-5930bde8b96ef8cd02bb38e6bd06da3b.png"},14525:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/delete_license_decision-641e822431bba899f2455cb80d135851.png"},65262:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/delete_main_license-536ab202b0fe42a27fe361e3d30901ad.png"},2150:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/get_all_license_decisions-f4808072942acbd465ce1a500e9121f2.png"},52974:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/get_clearing_history-7cc330fbefe29e25a978e7bffabcd0d0.png"},49988:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/get_main_licenses-1437c07a62affeb3f918e6dd81c438ee.png"},61581:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/set_clearing_info-63fa0fd9e6b56057a9293161c305f163.png"},11151:(e,i,s)=>{s.d(i,{Z:()=>c,a:()=>l});var t=s(67294);const n={},d=t.createContext(n);function l(e){const i=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(d.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b45e70c2.4a94414d.js b/assets/js/b45e70c2.4a94414d.js new file mode 100644 index 0000000000..1eac9b2c67 --- /dev/null +++ b/assets/js/b45e70c2.4a94414d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2082],{39461:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=s(85893),i=s(11151);const r={title:"Week 4",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},a=void 0,l={id:"2022/atarashi/updates/2022-07-04",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-07-04.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-07-04",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-07-04.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 4",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-27"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/atarashi/updates/2022-07-11"}},h={},c=[{value:"Meeting 6",id:"meeting-6",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function o(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July 07th, 2022)"})}),"\n",(0,t.jsx)(n.p,{children:"GSOC 2022 weekly update"}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Created the python packages for both ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html",children:"LogisticRegression"})})," and ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html",children:"Linear SVC"})}),"\nmodel. Below is the file structure for created package:"]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:" +-- linearsvc\n \u2502 +-- LICENSE\n \u2502 +-- MANIFEST.in\n \u2502 +-- README.md\n \u2502 +-- setup.py\n \u2502 +-- src\n \u2502 +-- linearsvc\n \u2502 \u2502 +-- data\n \u2502 \u2502 \u2502 +-- linearsvc\n \u2502 \u2502 +-- __init__.py\n \u2502 +-- model_train.py\n +-- logreg\n +-- LICENSE\n +-- MANIFEST.in\n +-- README.md\n +-- setup.py\n +-- src\n +-- logreg\n \u2502 +-- data\n \u2502 \u2502 +-- logreg\n \u2502 +-- __init__.py\n +-- model_train.py\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Modified ",(0,t.jsx)(n.strong,{children:"init.py"})," from the ",(0,t.jsx)(n.strong,{children:"src"})," folder of both the python packages as suggested:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["In the code below, it can be seen that the linearsvc class have two functions:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"linearsvc.classify()"})," can be called to get the model classifier and the classifier can\nbe further used to predict the license shortname for ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/atarashi",children:"atarshi"})}),"\nagent just by using the ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://www.askpython.com/python/examples/python-predict-function",children:"predict()"})}),"\nfunction."]}),"\n",(0,t.jsxs)(n.li,{children:["And in ",(0,t.jsx)(n.strong,{children:"linearsvc.predict_shortname()"}),", we can directly pass the preprocessed file and it will\nreturn the license shortname."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Similar functions has been implemented for ",(0,t.jsx)(n.strong,{children:"logreg"})," model also."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-python",children:' class linearsvc():\n def __init__(self, preprocessed_file):\n self.preprocessed_file = preprocessed_file\n\n def classify(self):\n data = resource_filename("linearsvc", "data/linearsvc")\n with open(data, \'rb\') as f:\n Classifier = pickle.load(f)\n return Classifier\n\n def predict_shortname(self):\n predictor = self.classify()\n return predictor.predict(self.preprocessed_file)\n'})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Implemented the agent for ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html",children:"Linear SVC"})}),"\non ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/atarashi",children:"atarshi"})})," locally."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Will make the changes according to further suggestion."}),"\n",(0,t.jsxs)(n.li,{children:["Will start implementing ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Okapi_BM25",children:"okapi_BM25"})})," in place of\n",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfTransformer.html",children:"tfidftransformer"})}),"\nfor ranking the license text on dataset for training the models and compare which among the two is working better\non dataset."]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>a});var t=s(67294);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b55f1bae.889a70ee.js b/assets/js/b55f1bae.889a70ee.js new file mode 100644 index 0000000000..4c4abcce2d --- /dev/null +++ b/assets/js/b55f1bae.889a70ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9648],{37649:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>r});var i=t(85893),n=t(11151);const o={title:"Week 4",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},d="Week 4 Meeting and Activities",a={id:"2024/spdx30/updates/2024-06-18",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/spdx30/updates/2024-06-18.md",sourceDirName:"2024/spdx30/updates",slug:"/2024/spdx30/updates/2024-06-18",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/updates/2024-06-18.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx30",permalink:"/gsoc/docs/tags/spdx-30"}],version:"current",frontMatter:{title:"Week 4",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-11"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/spdx30/updates/2024-06-25"}},l={},r=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Activities",id:"activities",level:2}];function c(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-4-meeting-and-activities",children:"Week 4 Meeting and Activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 18, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Have completed generation of SPDX v3.0 report in JSON format."}),"\n",(0,i.jsxs)(s.li,{children:["Also discussed to the mentor about ",(0,i.jsx)(s.a,{href:"https://github.com/spdx/spdx-3-model/blob/main/serialization/json_ld/validation.md",children:"validation of JSON-ld using JSON Schema, and SHACL Model"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"We decided to follow the JSON Schema and SHACL Model for initial phase of validation."}),"\n",(0,i.jsx)(s.li,{children:"Next Step: Work on the validation of JSON-ld documents."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"In this week, I worked upon the RDF report generation."}),"\n",(0,i.jsxs)(s.li,{children:["I followed the ",(0,i.jsx)(s.a,{href:"https://spdx.org/rdf/3.0.0/spdx-model.ttl",children:"ontology"})," present in the SPDX-3 model github repository."]}),"\n",(0,i.jsx)(s.li,{children:"I also started looking into the fields which were absent in the previous formats and have rectified them using the JSON schema."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>d});var i=t(67294);const n={},o=i.createContext(n);function d(e){const s=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),i.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b574b54c.6a841729.js b/assets/js/b574b54c.6a841729.js new file mode 100644 index 0000000000..4679a12c9f --- /dev/null +++ b/assets/js/b574b54c.6a841729.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[759],{85271:(t,n,e)=>{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var o=e(85893),i=e(11151);const s={sidebar_position:3,title:"Installation"},a=void 0,r={id:"2021/minerva/installation",title:"Installation",description:"\x3c!--",source:"@site/docs/2021/minerva/installation.md",sourceDirName:"2021/minerva",slug:"/2021/minerva/installation",permalink:"/gsoc/docs/2021/minerva/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/installation.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Installation"},sidebar:"2021",previous:{title:"Week 10",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-17"},next:{title:"Introduction",permalink:"/gsoc/docs/2021/scancode/"}},c={},l=[];function u(t){const n={p:"p",...(0,i.a)(),...t.components};return(0,o.jsx)(n.p,{children:"Something about seting up the project."})}function d(t={}){const{wrapper:n}={...(0,i.a)(),...t.components};return n?(0,o.jsx)(n,{...t,children:(0,o.jsx)(u,{...t})}):u(t)}},11151:(t,n,e)=>{e.d(n,{Z:()=>r,a:()=>a});var o=e(67294);const i={},s=o.createContext(i);function a(t){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function r(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:a(t.components),o.createElement(s.Provider,{value:n},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/b6185957.04856910.js b/assets/js/b6185957.04856910.js new file mode 100644 index 0000000000..493210d052 --- /dev/null +++ b/assets/js/b6185957.04856910.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2353],{4549:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>r,contentTitle:()=>d,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var t=n(85893),i=n(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},d="Week 6",l={id:"2023/laas/updates/2023-07-07",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-07-07.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-07-07",permalink:"/gsoc/docs/2023/laas/updates/2023-07-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-07-07.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-30"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-14"}},r={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Updates",id:"updates",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Conclusion and future update",id:"conclusion-and-future-update",level:2}];function o(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-6",children:"Week 6"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July, 07, 2023)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"updates",children:"Updates"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Added test case unit test cases for APIs.","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["For tests updated the project structure.","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Added different folder for migration of database and different database."}),"\n",(0,t.jsx)(s.li,{children:"Done to avoid import cycle."}),"\n",(0,t.jsx)(s.li,{children:"Added functions related to migration and populating database in the db folder."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.li,{children:"Added API test cases for create, update, get license by shortname and search\nin licenses."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.li,{children:"Functions for different test cases."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Update basic changes in pull request."}),"\n",(0,t.jsx)(s.li,{children:"Change meta to pagination meta for now."}),"\n",(0,t.jsx)(s.li,{children:"Regarding the filters for search."}),"\n",(0,t.jsx)(s.li,{children:"And in create license we need to discuss for unique text as used in fossology."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion-and-future-update",children:"Conclusion and future update"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Added more test cases for user end points."}),"\n",(0,t.jsx)(s.li,{children:"Update the changes suggested in previous pull request."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>d});var t=n(67294);const i={},a=t.createContext(i);function d(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b6701d2e.2869ca07.js b/assets/js/b6701d2e.2869ca07.js new file mode 100644 index 0000000000..4a6aa1aa64 --- /dev/null +++ b/assets/js/b6701d2e.2869ca07.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8075],{27161:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>r,toc:()=>c});var i=n(85893),t=n(11151);const d={title:"Week 3",author:"Omar AbdelSamea"},a="Coding Week 3",r={id:"2021/microservice/updates/2021-06-22",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-06-22.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-06-22",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-15"},next:{title:"Week 4",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-29"}},l={},c=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Meeting 1",id:"meeting-1",level:2},{value:"Organizer",id:"organizer-1",level:3},{value:"Attendees",id:"attendees-1",level:3},{value:"Outcomes",id:"outcomes-1",level:3},{value:"End of the week results",id:"end-of-the-week-results",level:2},{value:"Diagrams",id:"diagrams",level:2},{value:"using ClusterIP with agents",id:"using-clusterip-with-agents",level:3},{value:"using headless services with agents",id:"using-headless-services-with-agents",level:3}];function o(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"coding-week-3",children:"Coding Week 3"}),"\n",(0,i.jsx)(s.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,i.jsx)(s.h3,{id:"organizer",children:"Organizer"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Traced source code to see how the scheduler should be modified to accept single agent on each host."}),"\n",(0,i.jsx)(s.li,{children:"we found that:"}),"\n",(0,i.jsxs)(s.li,{children:["function ",(0,i.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/master/src/scheduler/agent/agent.c#L249",children:"agent_test"})," should be modified to only test the agent found inside the host"]}),"\n",(0,i.jsx)(s.li,{children:"to get the agent type inside the host a new parameter should be added in fossology.conf"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(s.h3,{id:"organizer-1",children:"Organizer"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Anupam Ghosh"}),"\n",(0,i.jsx)(s.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(s.li,{children:"Vasudev Maduri"}),"\n",(0,i.jsx)(s.li,{children:"Kaushlendra Singh"}),"\n",(0,i.jsx)(s.li,{children:"Shreya Pratap"}),"\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outcomes-1",children:"Outcomes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Presented some enhancement on adding a single service for all agents."}),"\n",(0,i.jsx)(s.li,{children:"Discussed the Scheduler Host problem and how it could be implemented in the next week."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Implemented headless services instead of ClusterIP for each agent."}),"\n",(0,i.jsx)(s.li,{children:"Used headless service for scheduler instead of ClusterIP."}),"\n",(0,i.jsx)(s.li,{children:"Used ClusterIP with database instead of NodePort as the database doesn't need to be exposed."}),"\n",(0,i.jsx)(s.li,{children:"Added Config Maps and Secrets for database."}),"\n",(0,i.jsx)(s.li,{children:"Fixed a bug in Dockerfiles (debian package version was hardcoded, solution was replacing version with *)"}),"\n",(0,i.jsx)(s.li,{children:"Enhanced scheduler Dockerfile, instead of installing web.deb to get chore-schema.dat just copied it from source code."}),"\n",(0,i.jsx)(s.li,{children:"Used stateful set with database instead of deployment."}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Links: ",(0,i.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea/fossology/tree/OmarAbdelSamea/GSoC/Microservices/k8s",children:"https://github.com/OmarAbdelSamea/fossology/tree/OmarAbdelSamea/GSoC/Microservices/k8s"})]}),"\n",(0,i.jsx)(s.h2,{id:"diagrams",children:"Diagrams"}),"\n",(0,i.jsx)(s.h3,{id:"using-clusterip-with-agents",children:"using ClusterIP with agents"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"image",src:n(1378).Z+"",width:"618",height:"409"})}),"\n",(0,i.jsx)(s.h3,{id:"using-headless-services-with-agents",children:"using headless services with agents"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"image",src:n(6280).Z+"",width:"743",height:"474"})})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},6280:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0-c96bec95f404ab217baead93b4ff9dec.png"},1378:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a-b57b0ccc31a2fa0c34e55b27165c24fa.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>a});var i=n(67294);const t={},d=i.createContext(t);function a(e){const s=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b7259baa.9d412ed8.js b/assets/js/b7259baa.9d412ed8.js new file mode 100644 index 0000000000..012ebc62b2 --- /dev/null +++ b/assets/js/b7259baa.9d412ed8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6107],{52585:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>r});var t=i(85893),s=i(11151);const l={title:"Week 17",author:"Abdelrahman Jamal"},o=void 0,a={id:"2023/copyrights/updates/2023-09-20",title:"Week 17",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-09-20.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-09-20",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-09-20.md",tags:[],version:"current",frontMatter:{title:"Week 17",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 16",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-13"},next:{title:"Week 18",permalink:"/gsoc/docs/2023/copyrights/updates/2023-09-27"}},c={},r=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. PyPi Package Development:",id:"1-pypi-package-development",level:3},{value:"2. Package Naming:",id:"2-package-naming",level:3},{value:"3. Model Inclusion Challenges:",id:"3-model-inclusion-challenges",level:3},{value:"4. Package Availability:",id:"4-package-availability",level:3},{value:"5. Training and Testing Scripts:",id:"5-training-and-testing-scripts",level:3},{value:"6. Fossology Integration:",id:"6-fossology-integration",level:3},{value:"Conclusion and Future Plans:",id:"conclusion-and-future-plans",level:2},{value:"1. <code>copyrightfpd</code> Integration:",id:"1-copyrightfpd-integration",level:3},{value:"2. Script Finalization:",id:"2-script-finalization",level:3},{value:"3. Copyright Decluttering:",id:"3-copyright-decluttering",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(September,20,2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,t.jsx)(n.h3,{id:"1-pypi-package-development",children:"1. PyPi Package Development:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Initiated the creation of a PyPi package to encapsulate the false positive detection model, geared towards integration with Fossology."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-package-naming",children:"2. Package Naming:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The package has been tentatively named ",(0,t.jsx)(n.code,{children:"copyrightfpd"}),", which stands for Copyright False Positive Detection."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"3-model-inclusion-challenges",children:"3. Model Inclusion Challenges:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Faced difficulties incorporating the models into the package. Leveraged resources on Stack Overflow and Google to overcome these challenges and successfully crafted the package."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"4-package-availability",children:"4. Package Availability:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The package is now available ",(0,t.jsx)(n.a,{href:"https://pypi.org/project/copyrightfpd/",children:"here"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"5-training-and-testing-scripts",children:"5. Training and Testing Scripts:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Began developing training and testing scripts for prospective use by Fossology. This is a work in progress."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"6-fossology-integration",children:"6. Fossology Integration:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Started the process to embed the model within Fossology. While the package was successfully added to Fossology's Python dependencies, activation of the false positive detection features posed challenges. Collaborative debugging efforts with Kaushlendra during our weekly meeting did not completely resolve the issue."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-future-plans",children:"Conclusion and Future Plans:"}),"\n",(0,t.jsxs)(n.h3,{id:"1-copyrightfpd-integration",children:["1. ",(0,t.jsx)(n.code,{children:"copyrightfpd"})," Integration:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Intend to continue refining the integration of the ",(0,t.jsx)(n.code,{children:"copyrightfpd"})," package into Fossology."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-script-finalization",children:"2. Script Finalization:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Aim to finalize the training and testing scripts."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"3-copyright-decluttering",children:"3. Copyright Decluttering:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Upon successful integration of the false positive detection into Fossology, the next goal is to focus on decluttering copyrights."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>o});var t=i(67294);const s={},l=t.createContext(s);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b76ea48f.74e8081f.js b/assets/js/b76ea48f.74e8081f.js new file mode 100644 index 0000000000..94679cb014 --- /dev/null +++ b/assets/js/b76ea48f.74e8081f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8580],{6605:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var i=t(85893),s=t(11151);const a={title:"Week 1",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},r="WEEK 1",l={id:"2024/pipeline/updates/2024-05-30",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-05-30.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-05-30",permalink:"/gsoc/docs/2024/pipeline/updates/2024-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-05-30.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"pipeline",permalink:"/gsoc/docs/tags/pipeline"}],version:"current",frontMatter:{title:"Week 1",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},sidebar:"2024",previous:{title:"Community bonding",permalink:"/gsoc/docs/2024/pipeline/updates/2024-05-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-06"}},o={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Enagagements",id:"enagagements",level:3},{value:"Subsequent Steps",id:"subsequent-steps",level:2}];function c(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-1",children:"WEEK 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 30, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I installed Fossology and familiarized myself with its features. Furthermore, I conducted tests with Fossology's current copyright detection agent and the experimental false positive deactivation agent to assess their effectiveness and determine areas for enhancement."}),"\n",(0,i.jsx)(n.li,{children:"There were discussions on strategies such as gathering unidentified copyrights or establishing a shadow model based on the current framework. Additionally, refinements in fine-tuning and training were considered to enhance decluttering and detection capabilities."}),"\n",(0,i.jsx)(n.li,{children:"Lastly, Safaa's performance was critically evaluated, and strategies for acquiring additional data were deliberated upon."}),"\n",(0,i.jsx)(n.li,{children:"I missed the general meeting due to connection issues from my side."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"enagagements",children:"Enagagements"}),"\n",(0,i.jsx)(n.p,{children:"I engaged in a call with my colleague Abdel, who had previously worked on developing Safaa, to clarify several doubts regarding the agent. During our discussion, I learned that Nirjas was already proficient in performing the task, and the agent began its operations after Nirjas had extracted copyrights."}),"\n",(0,i.jsx)(n.h2,{id:"subsequent-steps",children:"Subsequent Steps"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I was tasked with presenting a comprehensive overview of the project in the next meeting, outlining plans for processing new data, explaining the working of current Safaa and explaining the retrieval of gathering the new proposed data."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var i=t(67294);const s={},a=i.createContext(s);function r(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b80ef7b8.cc0a3fe1.js b/assets/js/b80ef7b8.cc0a3fe1.js new file mode 100644 index 0000000000..3545d91747 --- /dev/null +++ b/assets/js/b80ef7b8.cc0a3fe1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6295],{37712:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=n(85893),s=n(11151);const r={title:"Week 21",author:"Abdelrahman Jamal"},o=void 0,l={id:"2023/copyrights/updates/2023-10-18",title:"Week 21",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-10-18.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-10-18",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-10-18.md",tags:[],version:"current",frontMatter:{title:"Week 21",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 20",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-11"},next:{title:"Week 22",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-25"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. <strong>Re-evaluation of the Existing Model</strong>:",id:"1-re-evaluation-of-the-existing-model",level:3},{value:"2. <strong>Data Labeling and Refinement</strong>:",id:"2-data-labeling-and-refinement",level:3},{value:"3. <strong>Optimization Strategy</strong>:",id:"3-optimization-strategy",level:3},{value:"4. <strong>Putting the Model to Test</strong>:",id:"4-putting-the-model-to-test",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:2},{value:"1. Decluttering Improvements",id:"1-decluttering-improvements",level:3},{value:"2. Documentation",id:"2-documentation",level:3}];function c(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.em,{children:"(October,18,2023)"})}),"\n",(0,i.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"updates",children:"Updates:"}),"\n",(0,i.jsxs)(t.h3,{id:"1-re-evaluation-of-the-existing-model",children:["1. ",(0,i.jsx)(t.strong,{children:"Re-evaluation of the Existing Model"}),":"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Upon a thorough review of the previously developed decluttering model, I identified a significant issue in the approach I adopted. Specifically, the semi-supervised learning technique utilized earlier had not been applied with adequate scrutiny to the dataset. As a result, the dataset contained an excessive number of inaccurately labeled examples, adversely affecting the model's performance."}),"\n"]}),"\n",(0,i.jsxs)(t.h3,{id:"2-data-labeling-and-refinement",children:["2. ",(0,i.jsx)(t.strong,{children:"Data Labeling and Refinement"}),":"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"To rectify the identified discrepancies, I undertook the task of labeling a new dataset comprising 4,000 diverse examples. This process was assisted by the model to ensure the accuracy of labels. The objective was to establish a robust dataset, devoid of labeling errors, which could be reliably used to gauge the model's performance."}),"\n"]}),"\n",(0,i.jsxs)(t.h3,{id:"3-optimization-strategy",children:["3. ",(0,i.jsx)(t.strong,{children:"Optimization Strategy"}),":"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"During this labeling phase, I adopted a systematic strategy to mitigate the recurrence of previously observed issues, particularly the repetitive copyright statements. Consequently, this dataset, though numbering 4,000 examples, effectively offers the richness of approximately 6,000 to 7,000 samples when benchmarked against the former labeling methodology."}),"\n"]}),"\n",(0,i.jsxs)(t.h3,{id:"4-putting-the-model-to-test",children:["4. ",(0,i.jsx)(t.strong,{children:"Putting the Model to Test"}),":"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"I decided to evaluate the refined model on new datasets - copyrights from ansible, cassandra, and vscode repositories:"}),"\n"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Ansible"}),": Here, the results were mixed. While the model performed reasonably in some cases, it exhibited challenges in accurately identifying GNU license instances:","\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"'Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>'"})," Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed."]}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"Copyright 2019 Ansible Project GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"(c) 2014, James Tanner <tanner.jc@gmail.com>"})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"(c) 2017 Ansible Project GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import (absolute_import, division, print_function) metaclass__"})," = type"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"(c) 2013, bleader Written by bleader <bleader@ratonland.org> Based on"})," pkgin module written by Shaun Zinck\nthat was based on pacman module written by Afterburn <",(0,i.jsx)(t.a,{href:"https://github.com/afterburn",children:"https://github.com/afterburn"}),"> that was based on apt\nmodule written by Matthew Williams <matthew@flowrout>"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Cassandra"}),": Again, the model demonstrated varied performance. While it succeeded in some instances, it missed out on others, particularly the ones with repeated patterns:","\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"(c) 2005, 2014 jQuery Foundation, Inc."})," | jquery.org/license */"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"(c) Steven Levithan <stevenlevithan.com>"})," MIT License"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright 2005-2008 The Android Open Source Project This product includes software developed as part of The Android Open Source Project"})," (",(0,i.jsx)(t.a,{href:"http://source.android.com",children:"http://source.android.com"}),")."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright \xa9 2020 Jeff Carpenter, Eben Hewitt."})," All rights reserved. Used with permission._"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright &copy; 2009- The Apache Software Foundation"}),' " useexternalfile="yes" encoding="UTF-8"\nfailonerror="false" maxmemory="256m" additionalparam="${jdk11plus-javadoc-exports}"> filesets/> javadoc>\nfail message="javadoc failed"> condition>']}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:'\xa9 2018 DataStax", "", "\\n", "\\0", "\\0\\0", "\\001", "0", "0\\0", "00", "1") forEach(stringConsumer)'})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"copyright to Philip Koopman"})," , which he licenses under the Creative Commons Attribution 4.0 International License (",(0,i.jsx)(t.a,{href:"https://creativecommons.org/licenses/by/4.0",children:"https://creativecommons.org/licenses/by/4.0"}),")"]}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"Copyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ \xf3Q \xccXYZ XYZ o\xa28\xf5XYZ b\xb7\xdaXYZ $ \xb6\xcfdescIEC http://www.iec.chIEC"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"VScode"}),": A similar trend was observed here. Some instances were accurately identified, whereas others were overlooked:","\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright (c) Microsoft Corporation."})," All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information."]}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:'Copyright (c) textmate-diff.tmbundle project authors",'})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"copyrightCopyright Apple Inc., 2016\xc8\xf4(FtEXticc:descriptionDisplay \xb8IEND\xaeB"})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:'Copyright (c) 2002-2020 K.Kosako <kkosako0@gmail.com> "'}),', All rights reserved.",']}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright (C) Microsoft Corporation."})," All rights reserved. \xb1 t ",(0,i.jsx)(t.code,{children:"Copyright (C) Microsoft Corporation."})," All rights reserved. l\xff\xfc \xff\xfc C=------------------------------------------------------------- \xb1"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright (c) 2011 Fabrice Bellard The original design remains. The terminal itself has been extended to include xterm CSI codes, among other features"})," ."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Copyright \xa9 2015 W3C\xae (MIT, ERCIM, Keio, Beihang)"}),' . This software or document includes material copied ", from or derived from HTML 5.1 W3C Working Draft (',(0,i.jsx)(t.a,{href:"http://www.w3.org/TR/2015/WD-html51-20151008/",children:"http://www.w3.org/TR/2015/WD-html51-20151008/"}),'.)",']}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Feedback Session"}),": After showcasing these outcomes to Kaushlendra, he articulated that the model would greatly benefit from an even more expansive dataset. A corpus larger than the current 4,000 examples is essential for the model to effectively generalize across diverse variations."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,i.jsx)(t.h3,{id:"1-decluttering-improvements",children:"1. Decluttering Improvements"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Improve the decluttering model as much as I can while working on the documentation"}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"2-documentation",children:"2. Documentation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Work on finilzating the weekly documentation as GSoC is coming to an end."}),"\n",(0,i.jsx)(t.li,{children:"Start working on the GSoC final report."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var i=n(67294);const s={},r=i.createContext(s);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b86a477d.31c4ae48.js b/assets/js/b86a477d.31c4ae48.js new file mode 100644 index 0000000000..329fe0f25e --- /dev/null +++ b/assets/js/b86a477d.31c4ae48.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3668],{70955:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>o,frontMatter:()=>h,metadata:()=>l,toc:()=>a});var i=s(85893),t=s(11151);const h={title:"Community bonding",author:"Sushant Kumar"},c="Meeting 1",l={id:"2023/cyclonedx/updates/2023-05-11",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-05-11.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-05-11",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-05-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-05-11.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Introduction",permalink:"/gsoc/docs/2023/cyclonedx/"},next:{title:"Week 1",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-01"}},r={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Attendees:",id:"attendees-1",level:2},{value:"Discussion:",id:"discussion-1",level:2}];function d(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May,11,2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,i.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Introduction to Contributors and Mentors."}),"\n",(0,i.jsx)(n.li,{children:"Timings for Project-Specific Meetings and General Meeting were Decided."}),"\n"]}),"\n",(0,i.jsx)(n.h1,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(May 18,2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees-1",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion-1",children:"Discussion:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"This week, I was busy with examinations, which is why I couldn't do much work."}),"\n",(0,i.jsx)(n.li,{children:"However, I encountered issues during the Fossology installation process, but I was able to successfully install it on my system."}),"\n",(0,i.jsx)(n.li,{children:"Due to my examinations, I may not be able to dedicate much time to my project until next week."}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>c});var i=s(67294);const t={},h=i.createContext(t);function c(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b955e9ef.a2c1aca7.js b/assets/js/b955e9ef.a2c1aca7.js new file mode 100644 index 0000000000..96bd389bda --- /dev/null +++ b/assets/js/b955e9ef.a2c1aca7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9275],{26204:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>l,toc:()=>a});var t=i(85893),n=i(11151);const d={title:"Week 5",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},c=void 0,l={id:"2023/rest/updates/samuel/2023-06-29",title:"Week 5",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-06-29.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-06-29",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-06-29.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 5",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 4",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-22"},next:{title:"Week 6",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-06"}},o={},a=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Clearing progress API <code>/uploads/{id}/clearing-progress</code>",id:"1-clearing-progress-api-uploadsidclearing-progress",level:4},{value:"2. Scanned licenses API <code>/uploads/{id}/licenses/scanned</code>",id:"2-scanned-licenses-api-uploadsidlicensesscanned",level:4},{value:"3. Licenses histogram API <code>/uploads/{id}/licenses/histogram</code>",id:"3-licenses-histogram-api-uploadsidlicenseshistogram",level:4},{value:"4. Edited licenses API <code>/uploads/{id}/licenses/edited</code>",id:"4-edited-licenses-api-uploadsidlicensesedited",level:4},{value:"5. Licenses count summary API <code>/uploads/{id}/licenses/count-summary</code>",id:"5-licenses-count-summary-api-uploadsidlicensescount-summary",level:4},{value:"6. Licenses reuse summary API <code>/uploads/{id}/licenses/reuse-summary</code>",id:"6-licenses-reuse-summary-api-uploadsidlicensesreuse-summary",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function r(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Added the REST API to get the clearing progress information for the upload: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2494",children:"#2494"})]}),"\n",(0,t.jsxs)(s.li,{children:["Added the REST API to get a list of the scanned licenses for the upload: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2495",children:"#2495"})]}),"\n",(0,t.jsxs)(s.li,{children:["Added the REST API to get the licenses histogram for the upload: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2497",children:"#2497"})]}),"\n",(0,t.jsxs)(s.li,{children:["Added the REST API to get the list of the edited licenses for the upload: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2498",children:"#2498"})]}),"\n",(0,t.jsxs)(s.li,{children:["Added the REST API to get the licenses count summary: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2499",children:"#2499"})]}),"\n",(0,t.jsxs)(s.li,{children:["Added the REST API to get the licenses reuse summary list: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2501",children:"#2501"})]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,t.jsxs)(s.h4,{id:"1-clearing-progress-api-uploadsidclearing-progress",children:["1. Clearing progress API ",(0,t.jsx)(s.code,{children:"/uploads/{id}/clearing-progress"})]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"clearing-progress",src:i(54420).Z+"",width:"1505",height:"298"})}),"\n",(0,t.jsxs)(s.h4,{id:"2-scanned-licenses-api-uploadsidlicensesscanned",children:["2. Scanned licenses API ",(0,t.jsx)(s.code,{children:"/uploads/{id}/licenses/scanned"})]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"scanned-licenses",src:i(68787).Z+"",width:"854",height:"789"})}),"\n",(0,t.jsxs)(s.h4,{id:"3-licenses-histogram-api-uploadsidlicenseshistogram",children:["3. Licenses histogram API ",(0,t.jsx)(s.code,{children:"/uploads/{id}/licenses/histogram"})]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"licenses-histogram",src:i(24564).Z+"",width:"778",height:"792"})}),"\n",(0,t.jsxs)(s.h4,{id:"4-edited-licenses-api-uploadsidlicensesedited",children:["4. Edited licenses API ",(0,t.jsx)(s.code,{children:"/uploads/{id}/licenses/edited"})]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"edited-licenses",src:i(97772).Z+"",width:"1465",height:"569"})}),"\n",(0,t.jsxs)(s.h4,{id:"5-licenses-count-summary-api-uploadsidlicensescount-summary",children:["5. Licenses count summary API ",(0,t.jsx)(s.code,{children:"/uploads/{id}/licenses/count-summary"})]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"licenses-count-summary",src:i(61496).Z+"",width:"1388",height:"458"})}),"\n",(0,t.jsxs)(s.h4,{id:"6-licenses-reuse-summary-api-uploadsidlicensesreuse-summary",children:["6. Licenses reuse summary API ",(0,t.jsx)(s.code,{children:"/uploads/{id}/licenses/reuse-summary"})]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"licenses-reuse-summary",src:i(96498).Z+"",width:"1385",height:"729"})}),"\n",(0,t.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Add the REST API to get the agents' list for the upload."}),"\n",(0,t.jsx)(s.li,{children:"Add the REST API to get the agents revision for the upload."}),"\n",(0,t.jsx)(s.li,{children:"Add the REST API that merges the Add, Edit & delete requests for the license decision."}),"\n",(0,t.jsx)(s.li,{children:"Add the REST APIs for managing the Add, Edit, and enable requests for the acknowledgements."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(r,{...e})}):r(e)}},54420:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/get_clearing_progress-f74dcad5df2a77c002cac74cede1e052.png"},97772:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/get_edited_licenses-e8aefc3e60cfda4c070549126906a981.png"},61496:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/get_licenses_count_summary-9e2b0cec62490375a1d10a6360f7a799.png"},24564:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/get_licenses_histogram-c2f9802e9e44718de1f383e6f184c17e.png"},96498:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/get_licenses_reuse_summary-7e10e68d6251f329829cf4691122693e.png"},68787:(e,s,i)=>{i.d(s,{Z:()=>t});const t=i.p+"assets/images/get_scanned_licenses-c468b61ecf8fe8efc96e745d1c3459dc.png"},11151:(e,s,i)=>{i.d(s,{Z:()=>l,a:()=>c});var t=i(67294);const n={},d=t.createContext(n);function c(e){const s=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),t.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b971c4de.b731557f.js b/assets/js/b971c4de.b731557f.js new file mode 100644 index 0000000000..c89c37720e --- /dev/null +++ b/assets/js/b971c4de.b731557f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2495],{97053:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=o(85893),t=o(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2024/ci-scanner/"},l=void 0,r={id:"2024/ci-scanner/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/index.md",sourceDirName:"2024/ci-scanner",slug:"/2024/ci-scanner/",permalink:"/gsoc/docs/2024/ci-scanner/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/ci-scanner/"},sidebar:"2024",previous:{title:"REST API Guidelines",permalink:"/gsoc/docs/2024/rest/API-guidelines"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-05-07"}},a={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2},{value:"Reporting line numbers for violations",id:"reporting-line-numbers-for-violations",level:3},{value:"Keyword scanning using custom keyword.conf",id:"keyword-scanning-using-custom-keywordconf",level:3},{value:"Providing allowlist.json from a different path",id:"providing-allowlistjson-from-a-different-path",level:3},{value:"Allow users to download and scan dependencies",id:"allow-users-to-download-and-scan-dependencies",level:3},{value:"Steps to achieve this:",id:"steps-to-achieve-this",level:4}];function d(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:rajuljha49@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://linkedin.com/in/rajuljha",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,i.jsx)(n.p,{children:"CI Scanner Improvements"}),"\n",(0,i.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,i.jsxs)(n.p,{children:["To be able to easily and continuously scan packages with\nfossology checks in CI pipelines, a docker image ",(0,i.jsxs)(n.a,{href:"https://hub.docker.com/layers/fossology/fossology/scanner/images/sha256-a625b1b10832b98d47429387c18b4fb042f7b09f912b50da14da61fddb11a2ff?context=explore",children:["fossology/fossology",":scanner"]})," capable of running license checks (using nomos or ojo) and keyword and copyright scans is available."]}),"\n",(0,i.jsx)(n.p,{children:"The main aims of this projects is to improve the CI pipeline with various quality of life improvements like:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Highlight the exact location of violations in the results."}),"\n",(0,i.jsx)(n.li,{children:"Enable customization of keywords used by the scanner."}),"\n",(0,i.jsx)(n.li,{children:"Allow whitelisting from a custom location."}),"\n",(0,i.jsx)(n.li,{children:"Provide the ability to download and scan dependencies."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,i.jsx)(n.h3,{id:"reporting-line-numbers-for-violations",children:"Reporting line numbers for violations"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"For calculating the previous and new line number from the diff scan output, an algorithm has to be made."}),"\n",(0,i.jsx)(n.li,{children:"The line number start byte and end byte information is spit out by all scanners except nomos in json output. That has to be fixed."}),"\n",(0,i.jsx)(n.li,{children:"Add the line number calculated to the finding log information as well as write it in results file."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"keyword-scanning-using-custom-keywordconf",children:"Keyword scanning using custom keyword.conf"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Currently, the keyword scanner uses a predefined set of keywords stored at ",(0,i.jsx)(n.code,{children:"/usr/local/share/fossology/keyword/agent/keyword.conf."})]}),"\n",(0,i.jsx)(n.li,{children:"To support this, we also need to document the regex-like format used for specifying these keywords."}),"\n",(0,i.jsxs)(n.li,{children:["Decision to be made : Should custom ",(0,i.jsx)(n.code,{children:"keyword.conf"})," overwrite the previous one?"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"providing-allowlistjson-from-a-different-path",children:"Providing allowlist.json from a different path"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Currently, the ",(0,i.jsx)(n.code,{children:"allowlist.json"})," is located at the root of the project."]}),"\n",(0,i.jsx)(n.li,{children:"We want to allow users to optionally specify a different path, using a CLI argument, like --allowlist"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"allow-users-to-download-and-scan-dependencies",children:"Allow users to download and scan dependencies"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Currently, the project only scans the source code of the project either in repo/diff manner."}),"\n",(0,i.jsx)(n.li,{children:"We additionally want to allow the functionality to scan and dependencies of the project."}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"steps-to-achieve-this",children:"Steps to achieve this:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["With the ",(0,i.jsx)(n.a,{href:"https://cyclonedx.org/tool-center/",children:"CycloneDX"})," tool center, we can generate SBOM which contains the dependency download url."]}),"\n",(0,i.jsx)(n.li,{children:"The SBOM format specifies the package URL (purl) for each dependency."}),"\n",(0,i.jsxs)(n.li,{children:["Using the ",(0,i.jsx)(n.a,{href:"https://github.com/package-url/packageurl-python#purl-to-url",children:"python-packageurl"})," tool, we can extract the download url from the purl for this purpose."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,o)=>{o.d(n,{Z:()=>r,a:()=>l});var i=o(67294);const t={},s=i.createContext(t);function l(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b9fabb40.c0be2a2a.js b/assets/js/b9fabb40.c0be2a2a.js new file mode 100644 index 0000000000..13a8b05862 --- /dev/null +++ b/assets/js/b9fabb40.c0be2a2a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[329],{43345:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var t=i(85893),s=i(11151);const r={title:"Week 12",author:"Abdelrahman Jamal"},o=void 0,l={id:"2023/copyrights/updates/2023-08-16",title:"Week 12",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-08-16.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-08-16",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-08-16.md",tags:[],version:"current",frontMatter:{title:"Week 12",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 11",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-09"},next:{title:"Week 13",permalink:"/gsoc/docs/2023/copyrights/updates/2023-08-23"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. Embedding Methods Testing:",id:"1-embedding-methods-testing",level:3},{value:"2. GloVe Embedding Analysis:",id:"2-glove-embedding-analysis",level:3},{value:"3. FastText Experiments:",id:"3-fasttext-experiments",level:3},{value:"4. Performance Benchmarks:",id:"4-performance-benchmarks",level:3},{value:"5. Exploratory Testing of NER Models:",id:"5-exploratory-testing-of-ner-models",level:3},{value:"6. Trials with Compact spaCy Model:",id:"6-trials-with-compact-spacy-model",level:3},{value:"Conclusion and Future Plans:",id:"conclusion-and-future-plans",level:2},{value:"NER Model Exploration",id:"ner-model-exploration",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(August,16,2023)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,t.jsx)(n.h3,{id:"1-embedding-methods-testing",children:"1. Embedding Methods Testing:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Started the week by testing the performance of different embedding methods in conjunction with my new preprocessing function."}),"\n",(0,t.jsx)(n.li,{children:"Using GloVe, achieved an accuracy with around 1.24% misclassified copyrights and 1.95% misclassified false positives."}),"\n",(0,t.jsx)(n.li,{children:"Despite variations in preprocessing parameters, GloVe's performance lagged considerably behind the best model I've developed using TF-IDF \u2014 almost a tenfold difference."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"2-glove-embedding-analysis",children:"2. GloVe Embedding Analysis:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Conducted an analysis to determine the proportion of words in the datasets recognized by GloVe:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"Embeddings found for 60.68% of vocab"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"Embeddings found for 91.12% of all text"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Given that copyrights predominantly contain elements like names, dates, and organizations, the subpar performance of GloVe \u2014 not specifically trained on this data \u2014 in comparison to TF-IDF became clearer."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"3-fasttext-experiments",children:"3. FastText Experiments:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Experimental trials with FastText embeddings did not lead to significant performance improvements, even with different preprocessing."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"4-performance-benchmarks",children:"4. Performance Benchmarks:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Current best performance indicates 0.16% misclassifications for copyrights and 0.48% for false positive misclassifications."}),"\n",(0,t.jsx)(n.li,{children:"These numbers can be reduced further to 0.04% and 3.17%, respectively, by applying a stricter confidence threshold of 0.99."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"5-exploratory-testing-of-ner-models",children:"5. Exploratory Testing of NER Models:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Initiated testing of Named Entity Recognition (NER) models to potentially replace the copyright holder entity."}),"\n",(0,t.jsx)(n.li,{children:"Due to recurring mentions of numerous copyright holders across different files and dataset rows, there's a concern about the model's generalization capability. The idea is to use NER to replace these mentions with generic tags for persons and organizations."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"6-trials-with-compact-spacy-model",children:"6. Trials with Compact spaCy Model:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Conducted initial tests with the compact spaCy English model due to space limitations."}),"\n",(0,t.jsxs)(n.li,{children:["Preliminary results were not very promising:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"] ] copyrightsymbol ] date [siemens (ORG) ag"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"] ] copyrightsymbol ] date [siemens (ORG) ag ] author [gaurav (PERSON) mishra ] email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"] copyright ] copyrightsymbol ] date ] date [free (ORG) software foundation inc franklin street [fifth (ORDINAL) ] floor [boston (ORG) ma date date ] usa"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"The model could recognize some entities, but significant refinement is needed to improve its reliability in detecting PERSON and ORG entities."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-future-plans",children:"Conclusion and Future Plans:"}),"\n",(0,t.jsx)(n.h3,{id:"ner-model-exploration",children:"NER Model Exploration"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Plan to explore other pretrained NER models that might be suitable for the task at hand."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>o});var t=i(67294);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/baad1fb3.6b1c2e83.js b/assets/js/baad1fb3.6b1c2e83.js new file mode 100644 index 0000000000..5d8468879b --- /dev/null +++ b/assets/js/baad1fb3.6b1c2e83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4592],{5242:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>a});var t=n(85893),i=n(11151);const r={title:"Week 13",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},c=void 0,o={id:"2022/reuse/updates/2022-09-06",title:"Week 13",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-09-06.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-09-06",permalink:"/gsoc/docs/2022/reuse/updates/2022-09-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-09-06.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 13",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 12",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-30"},next:{title:"Introduction",permalink:"/gsoc/docs/2022/spasht/"}},l={},a=[{value:"Meeting 26",id:"meeting-26",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"meeting-26",children:"Meeting 26"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"((September 6th, 2022))"})}),"\n",(0,t.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["On issue ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - Detecting licenses declared in LICENSE file and LICENSES folder:","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Added ",(0,t.jsx)(s.code,{children:"SearchHelperDao.php"})," in lib/php/dao and made changes in ",(0,t.jsx)(s.code,{children:"src/www/ui/api/Controllers/SearchController.php"}),", ",(0,t.jsx)(s.code,{children:"src/www/ui/ajax-notice-files.php"})," and ",(0,t.jsx)(s.code,{children:"src/www/ui/search.php"})," files that uses function of this file."]}),"\n",(0,t.jsxs)(s.li,{children:["To detect the LICENSES directory, I created ",(0,t.jsx)(s.code,{children:"DetectLicensesFolder.php"})," in src/lib/php/BusinessRules. The getDeclearedLicense() function returns an array with license Ids declared in LICENSES directory."]}),"\n",(0,t.jsxs)(s.li,{children:["To compare the license findings, I created ",(0,t.jsx)(s.code,{children:"ReuseReportProcessor.php"})," in src/lib/php/BusinessRules. GetReuseSummary() function compares the cleared licenses and declared licenses."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"src/www/ui/async/AjaxReuseReport.php"})," handle AJAX request and return reuse summary report as JSON response."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.li,{children:"Solve requested changes on existing PR."}),"\n",(0,t.jsx)(s.li,{children:"Cleared doubts regarding the AJAX call."}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Implement AJAX call and add reuse summary report table in License Browse page."}),"\n",(0,t.jsx)(s.li,{children:"Write a blog on medium describing the journey of Google Summer of Code with Fossology and contributions made during the tenure."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>c});var t=n(67294);const i={},r=t.createContext(i);function c(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bacc57da.9769dc71.js b/assets/js/bacc57da.9769dc71.js new file mode 100644 index 0000000000..5476f88b97 --- /dev/null +++ b/assets/js/bacc57da.9769dc71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7016],{87151:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=s(85893),t=s(11151);const r={slug:"/cmake-cweek3",title:"New build system - Week 3",author:"Avinal",author_title:"Build system",author_url:"https://github.com/avinal/",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["coding-week","cmake"]},l="Coding Week 3 Meeting",o={permalink:"/gsoc/blog/cmake-cweek3",editUrl:"https://github.com/fossology/gsoc/edit/main/blog/2021-06-23-cmake-w3.md",source:"@site/blog/2021-06-23-cmake-w3.md",title:"New build system - Week 3",description:"\x3c!--",date:"2021-06-23T00:00:00.000Z",tags:[{label:"coding-week",permalink:"/gsoc/blog/tags/coding-week"},{label:"cmake",permalink:"/gsoc/blog/tags/cmake"}],readingTime:1.475,hasTruncateMarker:!0,authors:[{name:"Avinal",title:"Build system",url:"https://github.com/avinal/",imageURL:"https://avatars.githubusercontent.com/u/74113200?v=4"}],frontMatter:{slug:"/cmake-cweek3",title:"New build system - Week 3",author:"Avinal",author_title:"Build system",author_url:"https://github.com/avinal/",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["coding-week","cmake"]},unlisted:!1},a={authorsImageUrls:[void 0]},c=[{value:"Attendees",id:"attendees",level:3},{value:"Week 2 Progress",id:"week-2-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const n={a:"a",code:"code",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Michael C. Jaeger ",(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"https://github.com/mcjaeger"})]}),"\n",(0,i.jsxs)(n.li,{children:["Gaurav Mishra ",(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"https://github.com/GMishx"})]}),"\n",(0,i.jsxs)(n.li,{children:["Sarita Singh ",(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"https://github.com/itssingh"})]}),"\n",(0,i.jsxs)(n.li,{children:["Avinal Kumar ",(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"https://github.com/avinal"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-2-progress",children:"Week 2 Progress"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Version file Implementation"}),"\n",(0,i.jsx)(n.li,{children:"Initial functions on obtaining commit and branch info"}),"\n",(0,i.jsxs)(n.li,{children:["To test the current progress, follow the instructions ",(0,i.jsx)(n.a,{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"What is the regex expression used for obtaining version information?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The regex has recently been modified to cover recent versions. The latest form is as below:","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:"([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*\n"})}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"You can also try alternatives to regex if possible for CMake."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Should I use"})," ",(0,i.jsx)(n.code,{children:"git describe --tags"})," ",(0,i.jsx)(n.strong,{children:"or"})," ",(0,i.jsx)(n.code,{children:"git describe --always HEAD"})," ",(0,i.jsx)(n.strong,{children:"for obtaining version information?"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["In FOSSology we always use :code:",(0,i.jsx)(n.code,{children:"git describe --tags"}),", no exception whatsoever."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["CMake provides a preset configuration for the install path on GNU systems, you can see the description ",(0,i.jsx)(n.a,{href:"https://cmake.org/cmake/help/v3.10/module/GNUInstallDirs.html",children:"here"})," based on the ",(0,i.jsx)(n.a,{href:"https://www.gnu.org/prep/standards/html_node/Directory-Variables.html",children:"configuration"})," suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards.\nSo I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under ",(0,i.jsx)(n.code,{children:"/usr/local/share/fossology/"})," with their individual folders instead of going to ",(0,i.jsx)(n.code,{children:"/usr/local/bin/"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["If the same results can be achieved by using the ",(0,i.jsx)(n.code,{children:"CMAKE_INSTALL_<dir>"})," and ",(0,i.jsx)(n.code,{children:"CMAKE_INSTALL_PREFIX"})," then yeah, it will be preferred."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Try adding the version and commit hash info."}),"\n",(0,i.jsx)(n.li,{children:"Implement writing version files for each build."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>l});var i=s(67294);const t={},r=i.createContext(t);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bb37066e.87280bf7.js b/assets/js/bb37066e.87280bf7.js new file mode 100644 index 0000000000..6bd0af2a35 --- /dev/null +++ b/assets/js/bb37066e.87280bf7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9904],{62448:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>r,toc:()=>a});var o=t(85893),s=t(11151);const c={title:"Week 4",author:"Sushant Kumar"},i=void 0,r={id:"2023/cyclonedx/updates/2023-06-22",title:"Week 4",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-06-22.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-06-22",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 3",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-15"},next:{title:"Week 5",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-29"}},l={},a=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={code:"code",em:"em",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:(0,o.jsx)(n.em,{children:"(June,22,2023)"})}),"\n",(0,o.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"This week, I successfully implemented the CycloneDX agent in Fossology."}),"\n",(0,o.jsx)(n.li,{children:"At the moment, I am able to add copyright information for file components in\nthe report. However, I still need to implement the license part."}),"\n",(0,o.jsxs)(n.li,{children:["A single component in the report looks like:","\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:' {\n "type": "file",\n "name": "Nirjas-master.zip/Nirjas-master/nirjas/languages/dart.py",\n "mime-type": "text/plain",\n "bomref": "55",\n "scope": "required",\n "hashes": [\n {\n "alg": "SHA-1",\n "content": "9EA23964D0840F9A9F2D1D5EB9AE317C7CFB9C72"\n },\n {\n "alg": "MD5",\n "content": "9B1050AAFB39D68A19467C969F3BDE5F"\n },\n {\n "alg": "SHA-256",\n "content": "61A1C1D4B00252D403EE0B60BE5C13A5B58795D702677B6E1973B084C5351992"\n }\n ],\n "copyright": "Copyright (C) 2020 Aman Dwivedi (aman.dwivedi5@gmail.com)"\n }\n'})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"In the upcoming weeks, I will work on adding license information for file\ncomponents in the report."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>i});var o=t(67294);const s={},c=o.createContext(s);function i(e){const n=o.useContext(c);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bc87ac89.ede90c39.js b/assets/js/bc87ac89.ede90c39.js new file mode 100644 index 0000000000..0080e693e1 --- /dev/null +++ b/assets/js/bc87ac89.ede90c39.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1404],{50444:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>r,default:()=>u,frontMatter:()=>c,metadata:()=>a,toc:()=>d});var s=t(85893),o=t(11151);const c={title:"Week 7",author:"Sushant Kumar"},r=void 0,a={id:"2023/cyclonedx/updates/2023-07-13",title:"Week 7",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-07-13.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-07-13",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 6",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-06"},next:{title:"Week 8",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-20"}},i={},d=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function l(e){const n={a:"a",em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July,13,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["This week I have started working on the scanning speed improvement of\n",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/tree/master/src/scancode",children:"scancode\nagent"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Explored different approaches for running ScanCode with varied parameters."}),"\n",(0,s.jsx)(n.li,{children:"Successfully integrated changes to execute ScanCode through its API."}),"\n",(0,s.jsx)(n.li,{children:"Discovered that the API execution is notably faster (13 seconds) compared to\nthe CLI (23 seconds)."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Refine the process of reading output from the Python script."}),"\n",(0,s.jsx)(n.li,{children:"Work on enhancing the integration with the database to ensure accurate updates."}),"\n",(0,s.jsxs)(n.li,{children:["Also, to work on changes requested on CDX PR\n",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2507",children:"#2507"})]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var s=t(67294);const o={},c=s.createContext(o);function r(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bc8f2e92.1ab9e98c.js b/assets/js/bc8f2e92.1ab9e98c.js new file mode 100644 index 0000000000..5b251298df --- /dev/null +++ b/assets/js/bc8f2e92.1ab9e98c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8707],{36633:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 12","permalink":"/gsoc/docs/tags/week-12","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-09-04","title":"Week 12","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-09-04"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/bd3fab85.ede7735b.js b/assets/js/bd3fab85.ede7735b.js new file mode 100644 index 0000000000..b95eccd7ec --- /dev/null +++ b/assets/js/bd3fab85.ede7735b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6291],{61766:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>h,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=s(85893),t=s(11151);const r={sidebar_position:2,title:"Week 2"},h=void 0,l={id:"2022/minutes/09-06-2022",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/minutes/09-06-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/09-06-2022",permalink:"/gsoc/docs/2022/minutes/09-06-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/09-06-2022.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Week 2"},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/minutes/02-06-2022"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/minutes/16-06-2022"}},a={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 09-06-2022."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Will create a video/doc on setting up the FOSSology and FOSSologyUI project."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Already started working on atarashi. Raised a PR in community. A model developed which is giving around 56% accuracy."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Explored the blog links shared by mentors. Would like to raise a PR with few changes just for review from mentors."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Understood how curations are done in the weekly call. Understood atarashi, will install it and work soon."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Started with development, recently created a PR. Clarified styling issues with fellow mentee, reading codebase."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Looked into code base for issues, reported a issue and mentor referred to work on existing issue. Explored upload directory I think we can reuse constants."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Exploring backend. Looked in to some youtube videos on rest API, ready to work on backend."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>h});var i=s(67294);const t={},r=i.createContext(t);function h(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:h(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bebf970d.65199300.js b/assets/js/bebf970d.65199300.js new file mode 100644 index 0000000000..8e21b3e5fe --- /dev/null +++ b/assets/js/bebf970d.65199300.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[152],{82111:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var i=t(85893),n=t(11151);const a={title:"Week 2",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},c=void 0,o={id:"2023/rest/updates/samuel/2023-06-08",title:"Week 2",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-06-08.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-06-08",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-06-08.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 2",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 1",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-01"},next:{title:"Week 3",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-15"}},l={},d=[{value:"Activities",id:"activities",level:2},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3},{value:"1. SET CLEARING DECISION API <code>/uploads/10/items/{itemId}/clearing-decision</code>",id:"1-set-clearing-decision-api-uploads10itemsitemidclearing-decision",level:4},{value:"2. ADD MAIN LICENSE API <code>/uploads/{id}/mainlicense</code>",id:"2-add-main-license-api-uploadsidmainlicense",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function r(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Added the REST API to set the clearing decision for a particular uploadtree: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2460",children:"#2460"})]}),"\n",(0,i.jsxs)(s.li,{children:["Added the REST API to add the new main license for the upload: ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2462",children:"#2462"})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,i.jsxs)(s.h4,{id:"1-set-clearing-decision-api-uploads10itemsitemidclearing-decision",children:["1. SET CLEARING DECISION API ",(0,i.jsx)(s.code,{children:"/uploads/10/items/{itemId}/clearing-decision"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"set-clearing-decision",src:t(39350).Z+"",width:"1450",height:"639"})}),"\n",(0,i.jsxs)(s.h4,{id:"2-add-main-license-api-uploadsidmainlicense",children:["2. ADD MAIN LICENSE API ",(0,i.jsx)(s.code,{children:"/uploads/{id}/mainlicense"})]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"add-main-license",src:t(33426).Z+"",width:"1452",height:"513"})}),"\n",(0,i.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Updated the Set Clearing decision & Add Main License API API based on the mentors' feedback."}),"\n",(0,i.jsx)(s.li,{children:"Add the REST API for retrieving the File Details: Scanner results, edited results with text, etc."}),"\n",(0,i.jsx)(s.li,{children:"Add the REST API to Get Bulk History, clearing history, bulk scan schedule and right left with 3 filters. (GET & SET)"}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},33426:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/add_main_license-e8caa363145212c9273e423aa7e0749c.png"},39350:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/make_clearing_decision-6025090803076744ffd3c7c4a7aa15b7.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>c});var i=t(67294);const n={},a=i.createContext(n);function c(e){const s=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),i.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bf753beb.32b3db1a.js b/assets/js/bf753beb.32b3db1a.js new file mode 100644 index 0000000000..21d8694c58 --- /dev/null +++ b/assets/js/bf753beb.32b3db1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7433],{56041:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var n=t(85893),i=t(11151);const a={title:"Week 4",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},r="Week 4 meeting and activities",l={id:"2024/rest/updates/valens/2024-06-27",title:"Week 4",description:"\x3c!--",source:"@site/docs/2024/rest/updates/valens/2024-06-27.md",sourceDirName:"2024/rest/updates/valens",slug:"/2024/rest/updates/valens/2024-06-27",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/valens/2024-06-27.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 4",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 3",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-20"},next:{title:"Week 5",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-07-04"}},o={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Activities:",id:"activities",level:2}];function d(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-4-meeting-and-activities",children:"Week 4 meeting and activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 27,2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"test(api): finalized license API testing and added more unit test cases for upload, folder, group APIs"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Finalized license API testing."}),"\n",(0,n.jsxs)(s.li,{children:["Added more test cases covering upload, folder, and group controllers.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2767",children:"test(api): finalized license API testing and added more unit test cases for upload, folder, group APIs."})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>r});var n=t(67294);const i={},a=n.createContext(i);function r(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c07c256a.2c9f6002.js b/assets/js/c07c256a.2c9f6002.js new file mode 100644 index 0000000000..c8b2647722 --- /dev/null +++ b/assets/js/c07c256a.2c9f6002.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6163],{76545:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var s=i(85893),t=i(11151);const r={sidebar_position:14,title:"Week 11"},a=void 0,o={id:"2023/minutes/2023-08-24",title:"Week 11",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-08-24.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-08-24",permalink:"/gsoc/docs/2023/minutes/2023-08-24",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-08-24.md",tags:[],version:"current",sidebarPosition:14,frontMatter:{sidebar_position:14,title:"Week 11"},sidebar:"2023",previous:{title:"Week 10",permalink:"/gsoc/docs/2023/minutes/2023-08-17"}},l={},h=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/kaushl2208",children:"Kaushlendra Pratap Singh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Updated the Obligation endpoints, added the foreign keys using ID."}),"\n",(0,s.jsx)(n.li,{children:"Updated the primary key of licenses from shortname to an integer ID. Same\nis updated for the foreign key usage."}),"\n",(0,s.jsx)(n.li,{children:"Working on final evaluation documents."}),"\n",(0,s.jsx)(n.li,{children:"Seems like user_id is passed to the endpoint and not auto-generated by DB.\nNeeds to be updated."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Created ",(0,s.jsx)(n.code,{children:"/author"})," endpoints similar to ",(0,s.jsx)(n.code,{children:"/copyright"})," endpoints. Demoed the\nsame in call."]}),"\n",(0,s.jsx)(n.li,{children:"Worked on final evaluation documentation and submitted the same."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Created PR to export obligations as CSV."}),"\n",(0,s.jsx)(n.li,{children:"Added PR to support REST API V2. Explained and showed the demo for the same."}),"\n",(0,s.jsx)(n.li,{children:"Suggestion from mentor to provide the link to original comment about the V2\nchanges in the new issue created."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Worked on recognizing names and organization names. Showed sample run of\ntagging human names and org names. Displayed some edge cases."}),"\n",(0,s.jsx)(n.li,{children:"Will be working on improving the tagging next week."}),"\n",(0,s.jsx)(n.li,{children:'Tried to classify copyrights by replacing names of people with "person" and\norg names with "ORG". Saw slight improvements but with have some edge cases.'}),"\n",(0,s.jsx)(n.li,{children:"With the replacements, false negatives have reduced a lot."}),"\n",(0,s.jsx)(n.li,{children:"Experimenting with different language models of relatively small size."}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>a});var s=i(67294);const t={},r=s.createContext(t);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c0952c37.c38f5cd4.js b/assets/js/c0952c37.c38f5cd4.js new file mode 100644 index 0000000000..4d0c3cbf88 --- /dev/null +++ b/assets/js/c0952c37.c38f5cd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7574],{4276:s=>{s.exports=JSON.parse('{"tag":{"label":"api","permalink":"/gsoc/docs/tags/api","allTagsPath":"/gsoc/docs/tags","count":10,"items":[{"id":"2022/ui/updates/ayush/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/ayush/2022-06-02"},{"id":"2022/ui/updates/soham/2022-06-02","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-06-02"},{"id":"2022/ui/updates/soham/2022-06-24","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-06-24"},{"id":"2022/ui/updates/soham/2022-08-08","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-08"},{"id":"2022/ui/updates/soham/2022-07-3","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-3"},{"id":"2022/ui/updates/soham/2022-07-7","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-7"},{"id":"2022/ui/updates/soham/2022-07-8","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-8"},{"id":"2022/ui/updates/soham/2022-07-9","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-07-9"},{"id":"2022/ui/updates/soham/2022-08-01","title":"Week 6 and 7","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-01"},{"id":"2022/ui/updates/soham/2022-08-05","title":"Week 8 and 9","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/soham/2022-08-05"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/c0b1f1ad.b142b66b.js b/assets/js/c0b1f1ad.b142b66b.js new file mode 100644 index 0000000000..6be1877ac4 --- /dev/null +++ b/assets/js/c0b1f1ad.b142b66b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9613],{96043:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>c});var o=t(85893),i=t(11151);const n={title:"Week 8",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},a=void 0,l={id:"2023/rest/updates/soham/2023-08-05",title:"Week 8",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-08-05.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-08-05",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-08-05",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-08-05.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 8",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 7",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-07-28"},next:{title:"Introduction",permalink:"/gsoc/docs/2023/laas/"}},r={},c=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Response for Obligations list<code>/obligations/list</code>",id:"1-response-for-obligations-listobligationslist",level:4},{value:"2. Response for obligation details <code>/obligations/{id}</code>",id:"2-response-for-obligation-details-obligationsid",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function d(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["GET request endpoint to Obligations list. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/obligations/list"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2559",children:"#2559"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["GET request endpoint to recieve details of a particular obligation. ",(0,o.jsx)(s.code,{children:"GET"})," ",(0,o.jsx)(s.code,{children:"/obligations/{id}"}),": ",(0,o.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2564",children:"#2564"}),"."]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsxs)(s.h4,{id:"1-response-for-obligations-listobligationslist",children:["1. Response for Obligations list",(0,o.jsx)(s.code,{children:"/obligations/list"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"obligations-list",src:t(75727).Z+"",width:"500",height:"427"})}),"\n",(0,o.jsxs)(s.h4,{id:"2-response-for-obligation-details-obligationsid",children:["2. Response for obligation details ",(0,o.jsx)(s.code,{children:"/obligations/{id}"})]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"obligations-details",src:t(92627).Z+"",width:"550",height:"609"})}),"\n",(0,o.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"Start with Create, Update and Delete requests for the Obligations"}),"\n",(0,o.jsx)(s.li,{children:"Disscuss with mentors for bringing up the version 2 of APIs"}),"\n",(0,o.jsx)(s.li,{children:"Look over and discuss with the community to find any further API requirements."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},92627:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/obligations_details-df3131ef2506b6ac44c73795a4a5391d.png"},75727:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/obligations_list-9ae43e6f583769adbe8607bb2d77d665.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>a});var o=t(67294);const i={},n=o.createContext(i);function a(e){const s=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c11a5439.79a83691.js b/assets/js/c11a5439.79a83691.js new file mode 100644 index 0000000000..ad6cd4f779 --- /dev/null +++ b/assets/js/c11a5439.79a83691.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4355],{79854:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var t=n(85893),i=n(11151);const o={title:"Week 6",author:"Divij Sharma",tags:["gsoc24","rest"]},d="Week 6 meeting and activities",r={id:"2024/rest/updates/Divij/2024-07-02",title:"Week 6",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-07-02.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-07-02",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-07-02.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 6",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-25"},next:{title:"Week 7",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-09"}},l={},a=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2}];function c(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-6-meeting-and-activities",children:"Week 6 meeting and activities"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 02,2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,t.jsx)(s.li,{children:"Katharina Ettinger"}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussion",children:"Discussion"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Gave updates and demo on previous week's work."}),"\n",(0,t.jsx)(s.li,{children:"Discussed on the endpoint requirements for the Jobs API."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Modified ",(0,t.jsx)(s.code,{children:"/jobs"}),", ",(0,t.jsx)(s.code,{children:"/jobs/{id}"}),", ",(0,t.jsx)(s.code,{children:"/jobs/all"})," endpoints considering the following points:"]}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Currently, the structure of the ",(0,t.jsx)(s.code,{children:"jobs"})," object returned by these endpoints is as follows:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'[\n {\n "id": <job id>,\n "name": <name of the job (upload name)>,\n "queueDate": <job queue date>,\n "uploadId": <upload id of the package>,\n "userId": <user id of the user>,\n "groupId": <group id of the user>,\n "eta": <time left>,\n "status": <job status (completed, killed, failed, etc.)>\n }\n]\n'})}),"\n",(0,t.jsxs)(s.p,{children:["This structure has the following problems, as outlined in #",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/1301",children:"1301"}),", #",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/1800",children:"1800"})," and #",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/1972",children:"1972"}),"."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"The structure is very simple, and does not provide much information about the job."}),"\n",(0,t.jsxs)(s.li,{children:["For example, the ",(0,t.jsx)(s.code,{children:"agent"})," triggered by the job is not present in the response."]}),"\n",(0,t.jsx)(s.li,{children:"There is no information about child jobs being executed, and what is the status of each child job."}),"\n",(0,t.jsxs)(s.li,{children:["The information about ",(0,t.jsx)(s.code,{children:"status"})," is redundant and returns invalid response for some testcases."]}),"\n",(0,t.jsx)(s.li,{children:"(After queue was added) The parent job status is determined by the success/failure of all the jobs related to that specific upload, and not the child jobs."}),"\n",(0,t.jsx)(s.li,{children:"This, along with the current structure, makes it impossible to determine what exactly failed."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"To handle all the things mentioned in point 1, I modified the structure as:"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'[\n {\n "id": <job id>,\n "name": <name of the job (upload name)>,\n "queueDate": <job queue date>,\n "uploadId": <upload id of the package>,\n "userId": <user id of the user>,\n "groupId": <group id of the user>,\n "eta": <time left>,\n "status": <job status (completed, killed, failed, etc.)>,\n "jobQueue": [\n {\n "jobQueueId": <job queue id>,\n "jobQueueType": <job queue type (generally agent name)>,\n "startTime": <job queue start time>,\n "endTime": <job queue end time>,\n "status": <job queue completion statu>,\n "itemsProcessed": <number of items processed>,\n "log": <location of log file if exists>,\n "dependencies": <Array: list of dependent job queue ids>,\n "itemsPerSec": <number of items processed per second>,\n "canDoActions": <job can accept new actions like pause and cancel>,\n "isInProgress": <checks if the job queue is still in progress>,\n "isReady": <is the job ready>,\n "download": {\n "text": <text for download link>,\n "link": <link to download the report\n }\n }\n ]\n }\n]\n'})}),"\n",(0,t.jsx)(s.p,{children:"This structure provides a lot more information about the job, and also provides information about the child jobs being executed, and what is the status of each child job. Attaching a screenshot of the response below."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"newJobs",src:n(24295).Z+"",width:"690",height:"783"})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["The same structure is used for the ",(0,t.jsx)(s.code,{children:"/jobs/{id}"})," and ",(0,t.jsx)(s.code,{children:"/jobs/all"})," endpoints."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"The status returned by the endpoints now depend solely on the status of the child jobs, and not all the jobs related to the upload."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["Uplink PR ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2781",children:"feat(api): New endpoints to get/delete/restore/update scancode copyright, email, author, url findings"})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Worked on documenting some improvements in the REST API implementation."}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},24295:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/newJobs-55bbc53b067b586f13bfacc5c08d682f.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>d});var t=n(67294);const i={},o=t.createContext(i);function d(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c2c192ad.dc1d68c1.js b/assets/js/c2c192ad.dc1d68c1.js new file mode 100644 index 0000000000..08a297e190 --- /dev/null +++ b/assets/js/c2c192ad.dc1d68c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6370],{85302:e=>{e.exports=JSON.parse('{"tag":{"label":"pipeline","permalink":"/gsoc/docs/tags/pipeline","allTagsPath":"/gsoc/docs/tags","count":5,"items":[{"id":"2024/pipeline/updates/2024-05-30","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-05-30"},{"id":"2024/pipeline/updates/2024-06-06","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-06-06"},{"id":"2024/pipeline/updates/2024-06-13","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-06-13"},{"id":"2024/pipeline/updates/2024-06-27","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-06-27"},{"id":"2024/pipeline/updates/2024-07-04","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-07-04"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/c3075d90.485bb540.js b/assets/js/c3075d90.485bb540.js new file mode 100644 index 0000000000..0bff9b3fbc --- /dev/null +++ b/assets/js/c3075d90.485bb540.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8812],{54376:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var t=i(85893),s=i(11151);const o={title:"Community bonding",author:"Soham Banerjee"},r="Community Bonding",d={id:"2023/rest/updates/soham/2023-05-11",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-05-11.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-05-11",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-05-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-05-11.md",tags:[],version:"current",frontMatter:{title:"Community bonding",author:"Soham Banerjee"},sidebar:"2023",previous:{title:"Week 12",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-08-17"},next:{title:"Week 1",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-01"}},l={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Minutes of Meeting",id:"minutes-of-meeting",level:3},{value:"During week 1",id:"during-week-1",level:2},{value:"Meeting 2",id:"meeting-2",level:2},{value:"During week 2",id:"during-week-2",level:2},{value:"Meeting 3",id:"meeting-3",level:2},{value:"Minutes of Meeting",id:"minutes-of-meeting-1",level:3}];function a(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,t.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May,11,2023)"})}),"\n",(0,t.jsx)(n.p,{children:"This was the first meeting of community bonding period in GSoC'23. General introduction was done in this meeting and the schedule for weekly meetings was decided."}),"\n",(0,t.jsx)(n.h3,{id:"minutes-of-meeting",children:"Minutes of Meeting"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Documentation and its\n",(0,t.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2023/",children:"repository"})," was explained to\ntrack the updates. For reference we can look upon previous year documentation."]}),"\n",(0,t.jsx)(n.li,{children:"Timings of the each of the project meet and weekly meet was decided."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"during-week-1",children:"During week 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 12,2023- May 17,2023)"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Listed down and discussed the required endpoints with the mentors."}),"\n",(0,t.jsxs)(n.li,{children:["Tried listing down the endpoints in Trello with my fellow contributor ",(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 18,2023)"})}),"\n",(0,t.jsx)(n.p,{children:"Discussion about implementing GitHub projects to assign ourselves issues."}),"\n",(0,t.jsx)(n.h2,{id:"during-week-2",children:"During week 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 19,2023- May 24,2023)"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Implemented the aliases for the ease of recompilation during development procedure."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 25,2023)"})}),"\n",(0,t.jsx)(n.h3,{id:"minutes-of-meeting-1",children:"Minutes of Meeting"}),"\n",(0,t.jsx)(n.p,{children:"Basic discussion about the project previous week work and general updates."})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>d,a:()=>r});var t=i(67294);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c32e947c.b7e7b7d6.js b/assets/js/c32e947c.b7e7b7d6.js new file mode 100644 index 0000000000..0a0cedf34b --- /dev/null +++ b/assets/js/c32e947c.b7e7b7d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9192],{63922:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>r,default:()=>a,frontMatter:()=>l,metadata:()=>h,toc:()=>c});var i=s(85893),n=s(11151);const l={sidebar_position:1,title:"GSoC'21 @ FOSSology",slug:"/2021"},r=void 0,h={id:"2021/index",title:"GSoC'21 @ FOSSology",description:"\x3c!--",source:"@site/docs/2021/index.md",sourceDirName:"2021",slug:"/2021",permalink:"/gsoc/docs/2021",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"GSoC'21 @ FOSSology",slug:"/2021"},sidebar:"2021",next:{title:"Introduction",permalink:"/gsoc/docs/2021/buildsystem/"}},o={},c=[{value:"Projects",id:"projects",level:3},{value:"Mentors",id:"mentors",level:3},{value:"Photo",id:"photo",level:3}];function d(e){const t={a:"a",h3:"h3",img:"img",li:"li",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["2021 was the 4th year FOSSology participated in\n",(0,i.jsx)(t.a,{href:"https://summerofcode.withgoogle.com/organizations/6095425418821632/",children:"Google Summer of Code"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"This year, we had 7 amazing students working with us and spending their summer\ncontributing to the Open Souce. The contributions made to the project are\nsuperb and will help FOSSology to grow as a richer tool and ecosystem."}),"\n",(0,i.jsx)(t.h3,{id:"projects",children:"Projects"}),"\n",(0,i.jsx)(t.p,{children:"Following are the important links to projects done in GSoC - 2021 in FOSSology\norg."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Student"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Project"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Final Reports"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/Aman-Codes",children:"Aman Dwivedi"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/ui",children:"React UI"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/pulls?q=is%3Apr+org%3Afossology+author%3AAman-Codes+sort%3Aupdated-desc+is%3Aclosed",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/buildsystem",children:"New Build System"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://gsoc.avinal.space/posts/report/final-evaluation.html",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap Singh"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/copyrights",children:"Copyright False Positive detection"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/Kaushl2208/GSoC2021",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar AbdelSamea"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/microservice",children:"Microservice Architecture"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/OmarAbdelSamea/fossology/wiki",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/scancode",children:"ScanCode Integration"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://itssingh.github.io/gsoc-blog/final-evaluation.html",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/minerva",children:"Minerva"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/SinghShreya05/GSoC-2021",children:"Visit"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://github.com/shruti3004",children:"Shruti Agarwal"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"/docs/2021/ui",children:"React UI"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.a,{href:"https://medium.com/@shruti-ag/gsoc21-with-fossology-fd97cd2a3924",children:"Visit"})})]})]})]}),"\n",(0,i.jsx)(t.p,{children:"These links (also on the left sidebar) contains information about the project,\nthe weekly updates from the students and even technical documentation which\nwere generated during the Google Summer of Code."}),"\n",(0,i.jsx)(t.h3,{id:"mentors",children:"Mentors"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/mcjaeger",children:"Michael Jaeger"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,i.jsx)(t.li,{children:"Klaus Gmeinwieser"}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"photo",children:"Photo"}),"\n",(0,i.jsx)(t.p,{children:"Due to tough situations this year, we could not meet anyone in person despite\nbeing in same place sometimes. But with the help of technology, we managed to\ncapture this screenshot of our concluding call with every student and mentor."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"group photo",src:s(6047).Z+"",width:"1590",height:"896"})}),"\n",(0,i.jsx)(t.p,{children:"Thanks for being part of the community. \ud83d\udc9a"})]})}function a(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},6047:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/gsoc21participants-67436715411a381980daa1f0b4468da4.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>h,a:()=>r});var i=s(67294);const n={},l=i.createContext(n);function r(e){const t=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c33a6383.0a36dd52.js b/assets/js/c33a6383.0a36dd52.js new file mode 100644 index 0000000000..eff44e0cc3 --- /dev/null +++ b/assets/js/c33a6383.0a36dd52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5920],{79387:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>r});var t=i(85893),s=i(11151);const l={title:"Week 9",author:"Omar AbdelSamea"},a="Coding Week 9",o={id:"2021/microservice/updates/2021-08-03",title:"Week 9",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-08-03.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-08-03",permalink:"/gsoc/docs/2021/microservice/updates/2021-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-08-03.md",tags:[],version:"current",frontMatter:{title:"Week 9",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 8",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-27"},next:{title:"Week 10",permalink:"/gsoc/docs/2021/microservice/updates/2021-08-17"}},d={},r=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Available agents in UI",id:"available-agents-in-ui",level:2},{value:"Migrating configuration to etcd",id:"migrating-configuration-to-etcd",level:2},{value:"End of the week results",id:"end-of-the-week-results",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"coding-week-9",children:"Coding Week 9"}),"\n",(0,t.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,t.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,t.jsx)(n.li,{children:"Vasudev"}),"\n",(0,t.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,t.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,t.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,t.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Presented agent configuration migrated to etcd and working inside the cluster."}),"\n",(0,t.jsx)(n.li,{children:"made a small demo showing applying agent deployment dynamically and the list of available agents in UI is changing accordingly."}),"\n",(0,t.jsx)(n.li,{children:"Discussed agent deployment deletion method by creating a shell script that takes the agent name then deletes the deployment, removing the configuration from etcd and reload scheduler configuration."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"available-agents-in-ui",children:"Available agents in UI"}),"\n",(0,t.jsxs)(n.p,{children:["in ",(0,t.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/src/lib/php/common-plugin.php#L89",children:"agent_disable"})," function in common-plugin the list of available is hosts is requested from etcd and if the agent isn't present in this list it'll be disabled."]}),"\n",(0,t.jsx)(n.h2,{id:"migrating-configuration-to-etcd",children:"Migrating configuration to etcd"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Finalized migrating agent configuration and tested inside the cluster."}),"\n",(0,t.jsx)(n.li,{children:"Added rest of fossology.conf to etcd"}),"\n",(0,t.jsx)(n.li,{children:"started working on db.conf to etcd"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"modified UI to show only available agents during upload."}),"\n",(0,t.jsx)(n.li,{children:"created fo_delete.sh to handle deployment deletion and scheduler config reload."}),"\n",(0,t.jsx)(n.li,{children:"finalized migrating fossology.conf and <agent_name>.conf to etcd and tested inside the cluster."}),"\n",(0,t.jsx)(n.li,{children:"started working on db conf to etcd."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>a});var t=i(67294);const s={},l=t.createContext(s);function a(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c346eb76.aaf3d327.js b/assets/js/c346eb76.aaf3d327.js new file mode 100644 index 0000000000..72e47d4f1a --- /dev/null +++ b/assets/js/c346eb76.aaf3d327.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7569],{99012:e=>{e.exports=JSON.parse('{"tag":{"label":"gsoc24","permalink":"/gsoc/docs/tags/gsoc-24","allTagsPath":"/gsoc/docs/tags","count":38,"items":[{"id":"2024/spdx30/updates/2024-05-07","title":"Community bonding","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-05-07"},{"id":"2024/rest/API-guidelines","title":"REST API Guidelines","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/API-guidelines"},{"id":"2024/ci-scanner/updates/2024-06-06","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-06"},{"id":"2024/pipeline/updates/2024-05-30","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-05-30"},{"id":"2024/rest/updates/Divij/2024-05-30","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-05-30"},{"id":"2024/rest/updates/valens/2024-05-30","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-05-30"},{"id":"2024/spdx-expression/updates/2024-05-28","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-05-28"},{"id":"2024/spdx30/updates/2024-05-28","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-05-28"},{"id":"2024/ci-scanner/updates/2024-06-13","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-13"},{"id":"2024/pipeline/updates/2024-06-06","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-06-06"},{"id":"2024/rest/updates/Divij/2024-06-06","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-06"},{"id":"2024/rest/updates/valens/2024-06-13","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-06-13"},{"id":"2024/spdx-expression/updates/2024-06-04","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-04"},{"id":"2024/spdx30/updates/2024-06-04","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-04"},{"id":"2024/ci-scanner/updates/2024-06-20","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-20"},{"id":"2024/pipeline/updates/2024-06-13","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-06-13"},{"id":"2024/rest/updates/Divij/2024-06-11","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-11"},{"id":"2024/rest/updates/valens/2024-06-20","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-06-20"},{"id":"2024/spdx-expression/updates/2024-06-11","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-11"},{"id":"2024/spdx30/updates/2024-06-11","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-11"},{"id":"2024/ci-scanner/updates/2024-06-27","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-06-27"},{"id":"2024/rest/updates/Divij/2024-06-18","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-18"},{"id":"2024/rest/updates/valens/2024-06-27","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-06-27"},{"id":"2024/spdx-expression/updates/2024-06-18","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-18"},{"id":"2024/spdx30/updates/2024-06-18","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-18"},{"id":"2024/ci-scanner/updates/2024-07-04","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-04"},{"id":"2024/pipeline/updates/2024-06-27","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-06-27"},{"id":"2024/rest/updates/Divij/2024-06-25","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-06-25"},{"id":"2024/rest/updates/valens/2024-07-04","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/valens/2024-07-04"},{"id":"2024/spdx-expression/updates/2024-06-25","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx-expression/updates/2024-06-25"},{"id":"2024/spdx30/updates/2024-06-25","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2024/spdx30/updates/2024-06-25"},{"id":"2024/ci-scanner/updates/2024-07-11","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-11"},{"id":"2024/pipeline/updates/2024-07-04","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2024/pipeline/updates/2024-07-04"},{"id":"2024/rest/updates/Divij/2024-07-02","title":"Week 6","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-07-02"},{"id":"2024/ci-scanner/updates/2024-07-18","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-18"},{"id":"2024/rest/updates/Divij/2024-07-09","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-07-09"},{"id":"2024/ci-scanner/updates/2024-07-25","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2024/ci-scanner/updates/2024-07-25"},{"id":"2024/rest/updates/Divij/2024-07-16","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2024/rest/updates/Divij/2024-07-16"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/c3635ea8.05ee3d32.js b/assets/js/c3635ea8.05ee3d32.js new file mode 100644 index 0000000000..283ebac51b --- /dev/null +++ b/assets/js/c3635ea8.05ee3d32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[535],{35038:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>d,metadata:()=>o,toc:()=>a});var i=n(85893),t=n(11151);const d={title:"Week 5",author:"Divij Sharma",tags:["gsoc24","rest"]},c="Week 5 meeting and activities",o={id:"2024/rest/updates/Divij/2024-06-25",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-06-25.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-06-25",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-06-25.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 5",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-06-18"},next:{title:"Week 6",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-02"}},r={},a=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:2}];function l(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-5-meeting-and-activities",children:"Week 5 meeting and activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 25,2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:"Katharina Ettinger"}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussion",children:"Discussion"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"One Shot Analysis"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Showed demo on the One Shot Analysis endpoints. The endpoints are used to run Nomos, Monk and CEU scans on the uploaded file."}),"\n",(0,i.jsxs)(s.li,{children:["Raised a concern about ",(0,i.jsx)(s.code,{children:"start"})," and ",(0,i.jsx)(s.code,{children:"end"})," parameters in the highlights object are casted as string in the response. Got a suggestion to cast them as integer."]}),"\n",(0,i.jsx)(s.li,{children:"Shared that the endpoints don't return the scanned text, as passing it in the response will make the server slow and is not a requirement either. Scanned text can always be processed on the client side. Got positive feedback on this."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"User Copyright Findings"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Showed screenshots of the new endpoints to get/delete/restore/update/count user copyright findings. The endpoints are used to manage the user copyright findings."}),"\n",(0,i.jsx)(s.li,{children:"No concerns were raised about these endpoints."}),"\n",(0,i.jsx)(s.li,{children:"Will need to implement similar endpoints for scancode findings for copyright, email, author and URL."}),"\n",(0,i.jsxs)(s.li,{children:["Asked about the necessity of ",(0,i.jsx)(s.code,{children:"count"})," endpoint. It can be skipped as of now as it was a user request specifically for ",(0,i.jsx)(s.code,{children:"copyright"})," endpoint, which is already implemented."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"OAuth 2.0 Authorization Code Flow"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Showed a demo on the OAuth 2.0 Authorization Code Flow. The endpoints are used to get the authorization redirect URL from the server and exchange the authorization code for an access token."}),"\n",(0,i.jsxs)(s.li,{children:["Following concerns were raised:","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Since the flow type is Authorization Code, the user should not add the client in their list of active clients. The client should be added by the server admin in FOSSology configuration only."}),"\n",(0,i.jsx)(s.li,{children:"Since the client is no longer added by the user, the current auth flow will not work as we were authorizing the client based on the client id they have added."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["Got a suggestion to use the ",(0,i.jsx)(s.code,{children:"/userinfo"})," endpoint to get the user details based on the access token and then authorize the client based on the user details."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added 12 new endpoints to expose operations for scancode findings for copyright, email, author and URL."}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added the following new endpoints for scancode copyright findings."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["GET ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights"})," : To retrieve scancode copyright findings."]}),"\n",(0,i.jsxs)(s.li,{children:["DELETE ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights/{hash}"})," : To deactivate scancode copyright."]}),"\n",(0,i.jsxs)(s.li,{children:["PATCH ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights/{hash}"})," : To restore deactivated scancode copyright."]}),"\n",(0,i.jsxs)(s.li,{children:["PUT ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights/{hash}"})," : To update scancode copyright."]}),"\n"]}),"\n",(0,i.jsxs)(s.ol,{start:"2",children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added the following new endpoints for scancode email findings."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["GET ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-emails"})," : To retrieve scancode email findings."]}),"\n",(0,i.jsxs)(s.li,{children:["DELETE ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-emails/{hash}"})," : To deactivate scancode email."]}),"\n",(0,i.jsxs)(s.li,{children:["PATCH ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-emails/{hash}"})," : To restore deactivated scancode email."]}),"\n",(0,i.jsxs)(s.li,{children:["PUT ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-emails/{hash}"})," : To update scancode email."]}),"\n"]}),"\n",(0,i.jsxs)(s.ol,{start:"3",children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added the following new endpoints for scancode url findings."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["GET ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-urls"})," : To retrieve scancode url findings."]}),"\n",(0,i.jsxs)(s.li,{children:["DELETE ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-urls/{hash}"})," : To deactivate scancode url."]}),"\n",(0,i.jsxs)(s.li,{children:["PATCH ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-urls/{hash}"})," : To restore deactivated scancode url."]}),"\n",(0,i.jsxs)(s.li,{children:["PUT ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-urls/{hash}"})," : To update scancode url."]}),"\n"]}),"\n",(0,i.jsxs)(s.ol,{start:"4",children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added the following new endpoints for scancode author findings."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["GET ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-authors"})," : To retrieve scancode author findings."]}),"\n",(0,i.jsxs)(s.li,{children:["DELETE ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-authors/{hash}"})," : To deactivate scancode author."]}),"\n",(0,i.jsxs)(s.li,{children:["PATCH ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-authors/{hash}"})," : To restore deactivated scancode author."]}),"\n",(0,i.jsxs)(s.li,{children:["PUT ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-authors/{hash}"})," : To update scancode author."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Uplink PR ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2772",children:"feat(api): New endpoints to get/delete/restore/update scancode copyright, email, author, url findings"})]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:["Updated the ",(0,i.jsx)(s.code,{children:"start"})," and ",(0,i.jsx)(s.code,{children:"end"})," parameters in the highlights object to be casted as integer in the response."]}),"\n",(0,i.jsxs)(s.p,{children:["Uplink PR ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2768",children:"feat(api): Added OneShot analysis endpoints for license & copyright"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["GET ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights"})," : To retrieve scancode copyright findings.\n",(0,i.jsx)(s.img,{alt:"get",src:n(13935).Z+"",width:"2194",height:"1099"})]}),"\n",(0,i.jsxs)(s.li,{children:["DELETE ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights/{hash}"})," : To deactivate scancode copyright.\n",(0,i.jsx)(s.img,{alt:"delete",src:n(67335).Z+"",width:"2194",height:"748"})]}),"\n",(0,i.jsxs)(s.li,{children:["PATCH ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights/{hash}"})," : To restore deactivated scancode copyright.\n",(0,i.jsx)(s.img,{alt:"patch",src:n(79912).Z+"",width:"2194",height:"748"})]}),"\n",(0,i.jsxs)(s.li,{children:["PUT ",(0,i.jsx)(s.code,{children:"uploads/{id}/item/{itemId}/scancode-copyrights/{hash}"})," : To update scancode copyright.\n",(0,i.jsx)(s.img,{alt:"put",src:n(70442).Z+"",width:"2194",height:"907"})]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsxs)(s.em,{children:["Screenshots are similar for ",(0,i.jsx)(s.code,{children:"email"}),", ",(0,i.jsx)(s.code,{children:"url"})," and ",(0,i.jsx)(s.code,{children:"author"})," endpoints."]})})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},67335:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/scancodecopyrightdelete-8411de94f798fcf287f1244095b8793d.png"},13935:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/scancodecopyrightget-f938cc8a1df1ca3830eb1e30a8d7c605.png"},79912:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/scancodecopyrightpatch-8480e4bc266ea5609d32b202909dd74e.png"},70442:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/scancodecopyrightput-66096664001b8d527bb4199864700b13.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>c});var i=n(67294);const t={},d=i.createContext(t);function c(e){const s=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.71f64a7e.js b/assets/js/c377a04b.71f64a7e.js new file mode 100644 index 0000000000..b3608e8b08 --- /dev/null +++ b/assets/js/c377a04b.71f64a7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6971],{59925:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var o=t(85893),s=t(11151);const i={sidebar_position:1,title:"Documents",slug:"/"},r=void 0,c={id:"index",title:"Documents",description:"\x3c!--",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/gsoc/docs/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Documents",slug:"/"}},a={},l=[];function d(e){const n={li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"The pages on the top navigation will be containing the progress reports from\nthe students as well as any related technical documentations about the projects\ndone during this GSoC period."}),"\n",(0,o.jsx)(n.p,{children:'Each project contains the technical documentations (if any) labeled with\nappropriate title. The progress report is contained under folder called\n"Updates" arranged by week number.'}),"\n",(0,o.jsx)(n.p,{children:"Technical documents can range from things like"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"How to setup development environment"}),"\n",(0,o.jsx)(n.li,{children:"How to run a script"}),"\n",(0,o.jsx)(n.li,{children:"Major changes in tools being used"}),"\n",(0,o.jsx)(n.li,{children:"Deploying new features"}),"\n",(0,o.jsx)(n.li,{children:"Etc"}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var o=t(67294);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c3ddd746.f2a536db.js b/assets/js/c3ddd746.f2a536db.js new file mode 100644 index 0000000000..131b58f260 --- /dev/null +++ b/assets/js/c3ddd746.f2a536db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3761],{48193:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var s=n(85893),o=n(11151);const r={title:"Week14",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},a=void 0,i={id:"2022/project/updates/2022-09-08",title:"Week14",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-09-08.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-09-08",permalink:"/gsoc/docs/2022/project/updates/2022-09-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-09-08.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week14",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week13",permalink:"/gsoc/docs/2022/project/updates/2022-09-01"},next:{title:"Introduction",permalink:"/gsoc/docs/2022/reuse/"}},c={},u=[{value:"Meeting 15",id:"meeting-15",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function l(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-15",children:"Meeting 15"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(September 8th, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsx)(t.p,{children:"There is no attendees list available."}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:'I modify the generation button in the browse page, make it transform a new paramater "type" to show the request is from folder browse page or project browse page. I also modify the readmeoss agent to make it could get the value of this paramater.\nHowever, I fail to generate a correct report using my test data. In the discussion, mentors show me the correct way to scan license of uploads and generate report. They also answered many questions I have met during the last week.'}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I will fix my bugs in code and continue to implemnt the new report generation function."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>a});var s=n(67294);const o={},r=s.createContext(o);function a(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.b9664d02.js b/assets/js/c4f5d8e4.b9664d02.js new file mode 100644 index 0000000000..416daca8a0 --- /dev/null +++ b/assets/js/c4f5d8e4.b9664d02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4195],{85057:(t,s,i)=>{i.r(s),i.d(s,{default:()=>h});i(67294);var e=i(86010),a=i(46040),o=i(33692),n=i(52263);const r={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"},c={imageCarousel:"imageCarousel__irZ",subTitle:"subTitle_tuoz",imageCarouselCaption:"imageCarouselCaption_yarU"};var l=i(44996),p=i(10615),g=i(85893);const u=[{img:"/img/gsoc21participants.png",title:"GSoC - 2021 participants"},{img:"/img/gsoc22participants1.png",title:"GSoC - 2022 participants 1"},{img:"/img/gsoc22participants2.png",title:"GSoC - 2022 participants 2"},{img:"/img/gsoc22participants3.png",title:"GSoC - 2022 participants 3"},{img:"/img/gsoc23participants1.png",title:"GSoC - 2023 participants 1"},{img:"/img/gsoc23participants2.png",title:"GSoC - 2023 participants 2"},{img:"/img/gsoc23participants3.png",title:"GSoC - 2023 participants 3"}];function d(){return(0,g.jsxs)("section",{className:c.imageCarousel,children:[(0,g.jsx)("div",{children:(0,g.jsx)("p",{className:`hero__subtitle ${c.subTitle}`,children:"Meet our participants (more photos to come soon)"})}),(0,g.jsx)("div",{children:(0,g.jsx)(p.lr,{showArrows:!0,ariaLabel:"Images of participants",autoPlay:!0,interval:"6000",infiniteLoop:!0,children:u.map(((t,s)=>(0,g.jsxs)("div",{children:[(0,g.jsx)("img",{src:(0,l.Z)(t.img)}),(0,g.jsx)("p",{className:c.imageCarouselCaption,children:t.title})]},s)))})})]})}function m(){const{siteConfig:t}=(0,n.Z)();return(0,g.jsx)("header",{className:(0,e.Z)("hero hero--primary",r.heroBanner),children:(0,g.jsxs)("div",{className:"container",children:[(0,g.jsx)("h1",{className:"hero__title",children:t.title}),(0,g.jsx)("p",{className:"hero__subtitle",children:t.tagline}),(0,g.jsx)("p",{className:"hero__subtitle",children:"Navigate the projects from the drop-downs in the top."}),(0,g.jsxs)("div",{className:r.buttons,children:[(0,g.jsx)(o.Z,{className:"button button--secondary button--lg",to:"/docs/2024",children:"About 2024 projects"}),(0,g.jsx)("a",{children:"##"}),(0,g.jsx)(o.Z,{className:"button button--secondary button--lg",to:"/docs/2023",children:"About 2023 projects"}),(0,g.jsx)("a",{children:"##"}),(0,g.jsx)(o.Z,{className:"button button--secondary button--lg",to:"/docs/2022",children:"About 2022 projects"}),(0,g.jsx)("a",{children:"##"}),(0,g.jsx)(o.Z,{className:"button button--secondary button--lg",to:"/docs/2021",children:"About 2021 projects"})]})]})})}function h(){const{siteConfig:t}=(0,n.Z)();return(0,g.jsxs)(a.Z,{title:`${t.title}`,description:"Updates about GSoC projects at FOSSology.",children:[(0,g.jsx)(m,{}),(0,g.jsx)("main",{children:(0,g.jsx)(d,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/c54eae64.93cb86d9.js b/assets/js/c54eae64.93cb86d9.js new file mode 100644 index 0000000000..5894907843 --- /dev/null +++ b/assets/js/c54eae64.93cb86d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2064],{91911:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>o});var n=s(85893),a=s(11151);const i={title:"Week 2",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},r=void 0,l={id:"2022/spasht/updates/2022-06-15",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/spasht/updates/2022-06-15.md",sourceDirName:"2022/spasht/updates",slug:"/2022/spasht/updates/2022-06-15",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/updates/2022-06-15.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"spasht",permalink:"/gsoc/docs/tags/spasht"},{label:"clearlydefined",permalink:"/gsoc/docs/tags/clearlydefined"}],version:"current",frontMatter:{title:"Week 2",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-08"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-22"}},c={},o=[{value:"Meeting 4",id:"meeting-4",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.em,{children:"(June 15th, 2022)"})}),"\n",(0,n.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,n.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Created a curation in the meeting and observed the entire porcess."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Will try to curate some data and create a PR in CLearlyDefined repository."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>l,a:()=>r});var n=s(67294);const a={},i=n.createContext(a);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c55b67b4.7cfbb479.js b/assets/js/c55b67b4.7cfbb479.js new file mode 100644 index 0000000000..308fcba6ff --- /dev/null +++ b/assets/js/c55b67b4.7cfbb479.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9608],{26523:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>h,toc:()=>d});var t=n(85893),i=n(11151);const r={title:"Week 12",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},l=void 0,h={id:"2022/reuse/updates/2022-08-30",title:"Week 12",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-08-30.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-08-30",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-08-30.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 12",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 11",permalink:"/gsoc/docs/2022/reuse/updates/2022-08-23"},next:{title:"Week 13",permalink:"/gsoc/docs/2022/reuse/updates/2022-09-06"}},a={},d=[{value:"Meeting 24",id:"meeting-24",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 25",id:"meeting-25",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:3}];function c(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"meeting-24",children:"Meeting 24"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(August 30th, 2022)"})}),"\n",(0,t.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Currently working on issue ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - Detecting licenses declared in LICENSE file and LICENSES folder."]}),"\n",(0,t.jsx)(s.li,{children:"Created a new class for detecting LICENSES folder."}),"\n",(0,t.jsx)(s.li,{children:"Few doubts were cleared regarding the above issue."}),"\n",(0,t.jsxs)(s.li,{children:["Suggestions by mentors on solution-","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Use ",(0,t.jsx)(s.code,{children:"declared licenses"})," in REUSE standard report."]}),"\n",(0,t.jsx)(s.li,{children:"REUSE standard report should be same for the whole upload."}),"\n",(0,t.jsxs)(s.li,{children:["Move the class for detecting LICENSES folder under ",(0,t.jsx)(s.code,{children:"lib/php/BusinessRules"})," and create a new class for comparing the data/conclusion."]}),"\n",(0,t.jsxs)(s.li,{children:["Learned to use ",(0,t.jsx)(s.code,{children:"PHP Unit and Functional Tests"})," from the CLI."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"meeting-25",children:"Meeting 25"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(September 1st, 2022)"})}),"\n",(0,t.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,t.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Currently working on issue ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/issues/2214",children:"#2214"})," - Detecting licenses declared in LICENSE file and LICENSES folder."]}),"\n",(0,t.jsx)(s.li,{children:"Cleared doubts regarding the PHP Unit and Functional test."}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Implementation of LICENSES directory detection."}),"\n",(0,t.jsx)(s.li,{children:"Solve the changes suggest by mentors on existing PR."}),"\n"]})]})}function o(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>h,a:()=>l});var t=n(67294);const i={},r=t.createContext(i);function l(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c69247d7.41adbb48.js b/assets/js/c69247d7.41adbb48.js new file mode 100644 index 0000000000..31e8ac3459 --- /dev/null +++ b/assets/js/c69247d7.41adbb48.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8668],{35671:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>l,metadata:()=>o,toc:()=>h});var n=s(85893),i=s(11151);const l={sidebar_position:2,title:"Google Summer of Code Proposals 2022"},r=void 0,o={id:"2022/GSoC-projects",title:"Google Summer of Code Proposals 2022",description:"\x3c!--",source:"@site/docs/2022/GSoC-projects.md",sourceDirName:"2022",slug:"/2022/GSoC-projects",permalink:"/gsoc/docs/2022/GSoC-projects",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/GSoC-projects.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Google Summer of Code Proposals 2022"},sidebar:"2022",previous:{title:"GSoC'22 @ FOSSology",permalink:"/gsoc/docs/2022"},next:{title:"Introduction",permalink:"/gsoc/docs/2022/atarashi/"}},d={},h=[{value:"Intro",id:"intro",level:2},{value:"Interested in Application? - Getting Grip",id:"interested-in-application---getting-grip",level:2},{value:"Examples from past programs",id:"examples-from-past-programs",level:2},{value:"Mentors",id:"mentors",level:2},{value:"Proposals so far:",id:"proposals-so-far",level:4},{value:"Topic Proposals",id:"topic-proposals",level:2},{value:"Topic Proposals from 2022",id:"topic-proposals-from-2022",level:2},{value:"SPDX naming updates and reporting",id:"spdx-naming-updates-and-reporting",level:3},{value:"Notes from SPDX DocFest:",id:"notes-from-spdx-docfest",level:4},{value:"REST API and UI improvements",id:"rest-api-and-ui-improvements",level:3},{value:"Integrating Open Source Review Toolkit",id:"integrating-open-source-review-toolkit",level:3},{value:"Adopting REUSE standards in FOSSology",id:"adopting-reuse-standards-in-fossology",level:3},{value:"Improving FOSSology CI scanner image",id:"improving-fossology-ci-scanner-image",level:3},{value:"Enhancement with ClearlyDefined.io (spasht)",id:"enhancement-with-clearlydefinedio-spasht",level:3},{value:"Compatibility for PHP-8",id:"compatibility-for-php-8",level:3},{value:"Introduce concept of project in FOSSology",id:"introduce-concept-of-project-in-fossology",level:3},{value:"Improve Minerva OSS Dataset and implement models for Atarashi",id:"improve-minerva-oss-dataset-and-implement-models-for-atarashi",level:3},{value:"Tasks:",id:"tasks",level:4},{value:"Overhauling scheduler design",id:"overhauling-scheduler-design",level:3},{value:"Debian packaging for Debian repository",id:"debian-packaging-for-debian-repository",level:3}];function c(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Welcome to the main page for all GSoC 2022 related information."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Check ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/Google-Summer-of-Code-Proposals-2022",children:"https://github.com/fossology/fossology/wiki/Google-Summer-of-Code-Proposals-2022"})]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,n.jsx)(t.p,{children:"We from the fossology project would like to apply for GSOC. Please see two main resources for finding out more FOSSology in general:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://www.fossology.org",children:"https://www.fossology.org"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://fossology.github.io/gsoc/",children:"https://fossology.github.io/gsoc/"})}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["Meetings: Checkout the ",(0,n.jsx)(t.a,{href:"/docs/2022#meetings-table",children:"Meetings table"})]}),"\n",(0,n.jsx)(t.h2,{id:"interested-in-application---getting-grip",children:"Interested in Application? - Getting Grip"}),"\n",(0,n.jsx)(t.p,{children:"If you are interested in an application - great! We encourage your application. So the question is how to get started with the topic, just a few points:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Check ",(0,n.jsx)(t.a,{href:"https://www.fossology.org",children:"https://www.fossology.org"})," and these Github pages ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki",children:"https://github.com/fossology/fossology/wiki"})]}),"\n",(0,n.jsxs)(t.li,{children:["Maybe check some initial intro at ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/New-at-FOSSology%2C-You-Could-",children:"https://github.com/fossology/fossology/wiki/New-at-FOSSology%2C-You-Could-"}),"...","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://www.fossology.org/get-started/basic-workflow/",children:"https://www.fossology.org/get-started/basic-workflow/"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://www.fossology.org/get-started/basic-training/",children:"https://www.fossology.org/get-started/basic-training/"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://fossology.github.io/",children:"https://fossology.github.io/"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Try to install fossology, either using vagrant or docker","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Check out our YouTube video for installation from source: ",(0,n.jsx)(t.a,{href:"https://youtu.be/q12KwmPYZG4",children:"https://youtu.be/q12KwmPYZG4"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:"Read the proposed topics"}),"\n",(0,n.jsxs)(t.li,{children:["Use the mailing list ",(0,n.jsx)(t.a,{href:"mailto:fossology-devel@fossology.org",children:"fossology-devel@fossology.org"})," or contact proposed mentors for further steps"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://join.slack.com/t/fossology/shared_invite/enQtNzI0OTEzMTk0MjYzLTYyZWQxNDc0N2JiZGU2YmI3YmI1NjE4NDVjOGYxMTVjNGY3Y2MzZmM1OGZmMWI5NTRjMzJlNjExZGU2N2I5NGY",children:"Slack invite link"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2140",children:"GitHub discussion"})}),"\n",(0,n.jsxs)(t.li,{children:["If you are interested in trying to make contributions, see out issues with the label ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/contribute",children:"good first issue"}),". Maybe you could sort out the workflow and make a first pull request."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"examples-from-past-programs",children:"Examples from past programs"}),"\n",(0,n.jsx)(t.p,{children:"In 2020, we were awarded seven slots, please see here what was the result of it:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Ayush and Kaushlendra's work on the ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})," license scanner and ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/Nirjas",children:"Nirjas"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/hastagAB/GSoC-2020",children:"https://github.com/hastagAB/GSoC-2020"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Kaushl2208/GSoC-2020",children:"https://github.com/Kaushl2208/GSoC-2020"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Darshan's work on Dashboard: ",(0,n.jsx)(t.a,{href:"https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki",children:"https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki"})]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Also - very much fun - There are some YouTube videos created:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Ayush made a youtube video / interview style of his experience: ",(0,n.jsx)(t.a,{href:"https://youtu.be/C8f_etew-yc",children:"https://youtu.be/C8f_etew-yc"})]}),"\n",(0,n.jsxs)(t.li,{children:["Hypnos invited Darshan for an interview: ",(0,n.jsx)(t.a,{href:"https://youtu.be/_KbQ83JK7Q0",children:"https://youtu.be/_KbQ83JK7Q0"})]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["In 2021, the GSOC program awarded the fossology project with 7 slots. It was a lot bigger and a lot of fun for 2021, a dedicated page has been set up. Please see the GOSC works ",(0,n.jsx)(t.a,{href:"/gsoc/docs/2021",children:"here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["From this page you can also get an idea about the work being carried out: check the weekly reporting, ",(0,n.jsx)(t.a,{href:"../2021/ui",children:"for example for the UI project"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"mentors",children:"Mentors"}),"\n",(0,n.jsx)(t.p,{children:"Interested in becoming a mentor? Please reach out to us!"}),"\n",(0,n.jsx)(t.h4,{id:"proposals-so-far",children:"Proposals so far:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})," for FOSSologyUI"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"topic-proposals",children:"Topic Proposals"}),"\n",(0,n.jsx)(t.p,{children:"Please reach out to us to add more proposals for GSoC 2022."}),"\n",(0,n.jsxs)(t.p,{children:["Currently discussion happening on ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2140",children:"https://github.com/fossology/fossology/discussions/2140"})]}),"\n",(0,n.jsx)(t.h2,{id:"topic-proposals-from-2022",children:"Topic Proposals from 2022"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#spdx-naming-updates-and-reporting",children:"SPDX naming updates and reporting"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#rest-api-and-ui-improvements",children:"REST API and UI improvements"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#integrating-open-source-review-toolkit",children:"Integrating Open Source Review Toolkit"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#adopting-reuse-standards-in-fossology",children:"Adopting REUSE standards in FOSSology"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#improving-fossology-ci-scanner-image",children:"Improving FOSSology CI scanner image"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#enhancement-with-clearlydefinedio-spasht",children:"Enhancement with ClearlyDefined.io (spasht)"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#compatibility-for-php-8",children:"Compatibility for PHP-8"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#introduce-concept-of-project-in-fossology",children:"Introduce concept of project in FOSSology"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#improve-minerva-oss-dataset-and-implement-models-for-atarashi",children:"Improve Minerva OSS Dataset and implement models for Atarashi"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#overhauling-scheduler-design",children:"Overhauling scheduler design"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"#debian-packaging-for-debian-repository",children:"Debian packaging for Debian repository"})}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"spdx-naming-updates-and-reporting",children:"SPDX naming updates and reporting"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Update SPDX license names and support for report formats"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Updating SPDX license names to new naming convention. ",(0,n.jsx)(t.a,{href:"https://spdx.dev/ids/",children:"Resource"})]}),"\n",(0,n.jsx)(t.li,{children:"Fixing issues with SPDX RDF (see notes bellow)."}),"\n",(0,n.jsx)(t.li,{children:"Other SPDX format reports, five file formats possible:"}),"\n"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Tag/value (.spdx)","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Exists"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["JSON(.spdx.json)","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Can be implemented"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["YAML(.spdx.yml)","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Can be implemented"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["RDF/xml(spdx.rdf)","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Exists"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Spreadsheets (.xls)","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Need to understand if helpful"}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/issues/1379",children:"https://github.com/fossology/fossology/issues/1379"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"References:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["See ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2133",children:"https://github.com/fossology/fossology/pull/2133"})," for sample implementation of simple formats"]}),"\n",(0,n.jsxs)(t.li,{children:["See ",(0,n.jsx)(t.a,{href:"https://github.com/spdx/spdx-spec/tree/development/v2.2.2/examples",children:"https://github.com/spdx/spdx-spec/tree/development/v2.2.2/examples"})]}),"\n",(0,n.jsxs)(t.li,{children:["Related comments are available on discussion ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/discussions/2140#discussioncomment-1939857",children:"https://github.com/fossology/fossology/discussions/2140#discussioncomment-1939857"})]}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Shaheem, Michael"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]}),"\n",(0,n.jsx)(t.h4,{id:"notes-from-spdx-docfest",children:"Notes from SPDX DocFest:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"File types are sometime OTHER vs SOURCE"}),"\n",(0,n.jsx)(t.li,{children:"Originator/Supplier missing"}),"\n",(0,n.jsx)(t.li,{children:"Download Location is NOASSERTION"}),"\n",(0,n.jsxs)(t.li,{children:["Package verification code is wrong. Should be all the source files","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://spdx.github.io/spdx-spec/package-information/#79-package-verification-code-field",children:"https://spdx.github.io/spdx-spec/package-information/#79-package-verification-code-field"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Filename should start with './' ",(0,n.jsx)(t.a,{href:"https://spdx.github.io/spdx-spec/package-information/#74-package-file-name-field",children:"https://spdx.github.io/spdx-spec/package-information/#74-package-file-name-field"})]}),"\n",(0,n.jsxs)(t.li,{children:["Should rename file name as per ",(0,n.jsx)(t.a,{href:"https://spdx.github.io/spdx-spec/conformance/#44-standard-data-format-requirements",children:"https://spdx.github.io/spdx-spec/conformance/#44-standard-data-format-requirements"})]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"rest-api-and-ui-improvements",children:"REST API and UI improvements"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Bringing new ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI",children:"FOSSologyUI"})," towards completion"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"Continue work on React repo."}),"\n"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Bring in new features."}),"\n",(0,n.jsx)(t.li,{children:"New design patterns."}),"\n"]}),"\n",(0,n.jsxs)(t.ol,{start:"2",children:["\n",(0,n.jsx)(t.li,{children:"Improve REST API and expose more endpoints"}),"\n"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/issues?q=is%3Aissue+is%3Aopen+REST",children:"https://github.com/fossology/fossology/issues?q=is%3Aissue+is%3Aopen+REST"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/issues",children:"https://github.com/Shruti3004/FOSSology-REST-API/issues"})}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Shruti, Shaheem, Sahil, Vivek"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"350 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"integrating-open-source-review-toolkit",children:"Integrating Open Source Review Toolkit"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Using ORT to fetch dependencies and generate SBOM"]}),"\n",(0,n.jsx)(t.p,{children:"Build systems fetch the required dependencies (library/artifact) for a project while building the project. Its important to get an insight of these dependencies for license compliance check."}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.a,{href:"https://github.com/oss-review-toolkit/ort",children:"OSS Review Toolkit"})," is an open source project helps to find dependencies in a project."]}),"\n",(0,n.jsx)(t.p,{children:"The goal of this project is to render the project dependencies created by ort and display those in the fossology-UI. Dependencies can be scheduled directly from the UI and scan with fossology."}),"\n",(0,n.jsxs)(t.p,{children:["Alternative: ",(0,n.jsx)(t.a,{href:"https://github.com/oss-review-toolkit/ort/issues/2694",children:"oss-review-toolkit/ort#2694"})]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Shaheem, Avinal, Michael"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"350 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"adopting-reuse-standards-in-fossology",children:"Adopting REUSE standards in FOSSology"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Adopting ",(0,n.jsx)(t.a,{href:"https://reuse.software/spec/",children:"REUSE.software specs"})," in FOSSology codebase"]}),"\n",(0,n.jsx)(t.p,{children:"Copyright and licensing is difficult, especially when reusing software from different projects that are released under various different licenses. REUSE make it easier for you to declare the licenses under which your works are released, but they also make it easier for a computer to understand how your project is licensed. This specification defines a standardized method for declaring copyright and licensing for software projects. REUSE also helps in creating a bill of materials with just one simple command."}),"\n",(0,n.jsx)(t.p,{children:"FOSSology currently uses old methods of defining licenses on source files which can lead to some ambiguity. Following the REUSE specs, the code base of FOSSology should be updated with new licensing format."}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Note:"})," On its own, the project is very small for being a GSoC project. We can club it with other tasks, like working on ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/issues/1592",children:"issue #1592"})]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Michael, Nicolas"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"improving-fossology-ci-scanner-image",children:"Improving FOSSology CI scanner image"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Enhancing current scanner image with new reports and features"]}),"\n",(0,n.jsx)(t.p,{children:"As a fun project, FOSSology started combining scanners in a simple and small Docker image which can be run on CI providers. The\nimage is currently capable of understanding build environment (GitLab/GitHub Actions/Travis) and use their API's to fetch diff of\na branch or scan the complete repo. The capabilities of image include license scanning with Nomos and ojo scanners, copyright and keyword scanning with respective scanners. The image makes use of a Python script to perform all the tasks."}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["The script, however, currently prints report in text format on console and generate the same as an artifact. It can be improved\nby generating reports in other formats like SPDX reports. See ",(0,n.jsx)(t.a,{href:"https://github.com/spdx/tools-python",children:"their Python API"}),"."]}),"\n",(0,n.jsx)(t.li,{children:"The integration with GitHub Actions can be improved by reporting line number where a license violation is found."}),"\n",(0,n.jsxs)(t.li,{children:["Allowing user to provide a different list of Keywords for scanning (currently stored at ",(0,n.jsx)(t.code,{children:"/usr/local/share/fossology/keyword/agent/keyword.conf"}),")."]}),"\n",(0,n.jsxs)(t.li,{children:["Improving on ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/FOSSology-scanners-in-CI#explanation",children:"whitelist format"})," with feature\nto provide it from other sources, currently it is read from a file which is expected to be in the root of repo being scanned."]}),"\n",(0,n.jsxs)(t.li,{children:["Create a server backed image","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"There will be a server running on a remote machine."}),"\n",(0,n.jsx)(t.li,{children:"The CI script will push the package to the server for scan with auto conclusion."}),"\n",(0,n.jsx)(t.li,{children:"The package will become a version of a project."}),"\n",(0,n.jsx)(t.li,{children:"Downloads the report and make it available as an artifact."}),"\n",(0,n.jsx)(t.li,{children:"If there are unidentified licenses left, provide a link for manual review."}),"\n",(0,n.jsx)(t.li,{children:"This can be extended to integrate with ticket management systems like Jira and redmine."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Resources:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Current documenation: ",(0,n.jsx)(t.a,{href:"https://gitlab.com/GMishx/fossology/-/merge_requests",children:"https://gitlab.com/GMishx/fossology/-/merge_requests"})]}),"\n",(0,n.jsxs)(t.li,{children:["Sample outputs: ",(0,n.jsx)(t.a,{href:"https://gitlab.com/GMishx/fossology/-/merge_requests",children:"https://gitlab.com/GMishx/fossology/-/merge_requests"})]}),"\n",(0,n.jsxs)(t.li,{children:["Sample implementaiton for GHA: ",(0,n.jsx)(t.a,{href:"https://github.com/GMishx/fossology-scan",children:"https://github.com/GMishx/fossology-scan"})]}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Anupam"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"350 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"enhancement-with-clearlydefinedio-spasht",children:"Enhancement with ClearlyDefined.io (spasht)"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Contribute compliance metadata back to ClearlyDefined.io and community"]}),"\n",(0,n.jsx)(t.p,{children:"Clearly defined is a project for collecting metadata about published software. This metadata shall help, among other things, for achieving OSS license compliance. More info can be found at:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Docs -- ",(0,n.jsx)(t.a,{href:"https://docs.clearlydefined.io",children:"https://docs.clearlydefined.io"})]}),"\n",(0,n.jsxs)(t.li,{children:["GitHub -- ",(0,n.jsx)(t.a,{href:"https://github.com/clearlydefined/clearlydefined",children:"https://github.com/clearlydefined/clearlydefined"})]}),"\n",(0,n.jsxs)(t.li,{children:["API Docs -- ",(0,n.jsx)(t.a,{href:"https://api.clearlydefined.io/api-docs/#/curations/patch_curations",children:"https://api.clearlydefined.io/api-docs/#/curations/patch_curations"})]}),"\n",(0,n.jsxs)(t.li,{children:["Discord -- ",(0,n.jsx)(t.a,{href:"http://discord.gg/wEzHJku",children:"http://discord.gg/wEzHJku"})]}),"\n",(0,n.jsxs)(t.li,{children:["Twitter -- ",(0,n.jsx)(t.a,{href:"http://twitter.com/clearlydefd",children:"http://twitter.com/clearlydefd"})]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"The spasht agent is already pulling the data from ClearlyDefined, following enhancements are required:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Fetch the main license of the package."}),"\n",(0,n.jsx)(t.li,{children:"What to do if package does not exist on ClearlyDefined.io"}),"\n",(0,n.jsxs)(t.li,{children:["Push the curated data back to ClearlyDefined.io","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Current understanding: Send a patch request to ",(0,n.jsx)(t.code,{children:"PATCH /curations"})," and in response, there will be a GitHub ",(0,n.jsx)(t.code,{children:"prNumber"})," and ",(0,n.jsx)(t.code,{children:"url"})]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-JSON",children:'{\n "contributionInfo": {\n "summary": "title (100 char)",\n "details": "What\'s the problem",\n "resolution": "What\'s fixed and how",\n "type": "missing/incorrect/incomplete/ambiguous/other",\n "removeDefinitions": false\n },\n "patches": [\n {\n "coordinates": {"type": "composer", "provider": "packagist",\n "namespace": "athome", "name": "odtphp", "revision": "1.5"},\n "revisions": {\n "1.5": {\n "files": [\n {\n "path": "Listeur-odtphp-9f31202/library/zip/pclzip/pclzip.lib.php",\n "license": "LGPL-2.1-or-later",\n "attributions": [\n "123123"\n ]\n }\n ]\n }\n }\n }\n ]\n}\n'})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Kaushlendra"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"compatibility-for-php-8",children:"Compatibility for PHP-8"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," FOSSology should be compatible with the PHP-8 version"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"Syntax compatibility for PHP-8"}),"\n",(0,n.jsx)(t.li,{children:"Backward compatibility with PHP-7.2.24"}),"\n",(0,n.jsx)(t.li,{children:"Omit all the deprecated features."}),"\n",(0,n.jsx)(t.li,{children:"Migrating views from plain PHP to Twig."}),"\n",(0,n.jsx)(t.li,{children:"Introduction to OPcache or other compatible caching mechanism"}),"\n",(0,n.jsx)(t.li,{children:"FOSSology should run on top of PHP8"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"References"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["See ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/1925",children:"https://github.com/fossology/fossology/pull/1925"})," for sample implementation"]}),"\n",(0,n.jsxs)(t.li,{children:["See ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2107",children:"https://github.com/fossology/fossology/pull/2107"})," for new dependencies"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Docs:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["PHP Migration Docs: ",(0,n.jsx)(t.a,{href:"https://www.php.net/manual/en/migration80.php",children:"https://www.php.net/manual/en/migration80.php"})]}),"\n",(0,n.jsxs)(t.li,{children:["Twig Docs: ",(0,n.jsx)(t.a,{href:"https://twig.symfony.com/doc/3.x/",children:"https://twig.symfony.com/doc/3.x/"})]}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible Mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Shaheem, Kaushlendra, Avinal"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Good to have:"})," Improving the MVC architecture of Fossology using Symfony\nSymfony as of now is used purely for dependency injection but it can do a lot more. Introducing the capabilities and making the architecture more stable is a good extension to the project."]}),"\n",(0,n.jsx)(t.h3,{id:"introduce-concept-of-project-in-fossology",children:"Introduce concept of project in FOSSology"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Gather uploads under identified ",(0,n.jsx)(t.em,{children:"projects"})]}),"\n",(0,n.jsxs)(t.p,{children:["Originally described in ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/issues/1738",children:"#1738"}),"\nA project would be defined by:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"a project ID (as primary key)"}),"\n",(0,n.jsx)(t.li,{children:"a project name"}),"\n",(0,n.jsx)(t.li,{children:"a root folder in Fossology"}),"\n",(0,n.jsx)(t.li,{children:"one or more Group IDs and associated access."}),"\n",(0,n.jsx)(t.li,{children:"a URL / ID / Free field to link the project to an external tool"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"This could be used, for example:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["to gather multiple uploads under the same umbrella,","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"and make bulk changes changes to all uploads / sub-directories that belong to a given project"}),"\n",(0,n.jsx)(t.li,{children:"reuse (cleared) findings from previous scan of same Project (or same component)"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:"to associate a link to a ticketing system or project management solution"}),"\n",(0,n.jsx)(t.li,{children:"to produce metrics with Work-In-Progress dashboard"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"In terms of UI integration:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Add an optional selection of project for new uploads"}),"\n",(0,n.jsx)(t.li,{children:"Add pages to list, edit, delete projects (in Organize or Admin menu)"}),"\n",(0,n.jsx)(t.li,{children:'Display the project name in the "Folder Navigation" window, and in the yellow band'}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Other extensions:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["inside Projects, create ",(0,n.jsx)(t.em,{children:"Components"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"have a proper name"}),"\n",(0,n.jsx)(t.li,{children:"are versioned"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["leverage the use of ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/Tagging",children:"Fossology tags "})]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Practical use example:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"I have a new project FooBar"}),"\n",(0,n.jsxs)(t.li,{children:["This project is composed of 3 components: ",(0,n.jsx)(t.em,{children:"Front-end"}),", ",(0,n.jsx)(t.em,{children:"Back-end"})," and ",(0,n.jsx)(t.em,{children:"Mobile application"})]}),"\n",(0,n.jsxs)(t.li,{children:["I want uploads to be stored in folders ",(0,n.jsx)(t.code,{children:"projects/FooBar/Front-end"}),", ..."]}),"\n",(0,n.jsxs)(t.li,{children:["I want to be able to give permissions for ",(0,n.jsx)(t.em,{children:"all"})," Folders and Uploads for that Project"]}),"\n",(0,n.jsx)(t.li,{children:"I want to automatically reuse findings from previous scans of same components"}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Nicolas, Anupam"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"improve-minerva-oss-dataset-and-implement-models-for-atarashi",children:"Improve Minerva OSS Dataset and implement models for Atarashi"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," To implement a semantic text model for finding out OSS license similarity with best accuracy"]}),"\n",(0,n.jsxs)(t.p,{children:["OSS Dataset Repository: ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva Dataset Generation"}),";\nAtarashi Repository: ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"FOSSology/Atarashi"})]}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.a,{href:"https://fossology.github.io/gsoc/docs/2021/",children:"GSoC 2021 @FOSSology"}),' we have created our initial OSS License Dataset "',(0,n.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva Dataset Generation"}),'" which can be used to build Machine Learning models\nfor license detection in ',(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"}),". We are now planning to try out few machine learning models to be trained on our dataset for the use case of Atarashi (OSS License Detection). As the open source license texts differ\nby very few tokens only which changes the meaning of the text. Semantic Similarity models might be the good place to try but we\nare open to discuss more about any other models that can fit our use case perfectly."]}),"\n",(0,n.jsx)(t.h4,{id:"tasks",children:"Tasks:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Improve ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva Dataset Generation"})," for more accurate license files"]}),"\n",(0,n.jsxs)(t.li,{children:["Research and suggest various ML/DL models to be implemented for ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})," (open for discussion)"]}),"\n",(0,n.jsxs)(t.li,{children:["Implement the best model discussed for ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})]}),"\n",(0,n.jsx)(t.li,{children:"Improve the performance"}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Anupam, Ayush, Kaushlendra, Vasudev"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"overhauling-scheduler-design",children:"Overhauling scheduler design"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Improving FOSSology scheduler or replacing with OTS solution"]}),"\n",(0,n.jsx)(t.p,{children:"The existing scheduler design is causing new issues which need to be addressed. Moreover, existing scheduler design is not touched in years."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Concerning points"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"The scheduler is written in C which makes it next to impossible to find cause of a failure."}),"\n",(0,n.jsx)(t.li,{children:"The C language does not support exception handling out of the box. It makes code less readable and prone to errors."}),"\n",(0,n.jsxs)(t.li,{children:["The linear queue design causes issue when there should be only one instance of an agent running for an upload, but overall the agent is not mutually exclusive.","\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"For example, if the monkbulk has a limit set to 1, it should be implied for only single upload. But with linear queue, this monkbulk job will block all other agents from executing even when they are not effected by the results of monkbulk."}),"\n",(0,n.jsxs)(t.p,{children:["This essentially makes the agent mutually exclusive even though, there is a special flag EXCLUSIVE for the very same purpose: ",(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/wiki/Job-Scheduler#agentconfs",children:"https://github.com/fossology/fossology/wiki/Job-Scheduler#agentconfs"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"One idea on redesigning the queue, it can be broken into buckets per upload each maintaining its own priority queue. There can be another queue for global operations like maintenance, delagent, etc."}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"Doing so, each bucket can be traversed in round-robin and pick first pending job and check against host limit. This will eliminate the scenario mentioned in point 3. Also, exclusive agents can be sent to global queue."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{children:" upload specific queue\n|-<upload_2> -> nomos, copyright, ojo, keyword\n|-<upload_3> -> monkbulk, decider, monkbulk, decider\n|-<upload_4> -> reuser, decider\n\nglobal queue\n-> delagent,\n"})}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.ol,{start:"4",children:["\n",(0,n.jsx)(t.li,{children:"Since the FOSSology is released, there can be number of new scheduling libraries being released which needs to be explored. They can be a nice addition to the project."}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Anupam, Michael"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"350 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Professional"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"debian-packaging-for-debian-repository",children:"Debian packaging for Debian repository"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Goal:"})," Improve Debian packaging and make it acceptable for APT"]}),"\n",(0,n.jsxs)(t.p,{children:["The existing effort to put FOSSology under Debian packaging list needs to be taken forward. A repository under Debian Salsa was setup initially but not maintained any more: ",(0,n.jsx)(t.a,{href:"https://salsa.debian.org/fossology-team/fossology",children:"https://salsa.debian.org/fossology-team/fossology"}),(0,n.jsx)("br",{}),"\nIt is configured to use ",(0,n.jsx)(t.a,{href:"https://honk.sigxcpu.org/piki/projects/git-buildpackage/",children:"gbp"}),"."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Blockers"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"The Debian building mechanism does not allow installation from sources other than apt. The Composer packages need to be packed as Debian packages and shipped with FOSSology."}),"\n",(0,n.jsx)(t.li,{children:"Packaging and shipping other tools needs to satisfy their licensing terms."}),"\n",(0,n.jsx)(t.li,{children:"The versions of packages in APT and actual versions used are different."}),"\n",(0,n.jsx)(t.li,{children:"APT also provides JS libraries like JQuery and DataTables but RHL does not."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"See also"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2075",children:"https://github.com/fossology/fossology/pull/2075"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/PackagingWithGit",children:"https://wiki.debian.org/PackagingWithGit"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/SimplePackagingTutorial",children:"https://wiki.debian.org/SimplePackagingTutorial"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/Diagrams",children:"https://wiki.debian.org/Diagrams"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://wiki.debian.org/PHP",children:"https://wiki.debian.org/PHP"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://peertube.debian.social/videos/watch/0fb2dbc4-f43d-477e-8b14-20c426f970de",children:"https://peertube.debian.social/videos/watch/0fb2dbc4-f43d-477e-8b14-20c426f970de"})}),"\n"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Category"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Rating"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Low Hanging Fruit"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Risk/Exploratory"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"**"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Fun/Periphial"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Core Development"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"*"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project Infrastructure"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"***"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Possible mentors"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Gaurav, Michael"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Project size"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"175 hour"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Preferred contributor"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Student/Professional"})]})]})]})]})}function a(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>r});var n=s(67294);const i={},l=n.createContext(i);function r(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c73c0369.a392a8db.js b/assets/js/c73c0369.a392a8db.js new file mode 100644 index 0000000000..9530c166c2 --- /dev/null +++ b/assets/js/c73c0369.a392a8db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4414],{12289:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>d,toc:()=>c});var i=s(85893),r=s(11151);const t={title:"Week 7",author:"Omar AbdelSamea"},l="Coding Week 7",d={id:"2021/microservice/updates/2021-07-20",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-07-20.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-07-20",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 6",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-13"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-27"}},o={},c=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Meeting 1",id:"meeting-1",level:2},{value:"Organizer",id:"organizer-1",level:3},{value:"Attendees",id:"attendees-1",level:3},{value:"Outcomes",id:"outcomes-1",level:3},{value:"End of the week result",id:"end-of-the-week-result",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"coding-week-7",children:"Coding Week 7"}),"\n",(0,i.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,i.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,i.jsx)(n.li,{children:"Vasudev"}),"\n",(0,i.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,i.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,i.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussed the issue of agent UI folders, agent UI folders are present in each agent container. The web container can't access those folders. The discussed solution will be to bundle all UI folders in the web Debian package."}),"\n",(0,i.jsxs)(n.li,{children:["Presented integration of etcd in scheduler code after migrating the ",(0,i.jsx)(n.code,{children:"Hosts"})," from ",(0,i.jsx)(n.code,{children:"fossology.conf"})," to etcd."]}),"\n",(0,i.jsx)(n.li,{children:"Showed the structure of agent configuration in Json format."}),"\n",(0,i.jsx)(n.li,{children:"Gaurav provided solution for agent UI issue for the current build system."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.h3,{id:"organizer-1",children:"Organizer"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(n.li,{children:"Vasudev Maduri"}),"\n",(0,i.jsx)(n.li,{children:"Kaushlendra Singh"}),"\n",(0,i.jsx)(n.li,{children:"Shreya Pratap"}),"\n",(0,i.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"outcomes-1",children:"Outcomes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Showed a demo for a working system using hosts from etcd."}),"\n",(0,i.jsx)(n.li,{children:"Discussed the migration of agent configuration to etcd."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"end-of-the-week-result",children:"End of the week result"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Migrated Hosts from ",(0,i.jsx)(n.code,{children:"fossology.conf"})," to etcd","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/src/scheduler/agent/scheduler.c#L971",children:"scheduler_foss_config"})," in scheduler.c"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Started on migrating agent configuration to etcd"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>l});var i=s(67294);const r={},t=i.createContext(r);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c891a8e6.dd5b101e.js b/assets/js/c891a8e6.dd5b101e.js new file mode 100644 index 0000000000..052c115100 --- /dev/null +++ b/assets/js/c891a8e6.dd5b101e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7533],{7584:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>t,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>d,toc:()=>o});var p=l(85893),a=l(11151);const i={title:"Week 4",author:"Aman Dwivedi"},s=void 0,d={id:"2021/ui/updates/aman/2021-07-06",title:"Week 4",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-07-06.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-07-06",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-07-06.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-29"},next:{title:"Week 5",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-13"}},t={},o=[{value:"Screenshots",id:"screenshots",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function r(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(n.ul,{children:["\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Added delete folder page"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsxs)(n.p,{children:["Integrated ",(0,p.jsx)(n.code,{children:"/users/self"})," API"]}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Display username in the user dropdown"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Added edit folder page"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Added move folder page"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Added error check in API call on search page"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Fixed duplicate CSS ids on the search page"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Added unlink folder or upload page"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Fixed headings and open external links in new tab"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Added folder navigation component"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Integrated the Airbnb style guide"}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:"Updated Eslint and Prettier to enforce Airbnb style guide"}),"\n"]}),"\n"]}),"\n",(0,p.jsx)(n.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.img,{alt:"delete folder page",src:l(14744).Z+"",width:"1920",height:"934"})}),"\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.img,{alt:"user self API integration",src:l(40685).Z+"",width:"333",height:"280"})}),"\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.img,{alt:"edit folder page",src:l(76608).Z+"",width:"1887",height:"611"})}),"\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.img,{alt:"move folder page",src:l(43607).Z+"",width:"1920",height:"324"})}),"\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.img,{alt:"folder navigation page",src:l(52651).Z+"",width:"634",height:"803"})}),"\n",(0,p.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,p.jsxs)(n.ul,{children:["\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/49",children:"feat(folder): add delete folder page"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/50",children:"feat(user): add username in dropdown and integrate users/self api"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/51",children:"fix(search): add error check and fix duplicate ids"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/52",children:"feat(folder): add edit folder page"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/54",children:"feat(folder): add move upload or folder"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/55",children:"feat(folder): add unlink upload or folder"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/56",children:"feat(ui): add dynamic pages"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/66",children:"fix(UI): open link in new tab and fix heading"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/60",children:"feat(folder-navigation): add folder tree view"})}),"\n"]}),"\n",(0,p.jsxs)(n.li,{children:["\n",(0,p.jsx)(n.p,{children:(0,p.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/72#issue-683109955",children:"feat(linter): add airbnb style guide"})}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,p.jsx)(n,{...e,children:(0,p.jsx)(r,{...e})}):r(e)}},14744:(e,n,l)=>{l.d(n,{Z:()=>p});const p=l.p+"assets/images/DeleteFolder-a5d8dd61a8233aca37772e86ac8857c2.png"},76608:(e,n,l)=>{l.d(n,{Z:()=>p});const p=l.p+"assets/images/EditFolder-4ada9b03300af743487af924c7fd0a05.png"},43607:(e,n,l)=>{l.d(n,{Z:()=>p});const p=l.p+"assets/images/MoveFolder-f8374b2c640ba52d32bd754223c871ac.png"},52651:(e,n,l)=>{l.d(n,{Z:()=>p});const p=l.p+"assets/images/FolderNavigation-f73cab5340256a6e6aca7fe466dfabde.png"},40685:(e,n,l)=>{l.d(n,{Z:()=>p});const p="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU0AAAEYCAYAAADYs6SAAAAgAElEQVR4Ae2d8WsjaZrf9195IT8ITDAxnJdOmM4lWFlCK0Myuv5Fm85FpGEEA6MwucEcTJwOjc6w8XWgcSb0ijkaZZJGmAyokyXOxaCASUHi1eSuo2bpVW/wqXfjG+2uL5r1zWrjnfuGp0plvZJKdpX0lLpc/RUYlareeuqtz1P16bfe95X6Gy9/Iwv+kQGvAV4DvAbCXQPfIKhwoMiJnHgN8BqQa4DSZEubTxq8BngNRLgGKM0IsNjSYEuD1wCvAUqT0mQrg9cAr4EI1wClGQEWWxlsZfAa4DVAaVKabGXwGuA1EOEaoDQjwGIrg60MXgO8BihNSpOtDF4DvAYiXAOpkuYfr/0NHK6+hYO//NfwX/hHBm/gNSDXvtwDci+wVRxPqzg10vwff+Wv4/u/9Q/xsz9s4tdffQW+SOBNJCDXvtwDR7/125B7Iuni/N9/8+/hi3vfwc+/W8NX3/8j92/w4uVF6mRZ1p/91//mljn5nX8G2ed1nlcqpCn/qspF8heDwQVsLpDAm0xA7gW5J5LY4jx+++/jp7//sSvCeXMkEpUYEmvZAk2FNOVxRP515YsESGBEQO4JuTeWLZVZxxPBffkf/vOogkpLEnOZ8kyFNKUf5/zP/1wpBQxDAukgIPeE3BuzJLas9fI4LY/fX3/5i0Cwv/rhj/Dlf/xD/PTBv8ZPSr8T+CfbpIyUDXpJbDnGMh7dUyFNGfThiwRIYJqA3BvLkmPQcaQPMkiW5//nT3H63dpcLURpVcq+EmPyJceSYwbVRWsdpTlJnZ9JIEUEXqc0pc9x8iWi05TaF//8XwTKU46tJcnJOJTmZFb5mQRSROB1SFMekSf7Lr/+xZn7+D0pIK3P8vgux7BfUoc4HtcpTZsyl0kgZQSWLU2RlD1lSHBKP+QyBmpefbs01ecpddEWJ6WZspuEp0MCNoFlS3OyhSmDN1qtybBx5Jj2S+oUdt8w5ShNmy6XSSBlBJYpTXlEtl+RhfnNb+Hkw3s4/YN/i37jP7l/sizrXn7zW5HENylOqVsYIYYpQ2naWeYyCaSMwLKkKYM79iuqMGU0fLJP0o4n26RMGKn5ZSbFqTUARWnameEyCaSMwDKkKX2G9rQi6cP0xXXV+5+889v45f/6QWjqUlb2uSqubJd62fM6pY4a/ZuUZuh0sSAJXD8Cy5CmtAD9l7QIww76HP+db+P/dX/i7xr6XfaRfcOIU+pit2CjtlaDjkFphk4VC5LA9SMQtzRdKVnf9InSd/jVf2/NDVT2DRJa0Dq7r1Vam2GlHhRL1lGac6eNO5JA8gnELU2731Amrs8SzeT63u/9y4XhSYzJuLM+298eitrfOhmT0lw4dQxAAsklEKc0pcVmv6IMtAx+0LF3nWtZYkwKbdbnyYGqRVqblOZc6eJOJHA9CMQpzbHH3l+chRbYn/zdf6AGT2LNEuXkertvM0o3wmQcSlMtfQxEAskjEKc05Tct/VeUR96TD/6pv9vC7xJrUmqzPttdCVL3WeWuWk9pLpw2BiCB5BKIS5oydcd+RXk0l19q13pJrKsk52+ffESfd/oRpamVPcYhgQQSiEua8utC9iuKgP70o9+zd11oWWL5UrzqfRHR27EpzYVSxp1JINkE4pKmPTcz6qPuj+/+YzVoEssW2lXLdpfCvHM2KU219KU3UP+ki24/veeX5jOLS5pftf74Altk+XzzW/iLX/3qYv95FyTGy2/+rUjSXET2vpApzXkzlvb9zntoPdlE1hgY9y+LikNzXre0L0Oa84xEyw9yLPqSGL7Iwr7b0hTxh93PLkdpLpo5AL29Iowpon5yWbAe6kUDU6yjd1mxhGzrHWzh5oUwRZyUZkJSE6kacUnT/s1M+X99bKmEWe7e/keRziOosMQIcyy7jNTVf8k52NvCLlOaPsEF3lMnzfMemh+tey3MYhVtaWAO+uiP/zD2AsS467IIxCVNu/7zSFME9dOdf2WHibQs+4aVnF3OlqYc0N4WdpnSjJSq4MJplOb+BxlXmrkHLfTPg8+ba5NPIMnSFEnZj8thaZ5W/81cspPjUZq/kXXhyYXxOl/XQpqhxDdAp9lA/dNdbH7L68vMFLZQ/bSG+mcOunZL87QD52kd1QcVVB5WUf+eM2OwaIDe8yYan+6i8rubqHxcQ6PZRm8wmbFLyp113WPVn9TRfB7crzp41UJjr476Z010gotMHvCN+ByXNO2fXJu3pem37L64vzP203KzEiM/tiFl/f3mebelGeUn7OxjsaU5K0MR1i8kzX4bje0SsmvDAZe1LErbdbQC+kf7zxuovJvFqtvXmMH67S3UJyXyqo6CMagcAT1nF6WNVbfFWNyTntRhv+qs/tfzHvwWpjf44w8CGZj1Tey7dRqge7CD/F+ytvl9n6tF7B72cOHDQQ/Og8JwIGmi/G+WUX82tNtV5f7nj9C8n3XjZO7W0bHlLXk676P1MOdtfzdge4Rcpq1oXNK0R88XlaYISeZQ/vzjP8DgBz+cSoGsk21R5oLakrOXbWlyIGgK9fJWzC3NQQs7GwaZW5uoHbTRPemgdVBH5c4qzEYV9k8adPeKyJhVFB420D7uo3/SQfNhAasyQHN0oSngpI6iMSjd20L+zi4cKXvaQ9dt2l0lzWFL8/Hslmb/WQ3FzFCAb29i93ENtU92UPrN4bq1Euovvfr0nJ3h6Ps6iverqH3qlS3fkrLr2Pxe101SmHL9z3eRd+WcR9WXrZ/ikya23hrG3L8Ow2x+xeN/j0uaGvMdbZnZyz/6q38bx7mC+yfL9rZFl+3ugKjzS/1js6WpcN3OLc2jCozJofZyuhLdY+vmH4ow/9jWqLdP53F+XLDDsuatXbRDPZJPHxtWi3OsT9MeICpU0Tq19u052HnbE2f2Ow765wO0Pxm2Mt+to2t5HYMeWgf+Y3TIcmcd1O56/axefP/YA3Sflr3W99s743Xyi7zB73FJ05ZPlO+d++J5Xe/298/lHOapB6WpcEPNLc3nu7hpMtg6uLwTzotfxn5QsZc15EwB9VfDExlK8+bH7fnPbJY0e36LLoPy0+7oMdw90gCdT2XqlYG5tYNWHyOZmTwqew460x2Z7p4X0ruiXG9/E+sS/61NNP3uC5GpTOUyBoXH7Yk6zY8gLXvGJU37a5TzTt2ZR1iL7mNPlYryfXn7uJSmwt0xtzQxQOtBDhljsLpRwtajOprPuhhMtBBb254UpvoZ/b7EYR+meypDaXp9mHOe3AxpDo4bKK1IXbLYOZo2eK9Z8eZ2+v2f/fZF6/Ci7htFbD1qoHViNT3Dljt1sOM+2mdQ2uu4guwf7SInHFbLaBxbMec89bTtFpc0J7/HPe/vU8p+P3n3n+Cnv/8xfv7dGuS/2/3q+3809ifrZJuUkbKLHMvO77x9pJSmTXHO5d5nYSa3d1CTx9f7ztRRBq/aaO5VsfVuDusipZXcRX+fFPakuYXmqfRPBv9diDZmaZZXL5HmwZbXEly3W4JdtD7bxWbxptcK9UW/XkZj2PfpAjkLU856lC9U0T7tXQwQZe830Zv4x2YK9Bu4Ii5pSsvL7teM8q0gGYz5v//u38Nu9UVNjewrMV59uxT6Edv+/c95+zPlvCnNqNkKKu8+ZhuUnk63vi6Kh5XZeR/OtowUjx7HO49lZLiEht2HeBF4YiHscSZ2G/s4o6UJaem5U5FGLb3RfpbQ3tn1JsSPNnpLgz46Th1bbmvRYLxv0ip8STlp7XrizqHypIqSO+sgj93PL2FvhX7TFuOUpi2hMP/VhfyM2yKinJU7iRnmJ+Ls//IiiuTtR3NKc1YWIq/vovaOgdmoIPDr2edd1GUQY6WMfVt8Z/3gieOODBBZX8s8rrkjx9ntVmCfXb9vPZbGKc0LoUu/ZQWO9Yg9ON7H5nAEPf/QmxDfO6yh+rQ9fo4yPeiBNz1o9cN9t3UYtpybFhmMujfeas3crU1PQ4qcw3TuEKc05THZfkk/56Rg5LO0BuWRO+6XHGNWy9Pug5V6zPuIT2lqZvFVw2v1rOVRftSAc+i4f829HZRvyahvduyRWw7deZSFWSugstdE62XPnRrUOaxhc8PAvFNDx3rc9KYcZZB7v4rGYQvtZy04Mj3p7joyKxU4vjcvleYVU458HrNamvJtyuMGNm8M+1hXcyh9VEHld4vI+dOQNrbQfDUAzjqov+uNdpu3Ctj8jjflaPdecfid9gxKTzoYhC3n1w3ART+m+6i/jk1OM7LojC/GKU0RiD0aHdTaFFnZ/yf6eO30P8mxggZ47FbmoqP9fDzXzFu/g+ajMgq31t3BHRn8yNwQsdTg+KO99vHO+2g/raD0tj9hfVh+uxHYcvImtw/7Pf3YkxPhY5amVF/q4Yrd75/039+uYP+in3KA7mEVZX/+pl/Gfc8gv70/PMew5Sxw1vQjGal37Na7VYyLQNzSlBbbrP97Z7J1t8x82K1euxtB6jrvAJDfiqY0l5nJa3Ss/qsO2s876FiP4GPVP++j+3kTjSc11PYacJ5Pj/q75aXccwf7e3XUPq2jcdAKnnoUtpwEPW1hV7pDOM1oLCVBH+KWpojEnrPp/7/i9jdvguq1jHVSB1fq1v/LPu/cTF+Y8k5pLiN7PIYegfMBOk9KXkv+xib2pSuAr5kEliFNabnZrU0ZmFnmI/msk5c62ANPGq1MSnMWba5PHoFz7wc9avcLw66PVZSHczWTV9nk1GgZ0hSRTP6nZckhMKpJUF+n3YIMu8yW5ogplxJM4GLivNsnuoriI4fzMkPka1nSFOHYfYchqrbUIotMMZqUKaW51NTxYPMSGLzax9bdIja/U0PzBedkhuW4TGmKXOzR9LB1jLvcoqPllGbcGWJ8EkgQgWVLU/o37d/afN0opC6LjpZTmq87izw+CSyRwLKlKYIRSSWhxSl10BamnB8fz5d4AfNQJLBsAq9Dmn7L7HX2cWr2Yfrn479Tmsu+ink8ElgigdcpTZGMjFjb05HiPnU5ltYouS/JyXdKM+4sMj4JvEYCr1uaIhx5RJZJ5XHKU2LLMeJ4HKc0X+MFzEOTwLIJJEGavnTk2zlx9HVKzEV+gMOvX9h3tjSXfRXzeCSwRAJJkqYvJRGc9Dnav8cZFYnsKzGWKUu//pRm1GyxPAlcIwJJlKYvH3mXx2npg5RHaxGh/A+R9pQlWZZ1sk3KSNllPILbdZxcpjSv0Q3AqpJAVAJJl+akkK7DZ0oz6lXI8iRwjQhQmtnAH0ZeRM6U5jW6AVhVEohKgNKkNAP/1ZALgy8SIIFpApQmpUlpTt8XXEMCMwlQmpQmpTnz9uAGEpgmQGlSmpTm9H3BNSQwkwClSWlSmjNvD24ggWkClCalSWlO3xdcQwIzCVCalCalOfP24AYSmCZAaVKaM6X5xc/+DPwjA14Do2tAFEppUpozpTn9byzXkAAJUJqUJqVJD5BABAKUJqVJaUa4YViUBChNSpPSpAdIIAIBSpPSpDQj3DAsSgKUJqVJadIDJBCBAKVJaVKaEW4YFiUBSpPSpDTpARKIQIDSjEGaEfgntuiLFy8SWzdWjAReJwHeG/r0v6EfcvkReWEsnzmPeD0I8N7QzxOlqc+UEUkgMQQoTf1UUJr6TBmRBBJDgNLUTwWlqc+UEUkgMQQoTf1UUJr6TBmRBBJDgNLUTwWlqc+UEUkgMQQoTf1UUJr6TBmRBBJDgNLUTwWlqc+UEUkgMQQoTf1UUJr6TBmRBBJDgNLUTwWlqc+UEUkgMQQoTf1UUJr6TBmRBBJDgNLUTwWlqc+UEUkgMQQoTf1UUJr6TBmRBBJDgNLUTwWlqc+UEUkgMQQoTf1UUJoaTI8qMKaI+olGMMYgAT0ClKYeSz8SpemTWOT9DZZm/2gXxRs7aC3Cj/vGRoDS1EdLaWowfYOl2dsrwpgKpalxHcUQg9LUh0ppajClNClNjesohhiUpj5USlODaVRpnnXQ2C4hdyMDYwzMWhal7Qba/YDKnPfgPCojPyybuZHH1l4b/Vd1FI1Bca8XsNP0qp5TRflOFqtyPJPB+u0yqofT+7a2ZXtQy7GHetHAFOuQvbwWppSd/Avad7o+XLMcApSmPmdKU4NpFGmetVDZEFEWUNlrwjl04DytonwrA7NSRP2VVaHzLup3ZX0O5UcNr+xBHZU7q8i+X0YhpDS7e0VkTAa596toyPEOm6hvF1yBZrdbGFiHDCtNDPron/bRflyAMVtonnqf+6d2NCswF18LAUpTHzulqcE0tDQHcO6JBMtoTDbyzhxU3jLIvL8Pv8HZ/TQPY7KoHE2IyJdpGGke15A3BtmH7akz7T6R/sgsdp+PNoWW5nAX9mmO2CVxidLUzwqlqcE0rDQHTWwZg5sBApNqdB7n3KlLnlA7qL1tYN5rXEh0rKrPdnEzhDS9mCU0Tsf29j4M65N5MBr7pjQDOF3jVZSmfvIoTQ2mYaV5ckU/pBvHoHIklWqhIv2F2yOhjVX1qljDwrMlKAXG+yndo4bs0/TrwpamTyKZ75Smfl4oTQ2mlCZHzzWuoxhiUJr6UClNDaZhpek/nn883b8o1Yjv8byMfb+j1D7fSI/nw+6C4ei5H4YtTZ9EMt8pTf28UJoaTMNKE/5A0BaaZxMH9kfVrT5MzYGg/OPOxAEBb1T9JnafjTZ5EsyjdjxaJ0sDp+L2ofpTjvytXnl+hdTnkbR3SlM/I5SmBlNXmjlUnsp0nuC/jj8Q48txo4TqUwftZ204BzVshp1ydNjArkw5erDjDiqFmafpTznK36+jedRG+8hB42HwlCOc7qO8YpC5tYnagXcujUdl5G4VUZSBqYmWJl5UkTUGmds73nQmpxM8cKXBmTEiE6A0IyO7cgdK80pEIQq40pyc5D3+2RvcGcZaeHJ7B4PhQFEYacpRw05ul7KDF3Vs3V5HRgaiVtaR/6AKp9cdm9xuU+k58v1zb6J+5r2GO/nd3s7l10eA0tRnT2nqM11OxF7D+0bQZ5MTPpdzeB7lehCgNPXzRGnqM11KxEFzCxkz3fe4lIPzINeGAKWpnypKU5+pYsQe6u9lUfqo5vYXto/76L1swe1jXDGY/Aqk4oEZKiUEKE39RFKa+kxVI/ZfNlH7qITcxurwxzEyWL9VQuVpG/1z1UMxWAoJUJr6SaU09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ8KSlOfKSOSQGIIUJr6qaA09ZkyIgkkhgClqZ+K1Ejzi5/9GfhHBrwGRteA6ILSpDQDCfDCCMTClSRAacZwDaSmpRkDG4YkgWtPgA0K/RRSmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpz5QRSSAxBChN/VRQmvpMGZEEEkOA0tRPBaWpwfSoAmOKqJ9cHaz1KIfc25vY711dNrhECxVjYLZbwZsXWeueh4GR+CH+KkdysBjrs8i5cF+XAKWpfyFQmhpMo0hzW4QUTrDBVYsuqf7RLoo3dnClZk87cA6d8b9PSq5AS59MrD900DmVGkavT/B5cW0cBChNfaqUpgbTCNJc/HDRJdXbK8KYytXSDKrcsPXptSqDCkSvT1AUrouHAKWpz5XS1GBKacbTXaCRmzc8BqWpfwFQmhpMI0iz5T6eT7f6+s8bqLybxarbl7iK7Lu7cE6A6fJWy67noPpBHusr8sifwfrtLdRfDC7OyGthBvVPTh//YqfJhSgtzSvqY4ceP99h3Z/37SLoPil4LeTzHpyHJWTXvHNZ3Sih+rlXtufsorSx6vXBrmVReuigdz4WxvsgMR6Vkb+RubpswO7XdRWlqZ85SlOD6YLSHBxVkDUGq3cqqB94fYeNR2Xk1soovyeisCU3lOaHFVRu5VB+1PD6IA9q2LyVgVkpouEPSA366J/20X4s8tlC89T73D8difXK0w8rzTD1GR6su1dExqyi8LCB9nEf/ZMOmg8LWDVZVI5GdfOkX0L5gxw299ronQ0w6HfRvJeFMXlUHpSx/l4N7ZM+Bmd9dA+2XI7Zj9vjp3XWQmXDIHNrE7XDDnqnfXSPPF6Zu3V0gyQ7HuHafqI09VNHaWowXUSaAwdbKwZBN68v00BpmjyqLyYqf1JH0RjkHnfGNiylTzNsfYZ1zE/UUSrceZyH2ajCr73fUp4qe9pASVrkK1tontmnOkDzIwPz1i5G2hygtX0zoCyAsya2VjLY3B9v4doRr/sypamfQUpTg+kC0hw0t2DMTew+C6pIH41ZLc339zF9q1uP7la4pUgzZH28upQR6KmXNeRMAfVXXuW9sjnUXlon4y4Oz/O+M7lh9EjvbzlvobJicHOy9eluH0o2II6/+3V/pzT1M0hpajBdQJqeGGZPQbq0T3Oq7q9RmoHzRqfr451PUD/raJ0/Uj+bzXRcH4W3j9WdMWzZXjrvtFjH3NNm/QMn9J3S1E8MpanBlNKcMXo+LTdPmnb/qt/POnofDPsYNaVZeNx2+3elj3fqrz/qR9W4HJIUg9LUzwalqcF0AWnO/XgesmUnpzfV+opyzu65Gfitv+ldp8U4KjO9rfM4B2NKaLgT40clg5ZUpDloYssY3Hw46uUMOlZa11Ga+pmlNDWYLiBNzDsQFFmas7sALkWgLE0c15A3BtntFoLad32r1aciTQzg3PNmFfh9pWPne96HdcixTWn4QGnqZ5HS1GDqiiWHytPprxr6X0v0vnIYNO8S8EfJ7SlHzU83kVsrYmd78ts806230SnM2Pai6k7FydzeQUO+Jul0AgaRRlHGlrSlCcCbcpRB7v0qGocttJ+14BzUUbm7jsxKBc7QpjrSlFFyb8qRWSugsteE86yN9qEDmdaVXzMoPOmOnXKaPlCa+tmkNDWYDsVy2WCD/3g7PbDjVWB8svdwcnsv6NF6hhjdMLO3ySTw4nBid+a9RviBjxikKVX1zjc3nJhvkLmRQ2m7jpY/x/SiWyGohXzJec76yuhwcnvBnwhvVpG9U0b1oIM+52lq3AVvTAxKM+Gpbj2QR8sQP7aR8PNg9V4PAbY09blTmvpM9SKed1B7xyBzzwns/9M7ECOllQClqZ9ZSlOfafSIRzvI3i5jR/rbjuRrfl20pY/vzqr7tcjAAYzoR+EebyABSlM/6ZSmPtPoEc97aO3toHxn1Mdn1rIofFB1f7QjekDuQQIeAUpT/0qgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNPWZMiIJJIYApamfCkpTnykjkkBiCFCa+qmgNDWYHlVgjJn+W1lH7o78f+Yt9M41DnR5jN5eEcYUUT+5vNzU1ln1DzonY1A5kggtVGT7dmsqHFckhwClqZ8LSlODqSudHCpPHTiH9l8DtY+KWF8xMCt57D4baBxtZoy5pXnamai3A+eTkvuPQOkT+3y85c6pVIHSnJmIBG2gNPWTQWlqMHWleUkL76yD2t0MjMli97nGAYNjzC3NoHDD1qfXqgwqQGkGUUnaOkpTPyOUpgbTq6QpxzhzUHnLwBTr6Gkc044xfPSnNG0oXBYClKb+dUBpajANI00A3U/zMCaH2suJg/bbqH+U9x7jjcHqO2VUnR4Q0Npz7g/Fe9ax9qlAehaDpTlA++M8MmYVpb3uxIEv+Rhw7PHSVkuz56D6gV//DNZvb6H+Irgrov+8gcq7Way6/aXDss/7Y6G7TwowpoLWeQ/OwxKya15/8epGCdXPvbI9ZxeljVWvH3kti9JDJ7jfWGI8KiN/Q1r6BuaysmO1SMcHSlM/j5SmBtOQ0sTnO8gYg/L3LEmctVDZkJu5gMpe0+tbfFpF+VYOle1N90a3H5Fb2wbm7S1svZfH5l4bvdM++sc9SMRpafrCzGKrGbF9G1aaH1ZQuZVD+VHDq/tBDZu3MjArRTQmBqS6e0VX3oWHDbSP++ifdNB8WMCqyaJyNJKsdx4llD/Ieed4NsCg30XzXhbG5FF5UMb6ezW0T/oYnPXRPdhC1hhkP26PZ3PINnNrE7XDjsuqe+TVL3O3ju4SBufGK7T8T5SmPnNKU4NpWGme1FE0BsU9X2ADOPc8wdRfTVTEf5y/GK32trvSNOwUjOoAAAbISURBVAalp5Z4h7uOS3OA1oMcMiIkZ7rsxNGmP4aVpsmj+mJi9+F55h53RhuG6/L2uuHWzuM8zEYVfmnvPAymyp42UJLW4soWmmej0MAAzY8MzFu7GGlzgNb2zYCy0lXSxNZKBpv7c3CxD3sNlilN/SRRmhpM55XmoIktY3Dz4ehWt6vTeZwLbmmaMoLu9wtpvurD2c7CrOSwY7Xg7NhXLoeV5vv7bit3PJ716D7c4NUtuN54WUPOFOD/w+GVDejG8Efs7zvjh5OuD/+R3t9y3kJlxeDmZOvT3T6UbEAcf/e0vFOa+pmkNDWYhpXm5OP5VMtzojIB4vJaml4f5kTp4eN5DsW73mPsQlOcAo49frxpMY62T2/zW8iB81nd/k1//mdQN4MfeTquv8UTrcVlyPay48UyKOdXKCHvlKZ+IihNDaYhpem1HPOoHQ8PGos0C6hsS99hBrkHLYx6CiOeaCzS3EJT+mBn/A2unAUQXZqFx+2Zx+v356YTEebrK05p6rOnNDWYhpGm30dpTznyH88DHyGB2Y/nVovKqv/F4/kJ0P3epjc4cq8ZPKps7Re4qCxN71xKaLgT4wOPeLHSPo+Lle5CBGn6bGd0fYzHTe8nSlM/t5SmBtOrpNlve5PbV4oX/XbeYf2BoMmBDRmsGI6qBw4EXS1Nid93Kp44P9yPPlKsLE0c15CXEe7t4Nav3epTkSZ8tpPMhwk/7+MNaGhynqbG/T0Rg9KcADLXR1cwAV+jPKij6n+Ncq2AatDXKF/VUZSvWa4VsPvUQftZG447bWcV5fe9rzJOTTmSOYwBFQ2SzeDZLvIrBpGn2GhLUwZr3ClHGeTer6Jx2EL7WQvOQR2Vu+vIrFTgDJ+Wg87DO90ILU3Zwf+Hx5/O9ayN9qGDhszbXDMoPIkwbzWA93VYxZamfpYoTQ2mQ8FMDTqE/cGOXgs1e3L7Rgm7Mya3Xz0QFPB1zmNPzJnbu2iFnWUTgzQFtTe5PXcxkT9zI4fSdh0ta06nmjTlgMPJ7QV/IrxZRfZOGdWDDvqcp6lx9b9xMSjNNy7lPOE3iQBbmvrZpjT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpnwpKU58pI5JAYghQmvqpoDT1mTIiCSSGAKWpn4pUSPOHP/whfv3rX+vTYUQSuMYE5J6Qe4MvXQKpkGa328Uvf/lLXTKMRgLXnIDcE3Jv8KVLIBXS/PLLL/HjH/9YlwyjkcA1JyD3hNwbfOkSSIU0BUmv13PF+dVXX+Hrr7/WpcRoJHBNCMgjudwDIky5J/jSJ5AaaQoa+VdVHkekH0c6wPlHBm/aNSDXvtwDbGHqy9KPmCpp+ifFdxIgARKIiwClGRdZxiUBEkglAUozlWnlSZEACcRFgNKMiyzjkgAJpJIApZnKtPKkSIAE4iJAacZFlnFJgARSSYDSTGVaeVIkQAJxEaA04yLLuCRAAqkkQGmmMq08KRIggbgIUJpxkWVcEiCBVBKgNFOZVp4UCZBAXAQozbjIMi4JkEAqCVCaqUwrT4oESCAuApRmXGQZlwRIIJUEKM1UppUnRQIkEBcBSjMusoxLAiSQSgKUZirTypMiARKIiwClGRdZxiUBEkglAUozlWnlSZEACcRFgNKMiyzjkgAJpJIApZnKtPKkSIAE4iJAacZFlnFJgARSSYDSTGVaeVIkQAJxEaA04yLLuCRAAqkkQGmmMq08KRIggbgIUJpxkWVcEiCBVBKgNFOZVp4UCZBAXAQozbjIMi4JkEAqCVCaqUwrT4oESCAuApRmXGQZlwRIIJUEKM1UppUnRQIkEBcBSjMusoxLAiSQSgKUZirTypMiARKIiwClGRdZxiUBEkglAUozlWnlSZEACcRFgNKMiyzjkgAJpJIApZnKtPKkSIAE4iJAacZFlnFJgARSSYDSTGVaeVIkQAJxEaA04yLLuCRAAqkkQGmmMq08KRIggbgIUJpxkWVcEiCBVBKgNFOZVp4UCZBAXAQozbjIMi4JkEAqCVCaqUwrT4oESCAuApRmXGQZlwRIIJUE/j/pghTbFJXu8wAAAABJRU5ErkJggg=="},11151:(e,n,l)=>{l.d(n,{Z:()=>d,a:()=>s});var p=l(67294);const a={},i=p.createContext(a);function s(e){const n=p.useContext(i);return p.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),p.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c928beef.25056ae8.js b/assets/js/c928beef.25056ae8.js new file mode 100644 index 0000000000..26349b6fd1 --- /dev/null +++ b/assets/js/c928beef.25056ae8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[946],{23539:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>o,frontMatter:()=>h,metadata:()=>a,toc:()=>c});var i=s(85893),t=s(11151);const h={title:"week-09",author:"Aaditya Singh"},r="Meeting 15",a={id:"2024/scheduler/updates/General/2024-07-04",title:"week-09",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/General/2024-07-04.md",sourceDirName:"2024/scheduler/updates/General",slug:"/2024/scheduler/updates/General/2024-07-04",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/General/2024-07-04.md",tags:[],version:"current",frontMatter:{title:"week-09",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"Week-08",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-06-27"},next:{title:"week-10",permalink:"/gsoc/docs/2024/scheduler/updates/General/2024-07-11"}},l={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Absent:",id:"absent",level:2},{value:"Discussions:",id:"discussions",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"meeting-15",children:"Meeting 15"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July 04, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"absent",children:"Absent:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Mentors:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Provided general project updates."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),": Advised ",(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})," to continue using the existing ",(0,i.jsx)(n.code,{children:"cmake"})," build system, explaining that ",(0,i.jsx)(n.code,{children:"bazel"}),", while efficient, does not meet the current needs of Fossology. Changing the build system now is not advisable."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Suggested ",(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})," to open an issue on the SPDX tool."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Contributors:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Developed endpoints supporting standard copyright agents for URLs, emails, and authors."}),"\n",(0,i.jsx)(n.li,{children:"Updated details in a previously mentioned PR and completed unit tests for Job endpoints."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Conducted validations of JSON RDF & LDA formats and completed work on GitHub workflows & tag value report generation."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Completed differential scans and revised PR accordingly. Plans to test the allow-list functionality next week and explore GitHub actions and Docker Compose."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Achieved approximately 70% accuracy in semantic searches, effectively identifying correct licenses. Aims to increase accuracy to 90% next week and will require integration with LLM and some prompt engineering."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Began coding the scheduler through database connectivity. Facing decisions about the build system ",(0,i.jsx)(n.code,{children:"cmake"}),", which does not support Go. Created documentation on the general coding structure in Go, following the hexagonal architectural pattern."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Addressed bugs in the tag value report. Focused on improving the RDF report and integrating it into the database's license table to eliminate duplicates."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Written a Python script to fetch copyright content from the database and modified the copyright. Will tackle a GitHub action issue next."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Finalized the addition of controllers and models concerning permission licenses on agents. Plans to work on test cases."}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var i=s(67294);const t={},h=i.createContext(t);function r(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c96f5699.8624473a.js b/assets/js/c96f5699.8624473a.js new file mode 100644 index 0000000000..c347fe6f03 --- /dev/null +++ b/assets/js/c96f5699.8624473a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[747],{49355:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>h,toc:()=>a});var i=s(85893),t=s(11151);const r={sidebar_position:6,title:"Week 4"},l=void 0,h={id:"2023/minutes/2023-06-22",title:"Week 4",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-06-22.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-06-22",permalink:"/gsoc/docs/2023/minutes/2023-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-06-22.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Week 4"},sidebar:"2023",previous:{title:"Week 3",permalink:"/gsoc/docs/2023/minutes/2023-06-15"},next:{title:"Week 5",permalink:"/gsoc/docs/2023/minutes/2023-06-29"}},o={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/HastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Working on generating the report on fossology."}),"\n",(0,i.jsx)(n.li,{children:"Currently license part is done and looking into copyright part."}),"\n",(0,i.jsx)(n.li,{children:"Will take reference from CLIXML Agent."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Previous week i have worked on two endpoints."}),"\n",(0,i.jsx)(n.li,{children:"Insert, Delete/Update of the licenses."}),"\n",(0,i.jsx)(n.li,{children:"will work on search and full-text search."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Working on copyright related endpoints."}),"\n",(0,i.jsx)(n.li,{children:"Raised PRs and Showed demo."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Working on highlight license keywords part and license edit part."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Showed demo of lastweeks work."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Worked on generating dataset using chatGPT and working on optimizing it."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Dataset needs to be generated from fossology mentors to provide data."}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>h,a:()=>l});var i=s(67294);const t={},r=i.createContext(t);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ca774ecf.4f4acc7a.js b/assets/js/ca774ecf.4f4acc7a.js new file mode 100644 index 0000000000..e1673c2f06 --- /dev/null +++ b/assets/js/ca774ecf.4f4acc7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5022],{46877:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>r});var s=n(85893),t=n(11151);const o={title:"Community bonding",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},d=void 0,l={id:"2024/spdx30/updates/2024-05-07",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2024/spdx30/updates/2024-05-07.md",sourceDirName:"2024/spdx30/updates",slug:"/2024/spdx30/updates/2024-05-07",permalink:"/gsoc/docs/2024/spdx30/updates/2024-05-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/updates/2024-05-07.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx30",permalink:"/gsoc/docs/tags/spdx-30"}],version:"current",frontMatter:{title:"Community bonding",author:"Abhishek Kumar",tags:["gsoc24","spdx30"]},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/spdx30/"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/spdx30/updates/2024-05-28"}},c={},r=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Discussion:",id:"discussion",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Discussion:",id:"discussion-1",level:3},{value:"Week 1 Activities",id:"week-1-activities",level:2},{value:"Meeting 3",id:"meeting-3",level:2},{value:"Discussion:",id:"discussion-2",level:3},{value:"Week 2 Activities",id:"week-2-activities",level:2},{value:"Meeting 4",id:"meeting-4",level:2},{value:"Discussion:",id:"discussion-3",level:3}];function a(e){const i={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(May 7, 2024)"})}),"\n",(0,s.jsx)(i.h3,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsx)(i.p,{children:"This was the first meeting with mentors and other fellow contributors. In this meeting, mentors and contributors introduced themselves. We agreed on the time and platform for general weekly meetings."}),"\n",(0,s.jsx)(i.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(May 9, 2024)"})}),"\n",(0,s.jsx)(i.h3,{id:"discussion-1",children:"Discussion:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"In this meeting, mentors talked about what we can do in community bonding period and emphasized the importance of communication in open source community."}),"\n",(0,s.jsx)(i.li,{children:"Q&A session was held to address the general issues."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"week-1-activities",children:"Week 1 Activities"}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(May 9, 2024 - May 15, 2024)"})}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Revised the basics of PHP and Template Engine- TWIG and other skills required for the project."}),"\n",(0,s.jsx)(i.li,{children:"Gone through the documentation and codebase to get clear idea how SPDX v2.3 was implemented and what are the changes that are needed to be related to the project."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(May 16, 2024)"})}),"\n",(0,s.jsx)(i.h3,{id:"discussion-2",children:"Discussion:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Contributors provided updates on their progress."}),"\n",(0,s.jsx)(i.li,{children:"Mentors checked if everyone was able to set up their local development environment."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"week-2-activities",children:"Week 2 Activities"}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(May 16, 2024 - May 22, 2024)"})}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"I had some issues while setting up the local environment as I was working on ARM architecture machine having Ubuntu 22.04 installed on my virtual machine."}),"\n",(0,s.jsxs)(i.li,{children:["So, I rectified the issue by commenting out the installation of python dependencies in ",(0,s.jsx)(i.a,{href:"https://github.com/fossology/fossology/blob/6e6b00c2ded6a1db7647d0da9e97c78ed9ffddf8/install/fo-postinstall.in#L261-L263",children:"fo-postinstall.in"})," file, as it was creating conflicts with other installed dependencies."]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.em,{children:"(May 23, 2024)"})}),"\n",(0,s.jsx)(i.h3,{id:"discussion-3",children:"Discussion:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Contributors shared their updates."}),"\n",(0,s.jsx)(i.li,{children:"Mentors urged contributors to address some of the issues to enhance their understanding of the project."}),"\n",(0,s.jsx)(i.li,{children:"Timing for the specific-project weekly meetings were finalized."}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,i,n)=>{n.d(i,{Z:()=>l,a:()=>d});var s=n(67294);const t={},o=s.createContext(t);function d(e){const i=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cb1a17e4.0a464f69.js b/assets/js/cb1a17e4.0a464f69.js new file mode 100644 index 0000000000..e6072242f2 --- /dev/null +++ b/assets/js/cb1a17e4.0a464f69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7595],{6973:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var s=t(85893),i=t(11151);const o={title:"Week 1",author:"Abdelrahman Jamal"},a=void 0,r={id:"2023/copyrights/updates/2023-05-31",title:"Week 1",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-05-31.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-05-31",permalink:"/gsoc/docs/2023/copyrights/updates/2023-05-31",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-05-31.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Community bonding",permalink:"/gsoc/docs/2023/copyrights/updates/2023-05-11"},next:{title:"Week 2",permalink:"/gsoc/docs/2023/copyrights/updates/2023-06-07"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Discussion Topics",id:"discussion-topics",level:3},{value:"Scheduling Consideration",id:"scheduling-consideration",level:3},{value:"Dataset Creation",id:"dataset-creation",level:3},{value:"Model Recommendation",id:"model-recommendation",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Immediate Priorities",id:"immediate-priorities",level:3},{value:"Post-exams Focus",id:"post-exams-focus",level:3}];function c(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May,31,2023)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsx)(n.h3,{id:"discussion-topics",children:"Discussion Topics"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"We went over the proposal content and also delineated the feature timeline for the project."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"scheduling-consideration",children:"Scheduling Consideration"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Considering my upcoming finals from the 28th of May to the 13th of June, the team decided that the first three weeks of the coding period will be dedicated to addressing minor issues with the previous project developed by Kaushlendra."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"dataset-creation",children:"Dataset Creation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Talked about the generation of a new dataset, with a primary focus on sourcing from a prominent open-source project - ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology",children:"Fossology"}),". We're also contemplating expanding the data sourcing to other significant open-source endeavors."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"model-recommendation",children:"Model Recommendation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Kaushlendra proposed the exploration of the ",(0,s.jsx)(n.a,{href:"https://towardsdatascience.com/latent-dirichlet-allocation-lda-9d1cd064ffa2",children:"Latent Dirichlet Allocation"})," as a potential machine learning model."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,s.jsx)(n.h3,{id:"immediate-priorities",children:"Immediate Priorities"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The ensuing two weeks will see me making minor tweaks and improvements to Kaushlendra's initial false positive copyright project."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"post-exams-focus",children:"Post-exams Focus"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Once the exams conclude, I aim to delve deeper into understanding the LDA model, as suggested by Kaushlendra, and will also commence the dataset creation process."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var s=t(67294);const i={},o=s.createContext(i);function a(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cb6d935a.7db74501.js b/assets/js/cb6d935a.7db74501.js new file mode 100644 index 0000000000..2cb4f7c979 --- /dev/null +++ b/assets/js/cb6d935a.7db74501.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6407],{35999:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>r});var i=s(85893),t=s(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 8",d={id:"2023/laas/updates/2023-07-21",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-07-21.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-07-21",permalink:"/gsoc/docs/2023/laas/updates/2023-07-21",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-07-21.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-14"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-28"}},c={},r=[{value:"Attendees",id:"attendees",level:2},{value:"Update",id:"update",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Conclusion and future plan",id:"conclusion-and-future-plan",level:2}];function o(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-8",children:"Week 8"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July, 21, 2023)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"update",children:"Update"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Updated the pr of search added filters."}),"\n",(0,i.jsx)(n.li,{children:"Added the data of Spdx id of licence in database."}),"\n",(0,i.jsx)(n.li,{children:"Added authentication to the particular API of GET method."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussion",children:"Discussion"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add audit and change history in the database."}),"\n",(0,i.jsxs)(n.li,{children:["The data components for audit endpoints will be:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["For audit changes:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Username"}),"\n",(0,i.jsx)(n.li,{children:"Id"}),"\n",(0,i.jsx)(n.li,{children:"Shortname"}),"\n",(0,i.jsx)(n.li,{children:"Timestamp"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["For Change log","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Id"}),"\n",(0,i.jsx)(n.li,{children:"Audit_Id: foreign key of audit changes"}),"\n",(0,i.jsx)(n.li,{children:"Updated_value"}),"\n",(0,i.jsx)(n.li,{children:"New_value"}),"\n",(0,i.jsx)(n.li,{children:"Field"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Update the search as we need to add search term in body."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"conclusion-and-future-plan",children:"Conclusion and future plan"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Works on audit endpoints and the data table for the audit changes."}),"\n",(0,i.jsx)(n.li,{children:"Update the pr as per the suggestions."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>d,a:()=>l});var i=s(67294);const t={},a=i.createContext(t);function l(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cb93fa6f.134e6643.js b/assets/js/cb93fa6f.134e6643.js new file mode 100644 index 0000000000..5ace442822 --- /dev/null +++ b/assets/js/cb93fa6f.134e6643.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2202],{15915:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var a=n(85893),s=n(11151);const r={title:"Week 11",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},i=void 0,o={id:"2022/atarashi/updates/2022-08-23",title:"Week 11",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-08-23.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-08-23",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-08-23.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 11",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 10",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-16"},next:{title:"Week 12",permalink:"/gsoc/docs/2022/atarashi/updates/2022-08-30"}},l={},d=[{value:"Meeting 13",id:"meeting-13",level:2},{value:"Updates",id:"updates",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"meeting-13",children:"Meeting 13"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.em,{children:"(August 25th, 2022)"})}),"\n",(0,a.jsx)(t.p,{children:"GSOC 2022 weekly update"}),"\n",(0,a.jsx)(t.h3,{id:"updates",children:"Updates"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Implemented algorithm for bert transformer:","\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Basically the implementation is done using the labelling of different classes and create a dictionary where the\nlicense short name is key and it's label is value."}),"\n"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-python",children:" possible_labels = df.short_name.unique()\n\n label_dict = {}\n for index, possible_label in enumerate(possible_labels):\n label_dict[possible_label] = index\n"})}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["And for tokenizing and encoding ",(0,a.jsx)(t.strong,{children:"bert-base-uncased"})," pretrained model is used."]}),"\n"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-python",children:" tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', \n do_lower_case=True)\n \n encoded_data_train = tokenizer.batch_encode_plus(\n df[df.data_type=='train'].text.values, \n add_special_tokens=True, \n return_attention_mask=True, \n pad_to_max_length=True, \n max_length=256, \n return_tensors='pt'\n )\n"})}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["And for now trained a transformer model on smaller part of ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"minerva dataset"}),"\nbecause the model requires a lot of RAM and time for training the whole dataset."]}),"\n",(0,a.jsxs)(t.li,{children:["Created a simple notebook for the trained model. It can be seen ",(0,a.jsx)(t.a,{href:"https://www.kaggle.com/sushanttkr07/bertmodel1",children:"here"}),"."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Will keep contributing to the organization."}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>i});var a=n(67294);const s={},r=a.createContext(s);function i(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cc6478c2.6f92ff3e.js b/assets/js/cc6478c2.6f92ff3e.js new file mode 100644 index 0000000000..0873789580 --- /dev/null +++ b/assets/js/cc6478c2.6f92ff3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6204],{15524:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var t=n(85893),i=n(11151);const a={title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},l="Week 9",r={id:"2023/laas/updates/2023-07-28",title:"Coding Period",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-07-28.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-07-28",permalink:"/gsoc/docs/2023/laas/updates/2023-07-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-07-28.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Coding Period",author:"Kavya Shukla",author_url:"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-07-21"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-08-04"}},d={},c=[{value:"Attendees",id:"attendees",level:2},{value:"Updates",id:"updates",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Conclusion and Future plans",id:"conclusion-and-future-plans",level:2}];function o(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-9",children:"Week 9"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July, 28, 2023)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/sjha2048",children:"Sahil"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"updates",children:"Updates"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Added the structs related to Audit functions."}),"\n",(0,t.jsx)(s.li,{children:"Updated the search endpoints."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Create issue to make the meta more informative."}),"\n",(0,t.jsx)(s.li,{children:"Update the pervious pull request regarding the search."}),"\n",(0,t.jsx)(s.li,{children:"Change the names of api end points make them plural."}),"\n",(0,t.jsx)(s.li,{children:"Add some general errors to be updates."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion-and-future-plans",children:"Conclusion and Future plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Add the data tables and endpoints of audit."}),"\n",(0,t.jsx)(s.li,{children:"Update the basic changes as suggested in previous pr regarding API endpoints and Search."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>l});var t=n(67294);const i={},a=t.createContext(i);function l(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ccb19b74.0ef72df8.js b/assets/js/ccb19b74.0ef72df8.js new file mode 100644 index 0000000000..679c2210c3 --- /dev/null +++ b/assets/js/ccb19b74.0ef72df8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2327],{77262:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var t=i(85893),s=i(11151);const o={title:"Community bonding",author:"Kavya Shukla","author url":"https://github.com/k-avy",tags:["license as a service","open source licensing"]},r="Community Bonding",l={id:"2023/laas/updates/2023-05-11",title:"Community bonding",description:"\x3c!--",source:"@site/docs/2023/laas/updates/2023-05-11.md",sourceDirName:"2023/laas/updates",slug:"/2023/laas/updates/2023-05-11",permalink:"/gsoc/docs/2023/laas/updates/2023-05-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/updates/2023-05-11.md",tags:[{label:"license as a service",permalink:"/gsoc/docs/tags/license-as-a-service"},{label:"open source licensing",permalink:"/gsoc/docs/tags/open-source-licensing"}],version:"current",frontMatter:{title:"Community bonding",author:"Kavya Shukla","author url":"https://github.com/k-avy",tags:["license as a service","open source licensing"]},sidebar:"2023",previous:{title:"Introduction",permalink:"/gsoc/docs/2023/laas/"},next:{title:"Coding Period",permalink:"/gsoc/docs/2023/laas/updates/2023-06-02"}},a={},d=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Minutes of Meeting",id:"minutes-of-meeting",level:3},{value:"During week 1",id:"during-week-1",level:2},{value:"Meeting 2",id:"meeting-2",level:2},{value:"During week 2",id:"during-week-2",level:2},{value:"Meeting 3",id:"meeting-3",level:2},{value:"Minutes of Meeting",id:"minutes-of-meeting-1",level:3}];function c(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,t.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May,11,2023)"})}),"\n",(0,t.jsx)(n.p,{children:"This was the first meeting of community bonding period in GSoC'23. In this the\nMentors and the contributors were introduced."}),"\n",(0,t.jsx)(n.h3,{id:"minutes-of-meeting",children:"Minutes of Meeting"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Documentation and its\n",(0,t.jsx)(n.a,{href:"https://fossology.github.io/gsoc/docs/2023/",children:"repository"})," was explained to\ntrack the updates. For reference we can look upon previous year documentation."]}),"\n",(0,t.jsx)(n.li,{children:"Timings of the each of the project meet and weekly meet was decided."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"during-week-1",children:"During week 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 12,2023- May 17,2023)"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Revised the golang basics and other skills required for the project."}),"\n",(0,t.jsx)(n.li,{children:"Revised my proposal for further work."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 18,2023)"})}),"\n",(0,t.jsx)(n.p,{children:"Basic discussion about the project previous week work and general updates."}),"\n",(0,t.jsx)(n.h2,{id:"during-week-2",children:"During week 2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 19,2023- May 24,2023)"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Revised the proposal and worked on the prototype."}),"\n",(0,t.jsx)(n.li,{children:"Added the Authentication in the API made on the prototype."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(May 25,2023)"})}),"\n",(0,t.jsx)(n.h3,{id:"minutes-of-meeting-1",children:"Minutes of Meeting"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Discussed regarding the Authentication of the API and for now it will be\nbasic user name and password later on we will do it using tokens."}),"\n",(0,t.jsx)(n.li,{children:"For obligations we will have a different repository and a different\ndatabase."}),"\n",(0,t.jsx)(n.li,{children:"For licences there will be a different repository under FOSSology."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var t=i(67294);const s={},o=t.createContext(s);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ccbbc0e7.c2d46b11.js b/assets/js/ccbbc0e7.c2d46b11.js new file mode 100644 index 0000000000..39e04b6ff6 --- /dev/null +++ b/assets/js/ccbbc0e7.c2d46b11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2777],{81589:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>c,default:()=>l,frontMatter:()=>r,metadata:()=>d,toc:()=>h});var t=n(85893),i=n(11151);const r={title:"week-09",author:"Aaditya Singh"},c=void 0,d={id:"2024/scheduler/updates/Discussion/2024-07-05",title:"week-09",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/Discussion/2024-07-05.md",sourceDirName:"2024/scheduler/updates/Discussion",slug:"/2024/scheduler/updates/Discussion/2024-07-05",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/Discussion/2024-07-05.md",tags:[],version:"current",frontMatter:{title:"week-09",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-08",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28"},next:{title:"week-10",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12"}},o={},h=[{value:"Attendees",id:"attendees",level:2},{value:"Discussions:",id:"discussions",level:2}];function a(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h1,{id:"meeting-16",children:"Meeting 16"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 05, 2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Mentors:"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Contributors:"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussions",children:"Discussions:"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Contributors:"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Focused on developing code through database integration and organizing the structure based on the hexagonal architecture to prevent circular dependencies and separate logic. Additionally, raised a question regarding the ",(0,t.jsx)(s.code,{children:"sqlstatements.h"})," file."]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Mentors:"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": Clarified queries about the operations of the ",(0,t.jsx)(s.code,{children:"sqlstatements.h"})," file, discussing the ER diagram of the table and how it interacts with user actions."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),": Recommended combining commands in ",(0,t.jsx)(s.code,{children:"cmake"})," as follows:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:" custom_Target:\r\n custom_command: ()\n"})}),"\n",(0,t.jsxs)(s.p,{children:["Recommended reviewing the ",(0,t.jsx)(s.a,{href:"https://github.com/mutse/go-cmake",children:"go-cmake"})," repository for additional insights."]}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>d,a:()=>c});var t=n(67294);const i={},r=t.createContext(i);function c(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.e2cc10f2.js b/assets/js/ccc49370.e2cc10f2.js new file mode 100644 index 0000000000..1d6841effe --- /dev/null +++ b/assets/js/ccc49370.e2cc10f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6103],{9209:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(67294);var i=n(36905),a=n(8264),o=n(35281),r=n(9460),s=n(61460),l=n(33665),c=n(95999),d=n(32244),u=n(85893);function m(e){const{nextItem:t,prevItem:n}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,u.jsx)(d.Z,{...n,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),t&&(0,u.jsx)(d.Z,{...t,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,r.C)(),{title:n,description:i,date:o,tags:s,authors:l,frontMatter:c}=t,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(a.d,{title:n,description:i,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:o}),l.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:l.map((e=>e.url)).filter(Boolean).join(",")}),s.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:s.map((e=>e.label)).join(",")})]})}var h=n(35742),f=n(20136);function p(){const e=(0,f.i)();return(0,u.jsx)(h.Z,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var v=n(39407),x=n(22212);function b(e){let{sidebar:t,children:n}=e;const{metadata:i,toc:a}=(0,r.C)(),{nextItem:o,prevItem:c,frontMatter:d,unlisted:g}=i,{hide_table_of_contents:h,toc_min_heading_level:f,toc_max_heading_level:p}=d;return(0,u.jsxs)(s.Z,{sidebar:t,toc:!h&&a.length>0?(0,u.jsx)(v.Z,{toc:a,minHeadingLevel:f,maxHeadingLevel:p}):void 0,children:[g&&(0,u.jsx)(x.Z,{}),(0,u.jsx)(l.Z,{children:n}),(o||c)&&(0,u.jsx)(m,{nextItem:o,prevItem:c})]})}function j(e){const t=e.content;return(0,u.jsx)(r.n,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(a.FG,{className:(0,i.Z)(o.k.wrapper.blogPages,o.k.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(p,{}),(0,u.jsx)(b,{sidebar:e.sidebar,children:(0,u.jsx)(t,{})})]})})}},39407:(e,t,n)=>{n.d(t,{Z:()=>c});n(67294);var i=n(36905),a=n(93743);const o={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=n(85893);const s="table-of-contents__link toc-highlight",l="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,i.Z)(o.tableOfContents,"thin-scrollbar",t),children:(0,r.jsx)(a.Z,{...n,linkClassName:s,linkActiveClassName:l})})}},93743:(e,t,n)=>{n.d(t,{Z:()=>f});var i=n(67294),a=n(86668);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const i=n.slice(2,e.level);e.parentIndex=Math.max(...i),n[e.level]=t}));const i=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):i.push(a)})),i}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:i});return function(e){return e.level>=n&&e.level<=i}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function l(e,t){let{anchorTopOffset:n}=t;const i=e.find((e=>s(e).top>=n));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(s(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.L)();return(0,i.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,i.useRef)(void 0),n=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:r}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const i=[];for(let a=t;a<=n;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:r}),c=l(s,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}var u=n(33692),m=n(85893);function g(e){let{toc:t,className:n,linkClassName:i,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:n,linkClassName:i})]},e.id)))}):null}const h=i.memo(g);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const f=(0,a.L)(),p=c??f.tableOfContents.minHeadingLevel,v=u??f.tableOfContents.maxHeadingLevel,x=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>r({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:v});return d((0,i.useMemo)((()=>{if(s&&l)return{linkClassName:s,linkActiveClassName:l,minHeadingLevel:p,maxHeadingLevel:v}}),[s,l,p,v])),(0,m.jsx)(h,{toc:x,className:n,linkClassName:s,...g})}},22212:(e,t,n)=>{n.d(t,{Z:()=>g});n(67294);var i=n(36905),a=n(95999),o=n(35742),r=n(85893);function s(){return(0,r.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,r.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(o.Z,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(35281),u=n(59047);function m(e){let{className:t}=e;return(0,r.jsx)(u.Z,{type:"caution",title:(0,r.jsx)(s,{}),className:(0,i.Z)(t,d.k.common.unlistedBanner),children:(0,r.jsx)(l,{})})}function g(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(m,{...e})]})}},20136:(e,t,n)=>{n.d(t,{C:()=>d,i:()=>u});var i=n(44996),a=n(52263),o=n(65102);var r=n(9460);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(m);return{author:1===t.length?t[0]:t}}function c(e,t,n){return e?{image:g({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${n}`})}:{}}function d(e){const{siteConfig:t}=(0,a.Z)(),{withBaseUrl:n}=(0,i.C)(),{metadata:{blogDescription:o,blogTitle:r,permalink:d}}=e,u=`${t.url}${d}`;return{"@context":"https://schema.org","@type":"Blog","@id":u,mainEntityOfPage:u,headline:r,description:o,blogPost:e.items.map((e=>function(e,t,n){const{assets:i,frontMatter:a,metadata:o}=e,{date:r,title:d,description:u,lastUpdatedAt:m}=o,g=i.image??a.image,h=a.keywords??[],f=`${t.url}${o.permalink}`,p=m?s(m):void 0;return{"@type":"BlogPosting","@id":f,mainEntityOfPage:f,url:f,headline:d,name:d,description:u,datePublished:r,...p?{dateModified:p}:{},...l(o.authors),...c(g,n,d),...h?{keywords:h}:{}}}(e.content,t,n)))}}function u(){const e=function(){const e=(0,o.Z)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:n}=(0,r.C)(),{siteConfig:d}=(0,a.Z)(),{withBaseUrl:u}=(0,i.C)(),{date:m,title:g,description:h,frontMatter:f,lastUpdatedAt:p}=n,v=t.image??f.image,x=f.keywords??[],b=p?s(p):void 0,j=`${d.url}${n.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":j,mainEntityOfPage:j,url:j,headline:g,name:g,description:h,datePublished:m,...b?{dateModified:b}:{},...l(n.authors),...c(v,u,g),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${d.url}${e.blogBasePath}`,name:e.blogTitle}}}function m(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function g(e){let{imageUrl:t,caption:n}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:n}}}}]); \ No newline at end of file diff --git a/assets/js/ce20785b.96be1ecb.js b/assets/js/ce20785b.96be1ecb.js new file mode 100644 index 0000000000..659b0da1f4 --- /dev/null +++ b/assets/js/ce20785b.96be1ecb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7096],{57e3:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>h});var t=n(85893),i=n(11151);const r={title:"Week 4",author:"Shreya"},a="Coding Week-4 Meeting",l={id:"2021/minerva/updates/2021-07-05",title:"Week 4",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-07-05.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-07-05",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-05",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-07-05.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Shreya"},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-29"},next:{title:"Week 5",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-13"}},o={},h=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:2},{value:"Week 4 Progress",id:"week-4-progress",level:2},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function c(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"coding-week-4-meeting",children:"Coding Week-4 Meeting"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:"Validate generated files through nomos using the terminal, n-gram generated around 300000 files and Markov generated 134000 files."}),"\n",(0,t.jsx)(s.li,{children:"Included Multiprocessing to the scripts to generate text files, to speed up the process."}),"\n",(0,t.jsx)(s.li,{children:"Using different text Augmentations libraries such as Augly to reduces biasedness from the dataset. Compared results on one of the licenses."}),"\n",(0,t.jsx)(s.li,{children:"Augly simulate_typos and ReplaceSimilarUnicodeChars to be used for further text augmentation."}),"\n",(0,t.jsx)(s.li,{children:"Segregation of files after getting nomos validated into different folders."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"week-4-progress",children:"Week 4 Progress"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:"Validated Markov and N-gram files through terminals. Since the dataset was large, used multiple cores for the validation."}),"\n",(0,t.jsx)(s.li,{children:"Updated my scripts to automate the entire process."}),"\n",(0,t.jsxs)(s.li,{children:["Apart from SPDX licenses, will be implementing the exact approach to other licenses present in Fossology Database. Extracted license_header and texts from the ",(0,t.jsx)(s.a,{href:"https://raw.githubusercontent.com/fossology/fossology/master/install/db/licenseRef.json",children:"JSON_file"})]}),"\n",(0,t.jsx)(s.li,{children:"Working on a script to remove the discarded files from the validated files and segregate the correctly labeled files."}),"\n",(0,t.jsxs)(s.li,{children:["Worksamples : ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/1Tz1EXJffeoBj5lguDYse5UHP0EhXIemE?usp=sharing",children:"augly_implementation"}),", ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/1DfSj4-qqG8_w0CnE_AHizOnEdjF28i9-?usp=sharing",children:"validation-jaccard"}),", ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/16Og4cYnh5YXEc1Oyc9mx1Ezm18lD7Ro7",children:"Sample-Script-GeneratingFiles"}),", ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/1uMmpGyaARZKaC-XlvAI_q836bKaTcfJi?usp=sharing",children:"final_script_markov"}),", ",(0,t.jsx)(s.a,{href:"https://colab.research.google.com/drive/1C9ogZWaaMvSuvYJavwOoVM_kP-lI_cGA?usp=sharing",children:"final_script_ngram"})]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(s.p,{children:"Segregate validated files in different folders and carry on with Augly implementation."})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>a});var t=n(67294);const i={},r=t.createContext(i);function a(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cea8c87c.bc322805.js b/assets/js/cea8c87c.bc322805.js new file mode 100644 index 0000000000..6a55255446 --- /dev/null +++ b/assets/js/cea8c87c.bc322805.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1099],{87022:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 10","permalink":"/gsoc/docs/tags/week-10","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-08-21","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-08-21"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/ced86b15.69ce0a4f.js b/assets/js/ced86b15.69ce0a4f.js new file mode 100644 index 0000000000..56a86e6109 --- /dev/null +++ b/assets/js/ced86b15.69ce0a4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9487],{60992:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var t=i(85893),n=i(11151);const o={title:"Week 7",author:"Divij Sharma",tags:["gsoc24","rest"]},r="Week 7 meeting and activities",d={id:"2024/rest/updates/Divij/2024-07-09",title:"Week 7",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-07-09.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-07-09",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-07-09.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 7",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 6",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-02"},next:{title:"Week 8",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-16"}},c={},l=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2}];function a(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-7-meeting-and-activities",children:"Week 7 meeting and activities"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 09,2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussion",children:"Discussion"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Gave updates and demo on ",(0,t.jsx)(s.code,{children:"/jobs"}),", ",(0,t.jsx)(s.code,{children:"/jobs/{id}"}),", ",(0,t.jsx)(s.code,{children:"/jobs/all"})," endpoints."]}),"\n",(0,t.jsxs)(s.li,{children:["Raised a doubt regarding a failing test for ",(0,t.jsx)(s.code,{children:"/jobs"})," endpoint."]}),"\n",(0,t.jsxs)(s.li,{children:["Briefly discussed and reviewed the test cases development for the REST API with ",(0,t.jsx)(s.a,{href:"https://github.com/valens200",children:"Valens"})]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Finalized the work on the following PRs:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2717",children:"feat(api): New endpoints to get/delete/restore/update user copyright findings"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2768",children:"feat(api): Added OneShot analysis endpoints for license & copyright"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Worked on documenting some improvements in the REST API implementation."}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,s,i)=>{i.d(s,{Z:()=>d,a:()=>r});var t=i(67294);const n={},o=t.createContext(n);function r(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ced8809e.d066b9fe.js b/assets/js/ced8809e.d066b9fe.js new file mode 100644 index 0000000000..98b24ac7c9 --- /dev/null +++ b/assets/js/ced8809e.d066b9fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4077],{17929:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>l,default:()=>o,frontMatter:()=>h,metadata:()=>t,toc:()=>a});var i=s(85893),r=s(11151);const h={sidebar_position:6,title:"Week 6"},l=void 0,t={id:"2024/minutes/2024-07-04",title:"Week 6",description:"\x3c!--",source:"@site/docs/2024/minutes/2024-07-04.md",sourceDirName:"2024/minutes",slug:"/2024/minutes/2024-07-04",permalink:"/gsoc/docs/2024/minutes/2024-07-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/minutes/2024-07-04.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Week 6"},sidebar:"2024",previous:{title:"Week 5",permalink:"/gsoc/docs/2024/minutes/2024-06-27"},next:{title:"Week 7",permalink:"/gsoc/docs/2024/minutes/2024-07-11"}},c={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"Missed:",id:"missed",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(n){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,r.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Welcome to Minutes of Meeting page for GSoC 2024 at FOSSology happened on 04-07-2024."}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"missed",children:"Missed:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/EttingerK",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})," : Raised the issue of Students not updating the documentation/WPRs constantly."]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})," : General updates regarding project. Explained the importance of the Weekly Progress Reports."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Worked on LLM, Different models are now being tested with the General Statements."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Multiple prompts were tried still some prompt engineering is required."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/ShreyaGautamm",children:"Shreya Gautam"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Completed python script to get copyright data form DB."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Did some experiment on Github Actions for the Data Pipeline."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Research for incremental learning using SGDClassifier()."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Call with avinal to understand the CMake structure."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Started coding in Go for the scheduler."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"JSON format is done, JSON-LD validation is on going."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"RDF reports are generated."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Reports are generated, SPDX expressions are there."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Working on REUSE."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Worked on endpoints to support ScanCode copyrights."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Next week OpenID Connect work will continue."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Jobs Endpoint, Pull request is there. (Unit test cases are failing)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Explored few Github Actions (Docker Based & Composite)."}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Trying to implement some standard for fossology action"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Finalising the additional test cases for Controllers and Models including permission, license, agents."}),"\n"]}),"\n"]}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},11151:(n,e,s)=>{s.d(e,{Z:()=>t,a:()=>l});var i=s(67294);const r={},h=i.createContext(r);function l(n){const e=i.useContext(h);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:l(n.components),i.createElement(h.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/cf0ccdf6.41395731.js b/assets/js/cf0ccdf6.41395731.js new file mode 100644 index 0000000000..60ce9c700d --- /dev/null +++ b/assets/js/cf0ccdf6.41395731.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7579],{93553:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>a,contentTitle:()=>l,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>u});var o=i(85893),n=i(11151);const s={sidebar_position:1,title:"Introduction",slug:"/2021/buildsystem/"},l=void 0,r={id:"2021/buildsystem/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2021/buildsystem/index.md",sourceDirName:"2021/buildsystem",slug:"/2021/buildsystem/",permalink:"/gsoc/docs/2021/buildsystem/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2021/buildsystem/"},sidebar:"2021",previous:{title:"GSoC'21 @ FOSSology",permalink:"/gsoc/docs/2021"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-05-28"}},a={},u=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Build System",id:"build-system",level:2},{value:"Workflow (Continuous Integration)",id:"workflow-continuous-integration",level:2}];function d(t){const e={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"author",children:"Author"}),"\n",(0,o.jsx)(e.p,{children:(0,o.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,o.jsx)(e.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:"mailto:avinal.xlvii@gmail.com",children:"Email"})}),"\n",(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:"https://linkedin.com/in/avinal",children:"LinkedIn"})}),"\n",(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:"https://gsoc.avinal.space",children:"Blog"})}),"\n"]}),"\n",(0,o.jsx)(e.h2,{id:"build-system",children:"Build System"}),"\n",(0,o.jsx)(e.p,{children:"FOSSology\u2019s build system is based on multilevel Make files that work together to supply a build infrastructure for the project. Although make is a robust build system but it is too outdated and slow compared to modern build systems. Although build configurations are not supposed to be updated as often as source files, there are few noticeable problems with make. This project will migrate the build system to a more user-friendly and popular CMake."}),"\n",(0,o.jsx)(e.h2,{id:"workflow-continuous-integration",children:"Workflow (Continuous Integration)"}),"\n",(0,o.jsx)(e.p,{children:"FOSSology has been using free Travis CI for all its continuous builds, tests, and deployment purposes throughout the organization. GitHub Actions supplies better integration, faster build times and is versatile in many other ways. This project aims at improving the overall CI/CD for the project as well as upgrade the targets and virtual platforms to the latest compatible versions."}),"\n",(0,o.jsxs)(e.p,{children:["Check out ",(0,o.jsx)(e.a,{href:"build",children:"Building FOSSology"})," to know how to build FOSSology with CMake."]})]})}function c(t={}){const{wrapper:e}={...(0,n.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d(t)}},11151:(t,e,i)=>{i.d(e,{Z:()=>r,a:()=>l});var o=i(67294);const n={},s=o.createContext(n);function l(t){const e=o.useContext(s);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:l(t.components),o.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/cf8e8c6d.9f3483a7.js b/assets/js/cf8e8c6d.9f3483a7.js new file mode 100644 index 0000000000..761937be12 --- /dev/null +++ b/assets/js/cf8e8c6d.9f3483a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8909],{26558:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>h,toc:()=>o});var t=i(85893),s=i(11151);const r={title:"Week 7",author:"Shreya Singh"},a="Coding Week-7 Meeting",h={id:"2021/minerva/updates/2021-07-27",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-07-27.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-07-27",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-07-27.md",tags:[],version:"current",frontMatter:{title:"Week 7",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Week 6",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-20"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/minerva/updates/2021-08-03"}},l={},o=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week-7 Progress",id:"week-7-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"coding-week-7-meeting",children:"Coding Week-7 Meeting"}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Drop the files which were validated by nomos but don't belong to a license"}),"\n",(0,t.jsx)(n.li,{children:"Finalising the script i.e ngram and markov approach, initial split"}),"\n",(0,t.jsx)(n.li,{children:"Extracting latest version of licenses that are SPDX, SPDX-exceptions to a txt file."}),"\n",(0,t.jsx)(n.li,{children:"To automate the script to download all the licenses everytime there is a new release"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"week-7-progress",children:"Week-7 Progress"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Updated the ",(0,t.jsx)(n.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation/tree/main/Download-licenses-Script",children:"Scripts"})," to download the licenses."]}),"\n",(0,t.jsxs)(n.li,{children:["Alternative code to ngram done and pushed to ",(0,t.jsx)(n.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation",children:"repo"})]}),"\n",(0,t.jsx)(n.li,{children:"Fixing Initial Split and similar files deletion"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(n.p,{children:"To discuss the intial split approaches with the mentors and integrate it to the existing script"})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>h,a:()=>a});var t=i(67294);const s={},r=t.createContext(s);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d098244b.d54efec2.js b/assets/js/d098244b.d54efec2.js new file mode 100644 index 0000000000..a196456d82 --- /dev/null +++ b/assets/js/d098244b.d54efec2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8620],{64218:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var s=n(85893),i=n(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2023/rest/"},r=void 0,d={id:"2023/rest/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2023/rest/index.md",sourceDirName:"2023/rest",slug:"/2023/rest/",permalink:"/gsoc/docs/2023/rest/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2023/rest/"},sidebar:"2023",previous:{title:"Week 22",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-25"},next:{title:"Community bonding",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-05-11"}},l={},a=[{value:"Authors",id:"authors",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function c(e){const t={a:"a",h2:"h2",li:"li",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"authors",children:"Authors"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"mailto:updateme",children:"Email"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://linkedin.com/in/updateme",children:"LinkedIn"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"mailto:updateme",children:"Email"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://linkedin.com/in/updateme",children:"LinkedIn"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,s.jsx)(t.h2,{id:"what-should-be-done",children:"What should be done?"})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>r});var s=n(67294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d0c53706.145dd154.js b/assets/js/d0c53706.145dd154.js new file mode 100644 index 0000000000..f8cb1ad410 --- /dev/null +++ b/assets/js/d0c53706.145dd154.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8349],{6384:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var t=i(85893),s=i(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2024/license-detection/"},c=void 0,l={id:"2024/license-detection/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/license-detection/index.md",sourceDirName:"2024/license-detection",slug:"/2024/license-detection/",permalink:"/gsoc/docs/2024/license-detection/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/license-detection/"},sidebar:"2024",previous:{title:"OVERHAULING SCHEDULER DESIGN (Discussion)",permalink:"/gsoc/docs/2024/scheduler/updates/2024-06-07"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/license-detection/updates/2024-05-30"}},r={},a=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman Jamal"})}),"\n",(0,t.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"mailto:abdelrahmanjamal5565@gmail.com",children:"Email"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://linkedin.com/in/abdelrahmanjamal",children:"LinkedIn"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,t.jsx)(n.p,{children:"AI Powered License Scanner"}),"\n",(0,t.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,t.jsx)(n.p,{children:"One of Fossology's primary features is extracting licenses and license text\nfrom files. Traditional methods like text comparison, regular expressions,\nand SPDX identifiers can result in false positives, often requiring human\nreview."}),"\n",(0,t.jsx)(n.p,{children:"This project harnesses the power of Large Language Models (LLMs) like Gemini-Pro, ChatGPT-3.5, and GPT-4. These models demonstrate exceptional accuracy in license recognition and conversion tasks."}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Key Goals:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"License Detection/Identification:"})," Accurately pinpoint licenses within files."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"License Conversion:"})," Convert licenses to SPDX and other standard formats."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Explainable AI:"})," Provide clear reasoning behind license identification and conversion decisions."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"TBD:"})," (Potential for additional features - could be expanded later)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Advanced Licen\nse Analysis:"})," Explore the use of LLMs for:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Obligation Conversion: Translate license obligations into actionable steps."}),"\n",(0,t.jsx)(n.li,{children:"Outbound License Determination: Assess the licenses applicable to derivative works."}),"\n",(0,t.jsx)(n.li,{children:"License Compatibility Checks: Identify potential conflicts or compatibility issues between licenses."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Semantic Search Preprocessing:"})," Utilize semantic search to pinpoint sections of code most likely to contain license information. This serves several purposes:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Cost Reduction: Minimize the amount of text processed by the LLM."}),"\n",(0,t.jsx)(n.li,{children:"Speed Enhancement: Accelerate license identification by focusing on relevant sections."}),"\n",(0,t.jsx)(n.li,{children:"Initial License Matching: Identify potential licenses based on the content of extracted sections."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"LLM-Powered Decision Making:"})," This phase involves a thorough evaluation process to select the most suitable LLM for the task. Multiple LLMs (e.g., LLama 3 8b, Mistral 7b, Gemma 1/2) will be tested on license identification and conversion tasks, considering factors such as:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Accuracy: Ability to correctly identify and convert licenses."}),"\n",(0,t.jsx)(n.li,{children:"Explainability: Clarity and detail of explanations for decisions."}),"\n",(0,t.jsx)(n.li,{children:"Efficiency: Performance and computational resource requirements."}),"\n",(0,t.jsx)(n.li,{children:"Adaptability: Potential for fine-tuning or customization for license-specific tasks."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Extensive prompt engineering will be conducted to optimize the input provided to the LLM, ensuring it receives the most relevant information from the pre-selected code sections and potential license matches. This will include experimenting with different prompt structures, formats, and the inclusion of additional context (e.g., project metadata) to enhance the LLM's performance and decision-making capabilities."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Handling Complex Cases:"})," Extend the LLM's capabilities to address scenarios where:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Licenses are located in external files (e.g., LICENSE file in a project's root directory)."}),"\n",(0,t.jsx)(n.li,{children:"Multiple files contribute to a project's overall licensing."}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>c});var t=i(67294);const s={},o=t.createContext(s);function c(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d2adff87.1e3e599b.js b/assets/js/d2adff87.1e3e599b.js new file mode 100644 index 0000000000..709250c9cf --- /dev/null +++ b/assets/js/d2adff87.1e3e599b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1676],{45034:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var n=t(85893),o=t(11151);const i={title:"Week 10",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},r=void 0,a={id:"2022/ui/updates/samuel/2022-09-1",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-09-1.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-09-1",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-09-1",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-09-1.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 10",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 12",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-09-08"},next:{title:"Community Bonding",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-06-02"}},l={},d=[{value:"THIS WEEK'S CONTRIBUTIONS",id:"this-weeks-contributions",level:2},{value:"FRONTEND:",id:"frontend",level:3},{value:"SCREENSHOTS",id:"screenshots",level:3},{value:"BACKEND:",id:"backend",level:3},{value:"SCREENSHOTS",id:"screenshots-1",level:3},{value:"NEXT WEEK'S PLAN",id:"next-weeks-plan",level:2}];function c(e){const s={a:"a",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"this-weeks-contributions",children:"THIS WEEK'S CONTRIBUTIONS"}),"\n",(0,n.jsx)(s.h3,{id:"frontend",children:"FRONTEND:"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"Improved the UI look and added new functionalities in the Manage group users page."}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Description"}),":"]}),"\n",(0,n.jsx)(s.p,{children:"The current implementation of manage group users , did not give any way to add back the removed user.\nThese improvements are allowing to add back the removed member."}),"\n",(0,n.jsx)(s.h3,{id:"screenshots",children:"SCREENSHOTS"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"manage-group-users-improved",src:t(12574).Z+"",width:"1350",height:"735"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Pull request:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/248",children:"feat(UI): added manage group-users page "})]}),"\n",(0,n.jsx)(s.h3,{id:"backend",children:"BACKEND:"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"Added a new API to add the user to the group."}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Description"}),":"]}),"\n",(0,n.jsx)(s.p,{children:"This API gives the ability to add the user who was removed from the group , to invite him back to the group."}),"\n",(0,n.jsx)(s.h3,{id:"screenshots-1",children:"SCREENSHOTS"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"ADDING USER TO THE GROUP:"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"add-user-to-group",src:t(8525).Z+"",width:"1461",height:"613"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"ATTEMPT TO ADD AN ALREADY EXISTING MEMBER:"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"re-add-user-to-group",src:t(13312).Z+"",width:"1458",height:"586"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Pull request:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2303",children:"feat(API): add user to a group."})]}),"\n",(0,n.jsx)(s.h2,{id:"next-weeks-plan",children:"NEXT WEEK'S PLAN"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Improve the UI look of the manage group users page according to the mentor's feedbacks."}),"\n",(0,n.jsxs)(s.li,{children:["Finish the remaining work on the ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2287",children:"fix(API): merge multiple upload-api calls into one."}),"."]}),"\n",(0,n.jsxs)(s.li,{children:["Complete the suggested changes on ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2298",children:"feat(API): delete admin-license candidate"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"Add more UI pages on the license module."}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8525:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/add_user-9ae22d54dec4d4ede8ab0fa98c0df358.png"},13312:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/re_add_user-ec23d25ce31984283b7b1fe59307d266.png"},12574:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/manage_group_users_improved-8828647bd23c53448f2019aa2c78ef3c.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>r});var n=t(67294);const o={},i=n.createContext(o);function r(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d3d51c24.03fa64ab.js b/assets/js/d3d51c24.03fa64ab.js new file mode 100644 index 0000000000..5d4e8b98e9 --- /dev/null +++ b/assets/js/d3d51c24.03fa64ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1504],{61463:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>a});var i=n(85893),t=n(11151);const l={title:"Week 5",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},r=void 0,o={id:"2021/buildsystem/updates/2021-07-09",title:"Week 5",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-07-09.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-07-09",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-09",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-07-09.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 5",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 4",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-29"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-23"}},c={},a=[{value:"Meeting 10",id:"meeting-10",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 5 Progress",id:"week-5-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-10",children:"Meeting 10"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(July 9th, 2021)"})}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"week-5-progress",children:"Week 5 Progress"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"CMake Installation Configuration is almost complete."}),"\n",(0,i.jsx)(s.li,{children:"FOSSology can be installed completely via CMake"}),"\n",(0,i.jsx)(s.li,{children:"Post install script generation also added"}),"\n",(0,i.jsxs)(s.li,{children:["To test the current progress, follow the instructions ",(0,i.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:["There are permission problems while running bash script of ",(0,i.jsx)(s.code,{children:"nomos"}),", ",(0,i.jsx)(s.code,{children:"monk"})," and ",(0,i.jsx)(s.code,{children:"genvendor"}),"."]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["One possible fix can be to add ",(0,i.jsx)(s.code,{children:"bash"})," before each bash scripts."]}),"\n",(0,i.jsxs)(s.li,{children:["The other fix is to modify shebang line in each script from ",(0,i.jsx)(s.code,{children:"#!/bin/sh"})," to ",(0,i.jsx)(s.code,{children:"#!/bin/bash"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"In copyright agent same files are being compiled thrice, this is slowing down the build."}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"I am working on it. The problem is occurring because of three different executables."}),"\n",(0,i.jsx)(s.li,{children:"I will try to combine the common objects together."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:["There are some redundant files in the installation. And VERSION file is missing in ",(0,i.jsx)(s.code,{children:"/usr/local/share/fossology"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Fix copyright build."}),"\n",(0,i.jsx)(s.li,{children:"Remove redundant files and folders."}),"\n",(0,i.jsx)(s.li,{children:"Fix permission issues."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>r});var i=n(67294);const t={},l=i.createContext(t);function r(e){const s=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d3e40c0e.ca435e25.js b/assets/js/d3e40c0e.ca435e25.js new file mode 100644 index 0000000000..fa085dbac2 --- /dev/null +++ b/assets/js/d3e40c0e.ca435e25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9250],{57809:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>h,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=n(85893),t=n(11151);const r={title:"Week 2",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},h=void 0,l={id:"2022/reuse/updates/2022-06-20",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-06-20.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-06-20",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-06-20.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 2",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-13"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/reuse/updates/2022-06-27"}},c={},d=[{value:"Meeting 6",id:"meeting-6",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 7",id:"meeting-7",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function a(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-6",children:"Meeting 6"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 21th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Resolved all the comments/feedbacks added my mentors in ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2235",children:"#2235"}),"."]}),"\n",(0,i.jsx)(s.li,{children:"Mentors reviewed all the changes and found correct."}),"\n",(0,i.jsxs)(s.li,{children:["Current REUSE status","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["When running reuse lint, the result is as follows:","\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"Files with copyright information: 2619 / 4360\nFiles with license information: 1066 / 4360\n"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["We discussed adding copyright to files without copyright information to make code fully reuse compliant. We finalized the copyright statement for such files - ",(0,i.jsx)(s.code,{children:"SPDX-FileCopyrightText: \xa9 Fossology contributors"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Few doubts were cleared regarding the comment formatting of the ",(0,i.jsx)(s.code,{children:".sql"})," and ",(0,i.jsx)(s.code,{children:"VERSION"})," files."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Implement discussed solution in upcoming week."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-7",children:"Meeting 7"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 23th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,i.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Discussion on updating of reports regularly by students."}),"\n",(0,i.jsx)(s.li,{children:"Created a second PR with changes suggested by mentors."}),"\n",(0,i.jsx)(s.li,{children:"Added copyright text of empty copyright files to \u201c(c) FOSSology Contributors\u201d."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"I Will continue with more changes."}),"\n"]})]})}function o(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>h});var i=n(67294);const t={},r=i.createContext(t);function h(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:h(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d45f577f.b8f5413e.js b/assets/js/d45f577f.b8f5413e.js new file mode 100644 index 0000000000..9bb069e848 --- /dev/null +++ b/assets/js/d45f577f.b8f5413e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[639],{49534:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var i=s(85893),t=s(11151);const o={title:"Week 7",author:"Rajul Jha",tags:["gsoc24","CI"]},r="Week 7",a={id:"2024/ci-scanner/updates/2024-07-18",title:"Week 7",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-07-18.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-07-18",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-07-18.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 7",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 6",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-11"},next:{title:"Week 8",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-25"}},l={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Work Done",id:"work-done",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"week-7",children:"Week 7"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July, 12 2024 - July 18, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July 17, 2024)"})}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Discussed the work done on the Fossology Github Action ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology-action/pull/1",children:"#PR1"})," with the mentors."]}),"\n",(0,i.jsxs)(n.li,{children:["Discussed some issues that were encountered during the testing of ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2784",children:"#PR2784"})," by ",(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushal"})]}),"\n",(0,i.jsx)(n.li,{children:"Had a brief discussion on how to improve the examples that are given in the Github workflow file."}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})," mentioned I should also start working on the documentation part for the Wiki."]}),"\n",(0,i.jsx)(n.li,{children:"Had a fun discussion about what to name the new repository.\ud83d\ude01"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"work-done",children:"Work Done"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Completed the initial work on Fossology Action repository and sent out a ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology-action/pull/1",children:"#PR1"})," for the same."]}),"\n",(0,i.jsxs)(n.li,{children:["The new Github Action allows the users to scan using the fossology scanners ( ",(0,i.jsx)(n.code,{children:"nomos"}),", ",(0,i.jsx)(n.code,{children:"ojo"})," and ",(0,i.jsx)(n.code,{children:"copyright"})," ) inside their Github Actions workflows in just a few lines of configuration."]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"name: License scan on PR\non: [pull_request]\njobs:\n compliance_check:\n runs-on: ubuntu-latest\n name: Perform license scan\n steps:\n - name: Checkout\n uses: actions/checkout@v2\n\n - name: License check\n id: compliance\n uses: fossology/fossology-action@v1\n with:\n scan_mode: ''\n scanners: 'nomos ojo'\n report_format: 'SPDX_JSON'\n\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["User can scan in various scanning modes like ",(0,i.jsx)(n.code,{children:"diff"}),", ",(0,i.jsx)(n.code,{children:"repo"})," and ",(0,i.jsx)(n.code,{children:"differential"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["User can retrieve the scan results report as an artifact in Github Actions in various formats like ",(0,i.jsx)(n.code,{children:"SPDX_JSON"}),", ",(0,i.jsx)(n.code,{children:"SPDX_YAML"}),", ",(0,i.jsx)(n.code,{children:"SPDX_RDF"})," and ",(0,i.jsx)(n.code,{children:"SPDX_TAG_VALUE"})," by passing the format as an input with the action."]}),"\n",(0,i.jsxs)(n.li,{children:["The action also allows the user to pass various custom parameters like passing their own ",(0,i.jsx)(n.code,{children:"keyword.conf"})," or ",(0,i.jsx)(n.code,{children:"allowlist.json"})," file."]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'scan_mode:\n description: "Specifies whether to perform diff scans, repo scans, or differential scans. Leave blank for diff scans."\n required: false\n default: ""\nscanners:\n description: "Space-separated list of scanners to invoke."\n required: true\n default: "nomos ojo copyright keyword"\nreport_format:\n description: "Report format (SPDX_JSON,SPDX_RDF,SPDX_YAML,SPDX_TAG_VALUE) to print the results in."\n required: false\n default: ""\nkeyword_conf_file_path:\n description: "Path to custom keyword.conf file. (Use only with keyword scanner set to True)"\n required: false\n default: ""\nallowlist_file_path:\n description: "Path to allowlist.json file."\n required: false\n default: ""\nfrom_tag:\n description: "Starting tag to scan from. (Use only with differential mode)"\n required: false\n default: ""\nto_tag:\n description: "Ending tag to scan to. (Use only with differential mode)"\n required: false\n default: ""\n'})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Fixed some of the bugs in the previous PR's before they were merged."}),"\n",(0,i.jsxs)(n.li,{children:["Got a review from ",(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})," to reduce code duplication at some places and try to maintain backward compatibility in the code."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Refactor the code in the previous PR's to reduce code duplication (following the DRY principle) and better function handling."}),"\n",(0,i.jsx)(n.li,{children:"Try to complete the line number part for the scanner parts as well."}),"\n",(0,i.jsx)(n.li,{children:"Research about the next step for allowing the users to download scanned dependencies."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var i=s(67294);const t={},o=i.createContext(t);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d4fb24e6.de106ae7.js b/assets/js/d4fb24e6.de106ae7.js new file mode 100644 index 0000000000..f674d17525 --- /dev/null +++ b/assets/js/d4fb24e6.de106ae7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1471],{80020:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>a});var i=s(85893),t=s(11151);const l={title:"Week 7",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},c=void 0,r={id:"2021/buildsystem/updates/2021-07-23",title:"Week 7",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-07-23.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-07-23",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-23",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-07-23.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 7",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 5",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-09"},next:{title:"Week 8",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-07-30"}},o={},a=[{value:"Meeting 11",id:"meeting-11",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 7 Progress",id:"week-7-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-11",children:"Meeting 11"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(July 23rd, 2021)"})}),"\n",(0,i.jsx)(n.p,{children:"This week I implemented CMake packaging configuration for FOSSology. There were two meetings in this week and this report covers both of them."}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-7-progress",children:"Week 7 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Initial CMake packaging configuration implemented."}),"\n",(0,i.jsx)(n.li,{children:"Packages can be built according to the FOSSology previous packaging structure."}),"\n",(0,i.jsx)(n.li,{children:"Copyright, ecc and keyword now builds faster."}),"\n",(0,i.jsxs)(n.li,{children:["To test the current progress, follow the instructions ",(0,i.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Where I can find packaging info for FOSSology?"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["All the scripts and companion files are located inside ",(0,i.jsx)(n.code,{children:"debian"})," folder."]}),"\n",(0,i.jsxs)(n.li,{children:["The most important files are ",(0,i.jsx)(n.code,{children:"control"}),", which contains the dependency and description of each package, and ",(0,i.jsx)(n.code,{children:"rules"})," file, which contains the make commands for creating the packages."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"What are"})," ",(0,i.jsx)(n.code,{children:"${shlibs:Depends}"})," ",(0,i.jsx)(n.strong,{children:"and"})," ",(0,i.jsx)(n.code,{children:"${misc:Depends}"})," ?"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"They are dependencies required for creating Debian packages. CMake should be adding them by default so we can safely ignore them."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Will the new packages have the same structure as the old ones?"})," ",(0,i.jsx)(n.em,{children:"(Michael)"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Yes for compatibility purposes Gaurav has suggested exactly follow the same structure as the old one."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Copyright build is slow because the same object files are being compiled three times, can you improve that?"})," ",(0,i.jsx)(n.em,{children:"(Gaurav)"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"I can try compiling the common object files beforehand and then adding the executables. But how to know the common object files?"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Gaurav showed me where in the Makefiles I can find the common object files."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"There are problems with copying the symbolic link and packaging them. So I have to find some alternatives to resolve that."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"With component installing, package description can no longer be set."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"fossology-common"})," package contains file from ",(0,i.jsx)(n.code,{children:"fossology-db"})," package. And the ",(0,i.jsx)(n.code,{children:"fossology-db"})," package is empty."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav said this was unexpected and should not happen. This seems to be a very old bug with packaging."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Work more on the packaging."}),"\n",(0,i.jsx)(n.li,{children:"Improve compilation of copyright and monk agents"}),"\n",(0,i.jsx)(n.li,{children:"Try to solve the packaging bug and add a pull request for that."}),"\n",(0,i.jsx)(n.li,{children:"Move on to implementing testing configurations."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>c});var i=s(67294);const t={},l=i.createContext(t);function c(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d508c172.cddde400.js b/assets/js/d508c172.cddde400.js new file mode 100644 index 0000000000..bd36f7db35 --- /dev/null +++ b/assets/js/d508c172.cddde400.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9611],{42082:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=n(85893),t=n(11151);const r={title:"Week 3",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},l=void 0,o={id:"2021/buildsystem/updates/2021-06-22",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-06-22.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-06-22",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-06-22.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 3",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-18"},next:{title:"Week 4",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-29"}},a={},c=[{value:"Meeting 5",id:"meeting-5",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 3 Progress",id:"week-3-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 22nd, 2021)"})}),"\n",(0,i.jsx)(s.p,{children:"In this fifth meeting, question related to versioning and obtaining commit hash were discussed, this was a short meeting."}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"week-3-progress",children:"Week 3 Progress"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Version file Implementation"}),"\n",(0,i.jsx)(s.li,{children:"Initial functions on obtaining commit and branch info"}),"\n",(0,i.jsxs)(s.li,{children:["To test the current progress, follow the instructions ",(0,i.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"What is the regex expression used for obtaining version information?"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"The regex has recently been modified to cover recent versions. The latest form is as below:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*\n"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"You can also try alternatives to regex if possible for CMake."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"Should I use"})," ",(0,i.jsx)(s.code,{children:"git describe --tags"})," ",(0,i.jsx)(s.strong,{children:"or"})," ",(0,i.jsx)(s.code,{children:"git describe --always HEAD"})," ",(0,i.jsx)(s.strong,{children:"for obtaining version information?"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["In FOSSology we always use ",(0,i.jsx)(s.code,{children:"git describe --tags"}),", no exception whatsoever."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:["CMake provides a preset configuration for the install path on GNU systems, you can see the description ",(0,i.jsx)(s.a,{href:"https://cmake.org/cmake/help/v3.10/module/GNUInstallDirs.html",children:"here"})," based on the ",(0,i.jsx)(s.a,{href:"https://www.gnu.org/prep/standards/html_node/Directory-Variables.html",children:"configuration"})," suggested by the GNU After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios."]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under ",(0,i.jsx)(s.code,{children:"/usr/local/share/fossology/"})," with their individual folders instead of going to ",(0,i.jsx)(s.code,{children:"/usr/local/bin/"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["If the same results can be achieved by using the ",(0,i.jsx)(s.code,{children:"CMAKE_INSTALL_<dir>"})," and ",(0,i.jsx)(s.code,{children:"CMAKE_INSTALL_PREFIX"})," then yeah, it will be preferred."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Try adding the version and commit hash info."}),"\n",(0,i.jsx)(s.li,{children:"Implement writing version files for each build."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>l});var i=n(67294);const t={},r=i.createContext(t);function l(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d6a7f907.c93dd818.js b/assets/js/d6a7f907.c93dd818.js new file mode 100644 index 0000000000..615c3dc26f --- /dev/null +++ b/assets/js/d6a7f907.c93dd818.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2684],{69060:a=>{a.exports=JSON.parse('{"tag":{"label":"cmake","permalink":"/gsoc/blog/tags/cmake","allTagsPath":"/gsoc/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/gsoc/blog/tags/cmake","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/d790d111.2838e85d.js b/assets/js/d790d111.2838e85d.js new file mode 100644 index 0000000000..ba3f984dd7 --- /dev/null +++ b/assets/js/d790d111.2838e85d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3872],{33309:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>r});var i=n(85893),t=n(11151);const l={title:"Week 3",author:"Aman Dwivedi"},o=void 0,d={id:"2021/ui/updates/aman/2021-06-29",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-06-29.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-06-29",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-06-29.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-22"},next:{title:"Week 4",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-06"}},c={},r=[{value:"Screenshots",id:"screenshots",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function a(e){const s={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added license browser page"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added the login mechanism (login page, error alert, conditional login form, saving JWT tokens in cookie)"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:["Made cookie storage secure by adding ",(0,i.jsx)(s.code,{children:"sameSite: 'strict'"})," and ",(0,i.jsx)(s.code,{children:"secure: true"})," in cookies"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added upload instructions page"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added fossology documentation wiki link"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added third party licenses page"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added error 404 page"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Integrated GitHub actions for CI/CD test"}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Added create folder page"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Github actions",src:n(26951).Z+"",width:"1234",height:"502"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"help license browser page",src:n(31340).Z+"",width:"1920",height:"939"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"upload Instruction page",src:n(51284).Z+"",width:"1920",height:"942"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"login page",src:n(44656).Z+"",width:"1916",height:"337"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"hidden Login Form page",src:n(79261).Z+"",width:"1917",height:"941"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"loading spinner page",src:n(96212).Z+"",width:"1890",height:"549"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"login error page",src:n(79949).Z+"",width:"1895",height:"732"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"login page",src:n(44656).Z+"",width:"1916",height:"337"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"logout page",src:n(27449).Z+"",width:"1920",height:"171"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Error 404 page",src:n(34902).Z+"",width:"1920",height:"931"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Create Folder page",src:n(38758).Z+"",width:"1916",height:"935"})}),"\n",(0,i.jsx)(s.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/19",children:"feat(licenseBrowser): add license browser page"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/21",children:"feat(login): add login mechanism"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/28",children:"fix(cookies): add sameSite: 'strict' in cookies"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/29",children:"feat(uploadInstructions): add upload instructions"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/30",children:"feat(wiki-link): add fossology wiki link"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/31",children:"feat(thirdPartyLicense): add third party licenses"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/35",children:"fix(404): redirect to home page if page not found"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/37",children:"feat(CI/CD): add github actions for CI/CD test"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/45",children:"feat(folder): add create folder page"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},26951:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/GithubActions-9b867c07e9a4744117f5955ecafdaafb.PNG"},34902:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/Error404-1f513d07cd78ed0d387faa618486f856.png"},38758:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/CreateFolder-1b1845fda85eb126f209c084c864454a.png"},31340:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/licenseBrowser-5b3cc6e10c74596a071e63d15f8c3844.png"},79261:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/hiddenLoginForm-3f2c92d7a03de437320cd44215b33a3a.png"},96212:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/loadingSpinner-00823753be7a727181057304db8958dd.png"},44656:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/login-d599c4e53187c8f6439b8de616fbece4.png"},79949:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/loginError-f2a2b7939ac365fa6b657c8c415cca6b.png"},27449:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/logout-4b20404a7a752f8b423384cdfba08a50.png"},51284:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/uploadInstruction-18713330361c6b5a5d707ec567163d72.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>d,a:()=>o});var i=n(67294);const t={},l=i.createContext(t);function o(e){const s=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d8299bcc.f497c88c.js b/assets/js/d8299bcc.f497c88c.js new file mode 100644 index 0000000000..a799033d48 --- /dev/null +++ b/assets/js/d8299bcc.f497c88c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[448],{25888:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var n=i(85893),t=i(11151);const o={title:"Week 1",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},r="Week 1 meeting and activities",a={id:"2024/spdx-expression/updates/2024-05-28",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/updates/2024-05-28.md",sourceDirName:"2024/spdx-expression/updates",slug:"/2024/spdx-expression/updates/2024-05-28",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-05-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/updates/2024-05-28.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx-expression",permalink:"/gsoc/docs/tags/spdx-expression"}],version:"current",frontMatter:{title:"Week 1",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},sidebar:"2024",previous:{title:"Community Bonding Report",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-05-07"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-04"}},d={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Prototype Presentation",id:"prototype-presentation",level:3},{value:"Schema Proposal",id:"schema-proposal",level:3},{value:"Activities",id:"activities",level:2}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-1-meeting-and-activities",children:"Week 1 meeting and activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(May 28,2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsx)(s.h3,{id:"prototype-presentation",children:"Prototype Presentation"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Presented a prototype for scanning expressions with OJO."}),"\n",(0,n.jsx)(s.li,{children:"Initially, I was storing expressions directly as strings."}),"\n",(0,n.jsx)(s.li,{children:"Received feedback that storing expressions as strings could not allow modifications."}),"\n",(0,n.jsx)(s.li,{children:"Recieved suggestion to store license names as their references (licenseId) and the relationships between them (operators)."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"schema-proposal",children:"Schema Proposal"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Was asked to propose a schema for storing license expressions."}),"\n",(0,n.jsx)(s.li,{children:"Inquired if using a graph database like Neo4j would be suitable."}),"\n",(0,n.jsx)(s.li,{children:"It was considered a good idea but mentors suggested not to use it as mixing two databases (PostgreSQL and Neo4j) would complicate things."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Researched various methods to store license expressions."}),"\n",(0,n.jsx)(s.li,{children:"Found that an Abstract Syntax Tree (AST) is a good way to store expressions."}),"\n",(0,n.jsxs)(s.li,{children:["Proposed two types of ",(0,n.jsx)(s.a,{href:"https://docs.google.com/document/d/1xYONSMBMQsLsGG3IIHD0gwJA0OP2-xPecLIaisIvupM/edit?usp=sharing",children:"schema"})," for storing license expressions."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,s,i)=>{i.d(s,{Z:()=>a,a:()=>r});var n=i(67294);const t={},o=n.createContext(t);function r(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d8d04ad4.41e576e1.js b/assets/js/d8d04ad4.41e576e1.js new file mode 100644 index 0000000000..451eec5da1 --- /dev/null +++ b/assets/js/d8d04ad4.41e576e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5084],{63578:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=s(85893),i=s(11151);const r={title:"Week 2",author:"Aman Dwivedi"},d=void 0,l={id:"2021/ui/updates/aman/2021-06-22",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-06-22.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-06-22",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-15"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-06-29"}},o={},c=[{value:"Screenshots",id:"screenshots",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added CONTRIBUTING.md file"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added the following GitHub infrastructure files"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"bug_report.md"}),"\n",(0,t.jsx)(n.li,{children:"feature_request.md"}),"\n",(0,t.jsx)(n.li,{children:"PULL_REQUEST_TEMPLATE.md"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Created a routes.js file inside constant folder for url mapping"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added Eslint for static code analysis"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added Prettier for code formating and ensuring consistent style throughout the code"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added script for testing and formatting the code using ESlint and Prettier"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Added ",(0,t.jsx)(n.code,{children:"prop-types"})," to validate the props of all components"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added getting started overview page"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added random string generator function for generating token name"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Added getDate function to get a date d days from today in ",(0,t.jsx)(n.code,{children:"YYYY-MM-DD"})," format for generating token expiry date"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"help overview page",src:s(45853).Z+"",width:"1920",height:"1365"})}),"\n",(0,t.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/4",children:"feat(infra): add GitHub infrastructure and Contributing.md"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/8",children:"feat(routes): add routes mapping in constants folder"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/9",children:"feat(linter): add proptype, eslint and prettier"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/14",children:"feat(help): add getting started overview page"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/16",children:"refactor(structure): divide helper file into sub-files"})}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},45853:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/helpOverview-a5d657c6e468936e6dd91b8e1678f1dd.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>d});var t=s(67294);const i={},r=t.createContext(i);function d(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d8d678bc.821cef06.js b/assets/js/d8d678bc.821cef06.js new file mode 100644 index 0000000000..e1be92729b --- /dev/null +++ b/assets/js/d8d678bc.821cef06.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9295],{55448:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var i=n(85893),t=n(11151);const o={title:"Week 3",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},r="Week 3 Meeting and Activities",a={id:"2024/spdx-expression/updates/2024-06-11",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/updates/2024-06-11.md",sourceDirName:"2024/spdx-expression/updates",slug:"/2024/spdx-expression/updates/2024-06-11",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/updates/2024-06-11.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"spdx-expression",permalink:"/gsoc/docs/tags/spdx-expression"}],version:"current",frontMatter:{title:"Week 3",author:"Akash Sah",tags:["gsoc24","spdx-expression"]},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-04"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-06-18"}},c={},l=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Presentation of Work",id:"presentation-of-work",level:3},{value:"Activities",id:"activities",level:2},{value:"License Expressions in the Same Table",id:"license-expressions-in-the-same-table",level:3},{value:"Create Expression for File with No Detected Expression",id:"create-expression-for-file-with-no-detected-expression",level:3},{value:"Change License Text, Acknowledgement, and Comment",id:"change-license-text-acknowledgement-and-comment",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"week-3-meeting-and-activities",children:"Week 3 Meeting and Activities"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 11, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Akashsah2003",children:"Akash Sah"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/deo002",children:"Dearsh Oberoi"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsx)(s.h3,{id:"presentation-of-work",children:"Presentation of Work"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Presented my work on storing and displaying expressions."}),"\n",(0,i.jsx)(s.li,{children:"Initially, expressions were displayed as a separate table in the UI."}),"\n",(0,i.jsx)(s.li,{children:"Feedback: Expressions should be displayed in the same table as licenses."}),"\n",(0,i.jsx)(s.li,{children:"When changing the license of a license expression, only detected licenses should be shown as options, rather than showing all licenses."}),"\n",(0,i.jsx)(s.li,{children:"Inquired about how to store License Text, Acknowledgement, and Comments for licenses that are part of a license expression."}),"\n",(0,i.jsx)(s.li,{children:"I proposed storing these in the AST as properties of the node."}),"\n",(0,i.jsxs)(s.li,{children:["Currently, they are stored in the ",(0,i.jsx)(s.code,{children:"clearing_event"})," table."]}),"\n",(0,i.jsxs)(s.li,{children:["Suggestion: Storing them in ",(0,i.jsx)(s.code,{children:"clearing_event"})," is a good idea as it can serve as an audit log to track changes."]}),"\n",(0,i.jsx)(s.li,{children:"There should be a way for users to create an expression for a particular file with no existing expression."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Displayed license expressions in the same table as licenses."}),"\n",(0,i.jsx)(s.h3,{id:"license-expressions-in-the-same-table",children:"License Expressions in the Same Table"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"License Expressions in the Same Table",src:n(76832).Z+"",width:"918",height:"147"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Allowed users to create an expression for a file with no detected expression."}),"\n",(0,i.jsx)(s.h3,{id:"create-expression-for-file-with-no-detected-expression",children:"Create Expression for File with No Detected Expression"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Create Expression for File with No Detected Expression",src:n(36857).Z+"",width:"918",height:"147"})}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Allowed users to change the License Text, Acknowledgement, and Comment for licenses that are part of a license expression."}),"\n",(0,i.jsx)(s.h3,{id:"change-license-text-acknowledgement-and-comment",children:"Change License Text, Acknowledgement, and Comment"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Change License Text, Acknowledgement, and Comment",src:n(20411).Z+"",width:"1199",height:"408"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},20411:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/customLicenseText-c6b849e7963f7599fedbb533cb497f81.png"},76832:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/licenseDecisionsTable-41fd6cadc5ebc5f5f48ca46b090813d9.png"},36857:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/userExpressionDecision-09eaad2ce49c005de9db70e3a5401b4b.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>r});var i=n(67294);const t={},o=i.createContext(t);function r(e){const s=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d96c26a6.731ca10e.js b/assets/js/d96c26a6.731ca10e.js new file mode 100644 index 0000000000..4be097ff7d --- /dev/null +++ b/assets/js/d96c26a6.731ca10e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5902],{5365:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=s(85893),i=s(11151);const r={title:"Week 3",author:"Kaushlendra"},o="Coding Week 3 Meeting",l={id:"2021/copyrights/updates/2021-06-22",title:"Week 3",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-06-22.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-06-22",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 2",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-15"},next:{title:"Week 4 & 5",permalink:"/gsoc/docs/2021/copyrights/updates/2021-07-06"}},d={},c=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 3 Progress",id:"week-3-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function a(e){const n={a:"a",h1:"h1",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"coding-week-3-meeting",children:"Coding Week 3 Meeting"}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,t.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,t.jsx)(n.li,{children:"Vasudev"}),"\n",(0,t.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,t.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,t.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,t.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Implementing the checks and Getting the indexes of the Hit copyright statements."}),"\n",(0,t.jsx)(n.li,{children:"Then How to represent the results into the CSV itself."}),"\n",(0,t.jsx)(n.li,{children:"Go through different manually checked copyright CSV provided."}),"\n",(0,t.jsx)(n.li,{children:"Fetch Results for each of them and Find out about the Accuracy Calculation Formula and Discuss the edge cases."}),"\n",(0,t.jsx)(n.li,{children:"Going through documentation of other libraries to be more precise with the efficiency."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"week-3-progress",children:"Week 3 Progress"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"A separate column in the CSV itself has been introduced with the predicted results"}),"\n",(0,t.jsx)(n.li,{children:"Implementation of the algorithm over different datasets has been completed."}),"\n",(0,t.jsx)(n.li,{children:"Posting the results and going through the manually checked datasets to find the loopholes."}),"\n",(0,t.jsx)(n.li,{children:"Wiki has been Updated"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"https://drive.google.com/drive/folders/1-t5V458ADHCOC9DF-RgIawFA6Z01zqwE?usp=sharing",children:"Drive Link"})," can be visited for The scripts used, Dataset Used and the Resulting CSVs as well."]}),"\n",(0,t.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(n.p,{children:"Understanding the code better and Implementing techniques over the CSVs."})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>o});var t=s(67294);const i={},r=t.createContext(i);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d9a66a3b.56a8e480.js b/assets/js/d9a66a3b.56a8e480.js new file mode 100644 index 0000000000..0922954d3b --- /dev/null +++ b/assets/js/d9a66a3b.56a8e480.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6441],{92198:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var s=i(85893),o=i(11151);const t={title:"Week 5",author:"Omar AbdelSamea"},r="Coding Week 5",l={id:"2021/microservice/updates/2021-07-06",title:"Week 5",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-07-06.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-07-06",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-07-06.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 4",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-29"},next:{title:"Week 6",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-13"}},d={},c=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Spawning agents using <code>kubectl exec</code>",id:"spawning-agents-using-kubectl-exec",level:2},{value:"Issues",id:"issues",level:3},{value:"[copyright]: agent didn't send version information: "wrong command line arguments"",id:"copyright-agent-didnt-send-version-information-wrong-command-line-arguments",level:4},{value:"Solution",id:"solution",level:5},{value:"[copyright]: agent didn't send version information: "cannot open regex definitions in conf: /usr/local/share/fossology/copyright/agent/copyright.conf"",id:"copyright--agent-didnt-send-version-information-cannot-open-regex-definitions-in-conf-usrlocalsharefossologycopyrightagentcopyrightconf",level:4},{value:"Solution",id:"solution-1",level:5},{value:"adj2nest debian package not found",id:"adj2nest-debian-package-not-found",level:4},{value:"Solution",id:"solution-2",level:5},{value:"[php7] [pid 19] [client 172.17.0.1:7237] PHP Fatal error: Uncaught Exception: unsatisfied dependency 'agent_unpack'",id:"php7-pid-19-client-17217017237-php-fatal-error--uncaught-exception-unsatisfied-dependency-agent_unpack",level:4},{value:"Suggested solution",id:"suggested-solution",level:5},{value:"End of the week results",id:"end-of-the-week-results",level:2}];function a(e){const n={br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-5",children:"Coding Week 5"}),"\n",(0,s.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,s.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev Maduri"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Singh"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Pratap"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Presented a working method of using ",(0,s.jsx)(n.code,{children:"kubectl exec"})," and tested with agents [ununpack, copyright, nomos]"]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"spawning-agents-using-kubectl-exec",children:["Spawning agents using ",(0,s.jsx)(n.code,{children:"kubectl exec"})]}),"\n",(0,s.jsx)(n.h3,{id:"issues",children:"Issues"}),"\n",(0,s.jsx)(n.h4,{id:"copyright-agent-didnt-send-version-information-wrong-command-line-arguments",children:'[copyright]: agent didn\'t send version information: "wrong command line arguments"'}),"\n",(0,s.jsx)(n.p,{children:"command: /etc/fossology/mods-enabled/copyright/agent/copyright --scheduler_start --userID=0 --groupID=0 --scheduler_start --jobId=0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["argument ",(0,s.jsx)(n.code,{children:"--scheduler_start"})," is present twice found in meta_agent_init() 779 and agent_spawn 701"]}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"solution",children:"Solution"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["removing ",(0,s.jsx)(n.code,{children:"--scheduler_start"})," from agent_spawn() 701"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"copyright--agent-didnt-send-version-information-cannot-open-regex-definitions-in-conf-usrlocalsharefossologycopyrightagentcopyrightconf",children:'[copyright]: agent didn\'t send version information: "cannot open regex definitions in conf: /usr/local/share/fossology/copyright/agent/copyright.conf"'}),"\n",(0,s.jsx)(n.h5,{id:"solution-1",children:"Solution"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["adding --config /etc/fossology/mods-enabled to the command.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Didn't work If this argument is added it looks for fossology.conf not copyright.conf\n'FATAL libfossscheduler.c.240: unable to open system configuration: unable to open configuration file \"/etc/fossology/mods-enabled/fossology.conf\"'"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["create a soft link from /etc/fossology/mods-enabled/copyright/agent/copyright.conf",(0,s.jsx)(n.br,{}),"\n","to /usr/local/share/fossology/copyright/agent/copyright.conf","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Worked"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"adj2nest-debian-package-not-found",children:"adj2nest debian package not found"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"adj2nest is installed with ununpack package."}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"solution-2",children:"Solution"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"creating adj2nest deployment with ununpack image."}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"php7-pid-19-client-17217017237-php-fatal-error--uncaught-exception-unsatisfied-dependency-agent_unpack",children:["[php7",":error","] [pid 19] [client 172.17.0.1:7237] PHP Fatal error: Uncaught Exception: unsatisfied dependency 'agent_unpack'"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"UI folder from agent is needed inside the web container otherwise it will not load it as a plugin."}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"suggested-solution",children:"Suggested solution"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"bundling UI folders of all agents in the fossology-web package."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Solved presented issues of agent spawning."}),"\n",(0,s.jsxs)(n.li,{children:["Applied some hacks to solve pending issues and proper solution will be provided later","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"for agents conf, Agents folders are copied into the container."}),"\n",(0,s.jsx)(n.li,{children:"for web package missing UI folders, Agents folders are copied into the container."}),"\n"]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var s=i(67294);const o={},t=s.createContext(o);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/da5968f3.8d904974.js b/assets/js/da5968f3.8d904974.js new file mode 100644 index 0000000000..7a2e9d3e41 --- /dev/null +++ b/assets/js/da5968f3.8d904974.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4627],{79513:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>o,frontMatter:()=>t,metadata:()=>r,toc:()=>c});var i=s(85893),h=s(11151);const t={title:"Community Bonding",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},a=void 0,r={id:"2022/spasht/updates/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/spasht/updates/2022-06-02.md",sourceDirName:"2022/spasht/updates",slug:"/2022/spasht/updates/2022-06-02",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/spasht/updates/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"spasht",permalink:"/gsoc/docs/tags/spasht"},{label:"clearlydefined",permalink:"/gsoc/docs/tags/clearlydefined"}],version:"current",frontMatter:{title:"Community Bonding",author:"Thanvi Lahari Pendyala",author_url:"https://github.com/Pendyala-thanvi",author_image_url:"https://avatars.githubusercontent.com/u/74642911?v=4",tags:["gsoc22","spasht","clearlydefined"]},sidebar:"2022",previous:{title:"Introduction",permalink:"/gsoc/docs/2022/spasht/"},next:{title:"Week 1",permalink:"/gsoc/docs/2022/spasht/updates/2022-06-08"}},l={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,h.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 2nd, 2022)"})}),"\n",(0,i.jsx)(n.p,{children:"GSOC 2022 weekly update"}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael c Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/sjha2048",children:"Sahil Jha"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Project setup done."}),"\n",(0,i.jsx)(n.li,{children:"Since it was the first meeting of community bonding period, we were introduced to every mentors and contributers."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Decided to schedule and plan the meetings from next week."}),"\n",(0,i.jsx)(n.li,{children:"Need to keep gsoc page updated"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 9th, 2022)"})}),"\n",(0,i.jsx)(n.p,{children:"GSOC 2022 weekly update"}),"\n",(0,i.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Decided on timings of Spasht weekly progress update meeting."}),"\n",(0,i.jsx)(n.li,{children:"Had a discussion on the project and got some resources from mentors."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussed on necessary research for project."}),"\n",(0,i.jsx)(n.li,{children:"Planning on understanding previous implementation."}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,h.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>a});var i=s(67294);const h={},t=i.createContext(h);function a(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(h):e.components||h:a(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/da9c51e5.5a500628.js b/assets/js/da9c51e5.5a500628.js new file mode 100644 index 0000000000..cf34a25943 --- /dev/null +++ b/assets/js/da9c51e5.5a500628.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2046],{73605:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var n=s(85893),i=s(11151);const r={title:"Week 2",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"4th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 2"]},o=void 0,d={id:"2022/ui/updates/krishna/2022-06-27",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-06-27.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-06-27",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-06-27.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 2",permalink:"/gsoc/docs/tags/week-2"}],version:"current",frontMatter:{title:"Week 2",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"4th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 2"]},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-06-20"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-04"}},a={},l=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"Edit user page",id:"edit-user-page",level:3},{value:"(<strong>Updated</strong>) Demo video",id:"updated-demo-video",level:3},{value:"(<strong>Updated</strong>) This implementaion can be tested by pulling the changes from PR<strong>#236</strong>.",id:"updated-this-implementaion-can-be-tested-by-pulling-the-changes-from-pr236",level:3}];function c(e){const t={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Sl. No."}),(0,n.jsx)(t.th,{children:"Initial Goals"}),(0,n.jsx)(t.th,{children:"Completed"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"1."}),(0,n.jsx)(t.td,{children:"Resolve the requested changes by mentors in the existing PRs"}),(0,n.jsx)(t.td,{children:"Done"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"2."}),(0,n.jsxs)(t.td,{children:["Creation of the ",(0,n.jsx)(t.code,{children:"Edit User Account"})," page"]}),(0,n.jsxs)(t.td,{children:[(0,n.jsx)(t.del,{children:"Partially"})," Done"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"3."}),(0,n.jsx)(t.td,{children:"Explore the backend codebase of fossology and learn more about php developement"}),(0,n.jsx)(t.td,{children:"Partially"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"edit-user-page",children:"Edit user page"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["The UI implementation of the ",(0,n.jsx)(t.code,{children:"Edit user Page"})," is almost done."]}),"\n",(0,n.jsxs)(t.li,{children:["The task included","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Reusing already created components to maintain uniformity in design."}),"\n",(0,n.jsx)(t.li,{children:"Using the existing API modules wherever needed."}),"\n",(0,n.jsx)(t.li,{children:"Writing clean and documented code with uniformity in folder structure."}),"\n",(0,n.jsxs)(t.li,{children:["Since the REST API for editing a user is not available, creating a mock api request using ",(0,n.jsx)(t.code,{children:"setTimeout"})," function."]}),"\n",(0,n.jsx)(t.li,{children:"Pre-Populating data for the selected user whose data needs to be edited."}),"\n",(0,n.jsxs)(t.li,{children:["Creating an Api request function to fetch user details based on ",(0,n.jsx)(t.code,{children:"id"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:["Designing a ",(0,n.jsx)(t.code,{children:"Pop-up modal"})," to reveal the tokens (",(0,n.jsx)(t.strong,{children:"better UX"}),")."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.h3,{id:"updated-demo-video",children:["(",(0,n.jsx)(t.strong,{children:"Updated"}),") Demo video"]}),"\n",(0,n.jsx)(t.p,{children:"The video clearly demonstrates the UI implementation of Edit user page."}),"\n",(0,n.jsx)("iframe",{width:"560",height:"315",src:"https://user-images.githubusercontent.com/71918441/176759747-481843b4-8b08-4a37-abfe-3821f4ce1752.mp4",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,n.jsxs)(t.h3,{id:"updated-this-implementaion-can-be-tested-by-pulling-the-changes-from-pr236",children:["(",(0,n.jsx)(t.strong,{children:"Updated"}),") This implementaion can be tested by pulling the changes from PR",(0,n.jsx)(t.a,{href:"https://github.com/fossology/FOSSologyUI/pull/236",children:(0,n.jsx)(t.strong,{children:"#236"})}),"."]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>o});var n=s(67294);const i={},r=n.createContext(i);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dd17a75b.58fc0454.js b/assets/js/dd17a75b.58fc0454.js new file mode 100644 index 0000000000..64a2b83abc --- /dev/null +++ b/assets/js/dd17a75b.58fc0454.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3246],{70729:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>h,toc:()=>d});var t=s(85893),i=s(11151);const r={title:"Week 6",author:"Shreya Singh"},a="Coding Week-6 Meeting",h={id:"2021/minerva/updates/2021-07-20",title:"Week 6",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-07-20.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-07-20",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Shreya Singh"},sidebar:"2021",previous:{title:"Week 5",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-13"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/minerva/updates/2021-07-27"}},l={},d=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week-6 Progress",id:"week-6-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function o(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"coding-week-6-meeting",children:"Coding Week-6 Meeting"}),"\n",(0,t.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Segregated nomos validated files and storing them in different folders"}),"\n",(0,t.jsx)(n.li,{children:"56515 files from Markov were validated and 156000 files from ngram"}),"\n",(0,t.jsxs)(n.li,{children:["For licenses data augmentation ",(0,t.jsx)(n.a,{href:"https://github.com/facebookresearch/AugLy",children:"Augly"})," library to be implemented."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"week-6-progress",children:"Week-6 Progress"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Pushed the files generated and scripts used to ",(0,t.jsx)(n.a,{href:"https://github.com/SinghShreya05/Minerva-Dataset-Generation",children:"repo"})]}),"\n",(0,t.jsx)(n.li,{children:"Implemented Augly to different licenses and discussed how to use it later."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsx)(n.p,{children:"To discuss the nomos validated results with the mentors and integrate Augly implementation to the script."})]})}function c(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>h,a:()=>a});var t=s(67294);const i={},r=t.createContext(i);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dd569b67.ceecc5a2.js b/assets/js/dd569b67.ceecc5a2.js new file mode 100644 index 0000000000..9906ca498e --- /dev/null +++ b/assets/js/dd569b67.ceecc5a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8168],{53565:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>c,toc:()=>r});var t=i(85893),s=i(11151);const a={title:"Week 3",author:"Abdelrahman Jamal"},l="Meeting 3",c={id:"2024/license-detection/updates/2024-06-13",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-06-13.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-06-13",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-06-13.md",tags:[],version:"current",frontMatter:{title:"Week 3",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-06"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-20"}},o={},r=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Semantic Search Exploration",id:"semantic-search-exploration",level:3},{value:"License Text Dataset",id:"license-text-dataset",level:3},{value:"Semantic Search Approaches",id:"semantic-search-approaches",level:3},{value:"Code Example:",id:"code-example",level:3},{value:"Output Example:",id:"output-example",level:3},{value:"Key Findings",id:"key-findings",level:3},{value:"Additional Notes",id:"additional-notes",level:3},{value:"Conclusions and Next Steps",id:"conclusions-and-next-steps",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(June 13,2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,t.jsx)(n.h3,{id:"semantic-search-exploration",children:"Semantic Search Exploration"}),"\n",(0,t.jsx)(n.p,{children:"Began implementing semantic search to improve license identification accuracy. Explored various techniques:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Sentence Transformers: Utilized the high-performing all-mpnet-base-v2 model."}),"\n",(0,t.jsx)(n.li,{children:"Bag-of-Words (BoW) & TF-IDF: Examined a simpler model for comparison"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"license-text-dataset",children:"License Text Dataset"}),"\n",(0,t.jsxs)(n.p,{children:["Incorporated license names and SPDX IDs from the ",(0,t.jsx)(n.a,{href:"https://github.com/spdx/license-list-data/tree/main/json",children:"SPDX GitHub repository"})," into the project. The end result is a csv file with license names, ids, and license text available for use in semantic search."]}),"\n",(0,t.jsx)(n.h3,{id:"semantic-search-approaches",children:"Semantic Search Approaches"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"file-embedding"}),": Embedded all license texts together, but this proved too coarse for granular analysis."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"license-embedding"}),": Embedded each license text individually. This showed promise in identifying license-relevant lines but struggled with accurate license matching."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"line-embedding"}),": Embedded each line of each license separately, offering potential for finer-grained matching but at a higher computational cost."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"code-example",children:"Code Example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"create_license_dataset('extras/license_information/details')\ndf = client.temp_function(pd.read_csv('extras/lamma3-8b-pytorch-main-sampled.csv'))\nfile_idx = 0\nresults = get_top_similar_license_lines(\\\n df.loc[file_idx, 'file_comments'],\n 'extras/license_information/license_dataset.txt',\n # model='bow',\n top_k=5,\n embedding_approach='license-embedding'\n )\nresults\n)\n"})}),"\n",(0,t.jsx)(n.h3,{id:"output-example",children:"Output Example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"[(40,\n 0.6339692,\n ' File distributed under the Zero Clause BSD (0BSD) license. Copyright Contributors to the pythoncapi_compat project.',\n 'License Name: CNRI Python License'),\n (0,\n 0.5076868,\n 'Header file providing new C API functions to old Python versions.',\n 'N/A'),\n (1,\n 0.5062,\n 'SPDX-License-Identifier: 0BSD',\n 'License Name: Xdebug License v 1.03'),\n (41,\n 0.4910386,\n ' Homepage: https://github.com/python/pythoncapi_compat',\n 'License Name: CNRI Python License'),\n (46,\n 0.47866815,\n ' bpo-43753 added Py_Is(), Py_IsNone(), Py_IsTrue() and Py_IsFalse() to Python 3.10.0b1.',\n 'License Name: CNRI Python License')]\n"})}),"\n",(0,t.jsx)(n.p,{children:"The output is a list of tuples where each tuple contains:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The index of the line in question"}),"\n",(0,t.jsx)(n.li,{children:"The similarity score that led to it being chosen as a top similar line"}),"\n",(0,t.jsx)(n.li,{children:"The actual text of the line"}),"\n",(0,t.jsx)(n.li,{children:"The name of the license that the line was matched to"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"key-findings",children:"Key Findings"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Semantic Search Progress: Successfully implemented semantic search to identify potentially license-relevant lines within code files."}),"\n",(0,t.jsx)(n.li,{children:"License Matching Challenges: While line identification improved, accurately matching lines to the correct license remains a challenge. The current approach often mismatches lines to unrelated licenses."}),"\n",(0,t.jsx)(n.li,{children:"Metrics Needed: Currently lack quantitative metrics (e.g., accuracy) to assess the effectiveness of different semantic search approaches and embedding techniques."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"additional-notes",children:"Additional Notes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The TF-IDF proved very poor at both finding license relevant lines and matching them to the correct license."}),"\n",(0,t.jsx)(n.li,{children:"The BoW was not as accurate as Sentence Transformers at finding the license relevant lines, but it was still very good for its size."}),"\n",(0,t.jsxs)(n.li,{children:["The ",(0,t.jsx)(n.code,{children:"get_top_similar_license_lines"})," function automatically saved the embeddings for each approach and loads them if they already existed on disk."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conclusions-and-next-steps",children:"Conclusions and Next Steps"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Refine License Matching: Continue exploring and refining semantic search techniques to improve license matching accuracy."}),"\n",(0,t.jsx)(n.li,{children:"Experiment with Models: Investigate alternative embedding models or fine-tuning existing models to better capture license-specific semantics. As model size is not a hindrance, no need to explore suboptimal strategies such as BoW and TF-IDF."}),"\n",(0,t.jsx)(n.li,{children:"Establish Evaluation Metrics: Develop metrics to quantitatively measure the performance of license identification and matching, enabling objective comparison of different approaches."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>l});var t=i(67294);const s={},a=t.createContext(s);function l(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/de98e83e.37c89ba3.js b/assets/js/de98e83e.37c89ba3.js new file mode 100644 index 0000000000..6504dec579 --- /dev/null +++ b/assets/js/de98e83e.37c89ba3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5442],{18626:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var t=s(85893),i=s(11151);const l={title:"Week 8",author:"Rajul Jha",tags:["gsoc24","CI"]},o="Week 8",r={id:"2024/ci-scanner/updates/2024-07-25",title:"Week 8",description:"\x3c!--",source:"@site/docs/2024/ci-scanner/updates/2024-07-25.md",sourceDirName:"2024/ci-scanner/updates",slug:"/2024/ci-scanner/updates/2024-07-25",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/ci-scanner/updates/2024-07-25.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"CI",permalink:"/gsoc/docs/tags/ci"}],version:"current",frontMatter:{title:"Week 8",author:"Rajul Jha",tags:["gsoc24","CI"]},sidebar:"2024",previous:{title:"Week 7",permalink:"/gsoc/docs/2024/ci-scanner/updates/2024-07-18"},next:{title:"Introduction",permalink:"/gsoc/docs/2024/pipeline/"}},a={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:2},{value:"Discussions",id:"discussions",level:2},{value:"Work Done",id:"work-done",level:2},{value:"Planning for next week",id:"planning-for-next-week",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"week-8",children:"Week 8"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July, 19 2024 - July 25, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"(July 24, 2024)"})}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/rajuljha",children:"Rajul Jha"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(n.li,{children:"Katharina"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Discussed potential improvements in the ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology-action/pull/1",children:"#PR1"}),"\nwith ",(0,t.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})," discussed in detail what we need to achieve with the download dependencies task."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The user should have ability to download dependencies for scan."}),"\n",(0,t.jsx)(n.li,{children:"Then they can run fossology scanners on them in CI pipeline before hand to identify potential licenses and resolve them before hand."}),"\n",(0,t.jsxs)(n.li,{children:["We want to use the Cyclone DX toolkit for generating SBOMs of the repo.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Then use our custom written downloader for downloading the packages from the SBOM."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["User needs to pass the language flag along with some ",(0,t.jsx)(n.code,{children:"download-deps"})," flag or (something) since\nwe are using language dependant tools."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"work-done",children:"Work Done"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Completed refactoring the previous ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2754",children:"#PR2754"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"It follows the Don't repeat Yourself (DRY) principle."}),"\n",(0,t.jsx)(n.li,{children:"Add type annotations to all the functions."}),"\n",(0,t.jsxs)(n.li,{children:["Add a new boolean flag ",(0,t.jsx)(n.code,{children:"whole"})," that can be used to extract whole information from the scanners."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Completed the licenses line number display in the CI in the same ",(0,t.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2754",children:"#PR2754"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Started working on documenting the new scanners features locally as discussed with ",(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Explored the scan dependencies part for the scanners. Need more clarity as to what exactly we need to achieve here."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"planning-for-next-week",children:"Planning for next week"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Plan out the structure and research in depth about the download dependencies task part."}),"\n",(0,t.jsx)(n.li,{children:"After structuring, need to plan out and flesh out the design details for the same."}),"\n",(0,t.jsx)(n.li,{children:"Start working on this next major task :)"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>o});var t=s(67294);const i={},l=t.createContext(i);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/df203c0f.8f479381.js b/assets/js/df203c0f.8f479381.js new file mode 100644 index 0000000000..48aca910a7 --- /dev/null +++ b/assets/js/df203c0f.8f479381.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9924],{59047:(e,n,t)=>{t.d(n,{Z:()=>M});var i=t(67294),s=t(85893);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var l=t(36905),a=t(95999),c=t(35281);const r={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,l.Z)(c.k.common.admonition,c.k.common.admonitionType(n),r.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:r.admonitionHeading,children:[(0,s.jsx)("span",{className:r.admonitionIcon,children:n}),t]})}function h(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:r.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:o,className:l}=e;return(0,s.jsxs)(d,{type:n,className:l,children:[i||t?(0,s.jsx)(u,{title:i,icon:t}):null,(0,s.jsx)(h,{children:o})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,s.jsx)(m,{...x,...e,className:(0,l.Z)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const p={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(m,{...p,...e,className:(0,l.Z)("alert alert--success",e.className),children:e.children})}function N(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const Z={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(m,{...Z,...e,className:(0,l.Z)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:f,tip:v,info:w,warning:function(e){return(0,s.jsx)(m,{...b,...e,className:(0,l.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(m,{...z,...e,className:(0,l.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(f,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(m,{...C,...e,className:(0,l.Z)("alert alert--warning",e.className),children:e.children})}}};function M(e){const n=o(e),t=(i=n.type,k[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,s.jsx)(t,{...n})}},40491:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});t(67294);var i=t(36905),s=t(33692),o=t(88824),l=t(8264),a=t(35281),c=t(95999),r=t(90197),d=t(22212),u=t(92503),h=t(85893);function m(e){const n=function(){const{selectMessage:e}=(0,o.c)();return n=>e(n,(0,c.I)({id:"theme.docs.tagDocListPageTitle.nDocsTagged",description:'Pluralized label for "{count} docs tagged". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One doc tagged|{count} docs tagged"},{count:n}))}();return(0,c.I)({id:"theme.docs.tagDocListPageTitle",description:"The title of the page for a docs tag",message:'{nDocsTagged} with "{tagName}"'},{nDocsTagged:n(e.tag.count),tagName:e.tag.label})}function g(e){let{doc:n}=e;return(0,h.jsxs)("article",{className:"margin-vert--lg",children:[(0,h.jsx)(s.Z,{to:n.permalink,children:(0,h.jsx)(u.Z,{as:"h2",children:n.title})}),n.description&&(0,h.jsx)("p",{children:n.description})]})}function x(e){let{title:n}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.d,{title:n}),(0,h.jsx)(r.Z,{tag:"doc_tag_doc_list"})]})}function f(e){let{tag:n,title:t}=e;return(0,h.jsx)(l.FG,{className:(0,i.Z)(a.k.page.docsTagDocListPage),children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsx)("div",{className:"row",children:(0,h.jsxs)("main",{className:"col col--8 col--offset-2",children:[n.unlisted&&(0,h.jsx)(d.Z,{}),(0,h.jsxs)("header",{className:"margin-bottom--xl",children:[(0,h.jsx)(u.Z,{as:"h1",children:t}),(0,h.jsx)(s.Z,{href:n.allTagsPath,children:(0,h.jsx)(c.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,h.jsx)("section",{className:"margin-vert--lg",children:n.items.map((e=>(0,h.jsx)(g,{doc:e},e.id)))})]})})})})}function j(e){const n=m(e);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(x,{...e,title:n}),(0,h.jsx)(f,{...e,title:n})]})}},22212:(e,n,t)=>{t.d(n,{Z:()=>m});t(67294);var i=t(36905),s=t(95999),o=t(35742),l=t(85893);function a(){return(0,l.jsx)(s.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function c(){return(0,l.jsx)(s.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function r(){return(0,l.jsx)(o.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(35281),u=t(59047);function h(e){let{className:n}=e;return(0,l.jsx)(u.Z,{type:"caution",title:(0,l.jsx)(a,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,l.jsx)(c,{})})}function m(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r,{}),(0,l.jsx)(h,{...e})]})}},88824:(e,n,t)=>{t.d(n,{c:()=>r});var i=t(67294),s=t(52263);const o=["zero","one","two","few","many","other"];function l(e){return o.filter((n=>e.includes(n)))}const a={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function c(){const{i18n:{currentLocale:e}}=(0,s.Z)();return(0,i.useMemo)((()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${n.message}\n`),a}}),[e])}function r(){const e=c();return{selectMessage:(n,t)=>function(e,n,t){const i=e.split("|");if(1===i.length)return i[0];i.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);const s=t.select(n),o=t.pluralForms.indexOf(s);return i[Math.min(o,i.length-1)]}(t,n,e)}}}}]); \ No newline at end of file diff --git a/assets/js/df76972a.9bf2d6e6.js b/assets/js/df76972a.9bf2d6e6.js new file mode 100644 index 0000000000..d1597e006b --- /dev/null +++ b/assets/js/df76972a.9bf2d6e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8932],{32115:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=n(85893),i=n(11151);const o={title:"Week 3",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},a="WEEK 3",r={id:"2024/pipeline/updates/2024-06-13",title:"Week 3",description:"\x3c!--",source:"@site/docs/2024/pipeline/updates/2024-06-13.md",sourceDirName:"2024/pipeline/updates",slug:"/2024/pipeline/updates/2024-06-13",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/pipeline/updates/2024-06-13.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"pipeline",permalink:"/gsoc/docs/tags/pipeline"}],version:"current",frontMatter:{title:"Week 3",author:"Shreya Gautam",tags:["gsoc24","pipeline"]},sidebar:"2024",previous:{title:"Week 2",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-06"},next:{title:"Week 4",permalink:"/gsoc/docs/2024/pipeline/updates/2024-06-20"}},c={},l=[{value:"Updates",id:"updates",level:2},{value:"Subsequent Steps",id:"subsequent-steps",level:2}];function p(e){const t={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"week-3",children:"WEEK 3"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(June 13, 2024)"})}),"\n",(0,s.jsx)(t.h2,{id:"updates",children:"Updates"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I had my semester exams running hence I could not make it to the meeting"}),"\n",(0,s.jsxs)(t.li,{children:["During the week, ",(0,s.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav"})," provided me with a brief overview of Fossology's database structure, explaining the layout and organization of the copyright and copyright_events tables."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"subsequent-steps",children:"Subsequent Steps"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Post-exams, I plan to experiment with the script by connecting it to my local Fossology database to retrieve the copyright notices."}),"\n",(0,s.jsx)(t.li,{children:"Once the exams conclude, my focus will shift to retrieving the datasets and preparing the framework."}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(67294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e152e44f.57ebe089.js b/assets/js/e152e44f.57ebe089.js new file mode 100644 index 0000000000..8c605050e3 --- /dev/null +++ b/assets/js/e152e44f.57ebe089.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7161],{70466:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var t=n(85893),i=n(11151);const r={title:"Week 5",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"17th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 5"]},d=void 0,l={id:"2022/ui/updates/krishna/2022-07-17",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/ui/updates/krishna/2022-07-17.md",sourceDirName:"2022/ui/updates/krishna",slug:"/2022/ui/updates/krishna/2022-07-17",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/krishna/2022-07-17.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"Week 5",permalink:"/gsoc/docs/tags/week-5"}],version:"current",frontMatter:{title:"Week 5",author:"Krishna Mahato",author_url:"https://github.com/krishna9304",last_updated:"17th July, 2022",author_image_url:"https://avatars.githubusercontent.com/u/71918441?v=4",tags:["gsoc22","react","Week 5"]},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-11"},next:{title:"Week 6",permalink:"/gsoc/docs/2022/ui/updates/krishna/2022-07-24"}},o={},a=[{value:"Goals for the week",id:"goals-for-the-week",level:2},{value:"REST APIs Implemented -",id:"rest-apis-implemented--",level:2},{value:"<code>editUserDetails</code> :",id:"edituserdetails-",level:3},{value:"PR Link : feat(api): Added users/{id} PUT route to modify user details #2262",id:"pr-link--featapi-added-usersid-put-route-to-modify-user-details-2262",level:3},{value:"Testing the PR",id:"testing-the-pr",level:2},{value:"<code>createRestApiToken</code> and <code>getTokens</code>",id:"createrestapitoken-and-gettokens",level:2},{value:"PR Link : feat(api): added /users/tokens POST Route and /users/tokens/{type} GET Route #2266",id:"pr-link--featapi-added-userstokens-post-route-and-userstokenstype-get-route-2266",level:3},{value:"Testing the PR",id:"testing-the-pr-1",level:2},{value:"Conclusions and further plans",id:"conclusions-and-further-plans",level:2}];function c(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"goals-for-the-week",children:"Goals for the week"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Sl. No."}),(0,t.jsx)(s.th,{children:"Initial Goals"}),(0,t.jsx)(s.th,{children:"Completed"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"1."}),(0,t.jsx)(s.td,{children:"Finish the implementation of REST API for modifying user Details"}),(0,t.jsx)(s.td,{children:"Done"})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"2."}),(0,t.jsx)(s.td,{children:"Solve requested changes on existing PRs"}),(0,t.jsx)(s.td,{children:"Done"})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:"3."}),(0,t.jsx)(s.td,{children:"Finish the implementation of REST API for token related queries"}),(0,t.jsx)(s.td,{children:"Done"})]})]})]}),"\n",(0,t.jsx)(s.h2,{id:"rest-apis-implemented--",children:"REST APIs Implemented -"}),"\n",(0,t.jsxs)(s.h3,{id:"edituserdetails-",children:[(0,t.jsx)(s.code,{children:"editUserDetails"})," :"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["The API implementation of the ",(0,t.jsx)(s.code,{children:"/users/{id}"})," PUT route to modify user Details is done."]}),"\n",(0,t.jsxs)(s.li,{children:["This task included","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Creating a new PUT route in the ",(0,t.jsx)(s.code,{children:"index.php"})," file inside ",(0,t.jsx)(s.code,{children:"www/ui/api"})," directory."]}),"\n",(0,t.jsxs)(s.li,{children:["Adding a new method ",(0,t.jsx)(s.code,{children:"editUser"})," in the ",(0,t.jsx)(s.code,{children:"UserController"}),"class."]}),"\n",(0,t.jsx)(s.li,{children:"Trying to re-use the methods that are already used in the static UI."}),"\n",(0,t.jsxs)(s.li,{children:["Testing the API via any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link--featapi-added-usersid-put-route-to-modify-user-details-2262",children:["PR Link : ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2262",children:"feat(api): Added users/{id} PUT route to modify user details #2262"})]}),"\n",(0,t.jsx)(s.h2,{id:"testing-the-pr",children:"Testing the PR"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Pull the changes from the above ",(0,t.jsx)(s.strong,{children:"PR"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Use any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Provide the request body as following ----\n",(0,t.jsx)(s.img,{alt:"req-body-edit-user",src:n(12199).Z+"",width:"866",height:"978"})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["You can expect a response like this\n",(0,t.jsx)(s.img,{alt:"res-edit-user",src:n(13101).Z+"",width:"866",height:"212"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.h2,{id:"createrestapitoken-and-gettokens",children:[(0,t.jsx)(s.code,{children:"createRestApiToken"})," and ",(0,t.jsx)(s.code,{children:"getTokens"})]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["The API implementation of the ",(0,t.jsx)(s.code,{children:"/users/tokens"})," POST route for creating a REST API Token and ",(0,t.jsx)(s.code,{children:"/users/tokens/{type}"})," GET route for getting all the REST API Tokens based on type ",(0,t.jsx)(s.code,{children:"active | expired"})," is done."]}),"\n",(0,t.jsxs)(s.li,{children:["This task included","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Creating a new POST route in the ",(0,t.jsx)(s.code,{children:"index.php"})," file inside ",(0,t.jsx)(s.code,{children:"www/ui/api"})," directory for creating a REST API Token."]}),"\n",(0,t.jsxs)(s.li,{children:["Creating a new GET route in the ",(0,t.jsx)(s.code,{children:"index.php"})," file inside ",(0,t.jsx)(s.code,{children:"www/ui/api"})," directory for getting all the REST API Tokens based on type ",(0,t.jsx)(s.code,{children:"active | expired"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:["Adding new methods ",(0,t.jsx)(s.code,{children:"createRestApiToken"})," and ",(0,t.jsx)(s.code,{children:"getTokens"})," in the ",(0,t.jsx)(s.code,{children:"UserController"})," class."]}),"\n",(0,t.jsxs)(s.li,{children:["Trying to re-use the methods that are already used in the static UI from the ",(0,t.jsx)(s.code,{children:"user_edit"})," plugin."]}),"\n",(0,t.jsxs)(s.li,{children:["Testing the API via any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"pr-link--featapi-added-userstokens-post-route-and-userstokenstype-get-route-2266",children:["PR Link : ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2266",children:"feat(api): added /users/tokens POST Route and /users/tokens/{type} GET Route #2266"})]}),"\n",(0,t.jsx)(s.h2,{id:"testing-the-pr-1",children:"Testing the PR"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Pull the changes from the above ",(0,t.jsx)(s.strong,{children:"PR"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Use any API platform like ",(0,t.jsx)(s.strong,{children:"postman"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Testing ",(0,t.jsx)(s.code,{children:"/api/v1/users/tokens"})]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Provide the request body as following ----\n",(0,t.jsx)(s.img,{alt:"req-body-create-token",src:n(69010).Z+"",width:"526",height:"196"})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["You can expect a response like this\n",(0,t.jsx)(s.img,{alt:"res-create-token",src:n(59220).Z+"",width:"1998",height:"274"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Testing ",(0,t.jsx)(s.code,{children:"/api/v1/users/tokens/{type}"})]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["type = ",(0,t.jsx)(s.code,{children:"active"}),"\n",(0,t.jsx)(s.img,{alt:"res-active-tokens",src:n(9401).Z+"",width:"1010",height:"996"})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["type = ",(0,t.jsx)(s.code,{children:"expired"}),"\n",(0,t.jsx)(s.img,{alt:"res-expired-tokens",src:n(54921).Z+"",width:"1010",height:"996"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"conclusions-and-further-plans",children:"Conclusions and further plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"These PRs are currently in review and if any changes are requested, I'll be solving them in the coming week."}),"\n",(0,t.jsx)(s.li,{children:"Other than this, I'll pick up any other API implementation based on priority as suggested by the mentors."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},69010:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/reqBodyCreateToken-abce069ff9887c5bdf28527131029c25.png"},12199:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/reqBodyEditUser-5be82b54e69879a6a2850c51d8655ef8.png"},9401:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/resActiveTokens-09dff90fee37b1b2b1a65b06fc6f36c1.png"},59220:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/resCreateToken-ee5c8d6490188dc54b79331cd6999774.png"},13101:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/resEditUser-9aedf90cd3e0cbdc3718127faf20a9d1.png"},54921:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/resExpiredTokens-356d696027ab96a8020714f4ba8a6df8.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>d});var t=n(67294);const i={},r=t.createContext(i);function d(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e172f0a4.a9f60dc0.js b/assets/js/e172f0a4.a9f60dc0.js new file mode 100644 index 0000000000..351099e2fd --- /dev/null +++ b/assets/js/e172f0a4.a9f60dc0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1713],{92145:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=n(85893),t=n(11151);const r={title:"week-06",author:"Aaditya Singh"},o="Meeting 10",c={id:"2024/scheduler/updates/Discussion/2024-06-14",title:"week-06",description:"\x3c!--",source:"@site/docs/2024/scheduler/updates/Discussion/2024-06-14.md",sourceDirName:"2024/scheduler/updates/Discussion",slug:"/2024/scheduler/updates/Discussion/2024-06-14",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/scheduler/updates/Discussion/2024-06-14.md",tags:[],version:"current",frontMatter:{title:"week-06",author:"Aaditya Singh"},sidebar:"2024",previous:{title:"week-04",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31"},next:{title:"week-07",permalink:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21"}},a={},d=[{value:"Participants:",id:"participants",level:2},{value:"Discussion Topics:",id:"discussion-topics",level:2}];function l(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"meeting-10",children:"Meeting 10"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(June 14, 2024)"})}),"\n",(0,i.jsx)(s.h2,{id:"participants",children:"Participants:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"discussion-topics",children:"Discussion Topics:"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"Contributor:"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/Aaditya-Singh78",children:"Aaditya Singh"}),": Could you provide more details on the ER diagram? I need to know the specific parameters to integrate into the code."]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.strong,{children:"Mentor:"})}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Let's discuss the data within the database and the essential criteria to consider when operating the scheduler:"]}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Certain agents like delagent and software heritage must operate singularly due to their time-intensive nature, affecting users who need to run multiple agents."}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Some agents depend on external APIs with rate limits. Surpassing these limits could lead to access restrictions or complete blocks on agent processing."}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"A maintenance agent exists to support our website, focusing on dependency resolutions and performance enhancements."}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["\n",(0,i.jsx)(s.p,{children:"Ensure responsiveness is a priority\u2014analysis for users who request first should be completed first."}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>c,a:()=>o});var i=n(67294);const t={},r=i.createContext(t);function o(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e1f55863.17fef679.js b/assets/js/e1f55863.17fef679.js new file mode 100644 index 0000000000..1c44d9cf26 --- /dev/null +++ b/assets/js/e1f55863.17fef679.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[845],{16092:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=s(85893),t=s(11151);const r={title:"Week 2",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},l=void 0,o={id:"2021/buildsystem/updates/2021-06-18",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-06-18.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-06-18",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-06-18.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 2",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-11"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-06-22"}},a={},c=[{value:"Meeting 4",id:"meeting-4",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 2 Progress",id:"week-2-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 18th, 2021)"})}),"\n",(0,i.jsx)(n.p,{children:"In this fourth meeting, a lot of questions were discussed related to the existing build system and what things we have to drop or modify."}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-2-progress",children:"Week 2 Progress"}),"\n",(0,i.jsx)(n.p,{children:"This week was mainly focused on creating CMake configuration for libraries, executables and coverage."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Added the configuration for libraries and executables"}),"\n",(0,i.jsx)(n.li,{children:"Resolved parallel build problems with coverage configs"}),"\n",(0,i.jsx)(n.li,{children:"Implemented generated source configurations"}),"\n",(0,i.jsxs)(n.li,{children:["To test the current progress, follow the instructions ",(0,i.jsx)("a",{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Should I generalize the coverage build for each agent?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Coverage depends on the agent_tests and may or may not be available for all the agent. So follow the Makefiles and add the configuration as it is in them."}),"\n",(0,i.jsx)(n.li,{children:"Leave coverage for them who don't have it already in their Makefiles."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsxs)(n.strong,{children:["What are ",(0,i.jsx)(n.code,{children:"$(AGENTLIB) $(REPO) $(DB)"})," in the Makefiles?"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"They seems to be remains of previous build configuration. Until there is a problem, ignore if you can not find the definitions."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Can I refactor the directory structure of nomos and monk, it will help keep the source code generation out of source directory?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Yeah, sure. As long as it does not affects the working of the project you may refactor them to suit your needs."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"I am facing problems with due to headers included using angled brackets, can I change them to double quotes instead?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Yeah that would be okay, anyway the general practice is to add user header files using double quotes."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Using -Werror flag in regexscan causes build to fail, should I remove it?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Since ",(0,i.jsx)(n.code,{children:"regexscan"})," is not the part of default build you can ignore it."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"In scheduler source code the preprocessor macro value for FOSSDB_CONF is different from that in lib, is that correct?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"We have made some changes, please change it to the same as in lib."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Try adding the version and commit hash info."}),"\n",(0,i.jsx)(n.li,{children:"Implement writing version files for each build."}),"\n",(0,i.jsxs)(n.li,{children:["Add proper comments in the ",(0,i.jsx)(n.code,{children:"CMakeLists.txt"})," files."]}),"\n",(0,i.jsx)(n.li,{children:"Complete the coverage build configuration"}),"\n",(0,i.jsx)(n.li,{children:"Start implementing the install configurations"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>l});var i=s(67294);const t={},r=i.createContext(t);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e26a7def.482ba2a1.js b/assets/js/e26a7def.482ba2a1.js new file mode 100644 index 0000000000..3e4231b94a --- /dev/null +++ b/assets/js/e26a7def.482ba2a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4530],{76420:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=t(85893),s=t(11151);const i={title:"Week 8 and 9",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},o=void 0,l={id:"2022/ui/updates/soham/2022-08-05",title:"Week 8 and 9",description:"\x3c!--",source:"@site/docs/2022/ui/updates/soham/2022-08-05.md",sourceDirName:"2022/ui/updates/soham",slug:"/2022/ui/updates/soham/2022-08-05",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-05",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/soham/2022-08-05.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"},{label:"API",permalink:"/gsoc/docs/tags/api"}],version:"current",frontMatter:{title:"Week 8 and 9",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc22","react","API"]},sidebar:"2022",previous:{title:"Week 6 and 7",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-01"},next:{title:"Week 10",permalink:"/gsoc/docs/2022/ui/updates/soham/2022-08-08"}},r={},d=[{value:"<code>uploads/<uploadID>/licenses</code> endpoint completed",id:"uploadsuploadidlicenses-endpoint-completed",level:2},{value:"PR link - feat(api): clearing status",id:"pr-link---featapi-clearing-status",level:3},{value:"Download file using UploadID",id:"download-file-using-uploadid",level:2},{value:"PR link - feat(api): Download file using UploadID",id:"pr-link---featapi-download-file-using-uploadid",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.h2,{id:"uploadsuploadidlicenses-endpoint-completed",children:[(0,a.jsx)(n.code,{children:"uploads/<uploadID>/licenses"})," endpoint completed"]}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.em,{children:"(August 14th, 2022)"})}),"\n",(0,a.jsxs)(n.p,{children:["Working on the ",(0,a.jsx)(n.code,{children:"uploads/<uploadID>/licenses"})," endpoint to return the latest clearing decision for each and every filepath completed this week.\nUsed ",(0,a.jsx)(n.code,{children:"ItemTreeBounds"})," to get the latest clearing decisions. Rather than using the seperate SQL qureies and modifications in the DAO files created seperate functions so that they can be reused and the funcionality of the earlier funtctions in the DAO files remain the same."]}),"\n",(0,a.jsx)(n.p,{children:"Was able to return the latest clearing status for each upload ID and return it in the api response:"}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"api_res",src:t(27700).Z+"",width:"557",height:"270"})}),"\n",(0,a.jsxs)(n.p,{children:["The new function created in ",(0,a.jsx)(n.code,{children:"LicenseDao.php"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:'public function getLicensesAndTreeIdPerFileNameForAgentId(ItemTreeBounds $itemTreeBounds,\n $selectedAgentIds=null,\n $includeSubfolders=true,\n $excluding=\'\',\n $ignore=false,\n &$clearingDecisionsForLicList = array())\n {\n $uploadTreeTableName = $itemTreeBounds->getUploadTreeTableName();\n $statementName = __METHOD__ . \'.\' . $uploadTreeTableName;\n $param = array();\n\n $condition = " (ufile_mode & (1<<28)) = 0";\n if ($includeSubfolders) {\n $param[] = $itemTreeBounds->getLeft();\n $param[] = $itemTreeBounds->getRight();\n $condition .= " AND lft BETWEEN $1 AND $2";\n $statementName .= ".subfolders";\n } else {\n $param[] = $itemTreeBounds->getItemId();\n $condition .= " AND realparent = $1";\n }\n\n if (\'uploadtree_a\' == $uploadTreeTableName) {\n $param[] = $itemTreeBounds->getUploadId();\n $condition .= " AND upload_fk=$".count($param);\n }\n\n $agentSelect = "";\n if ($selectedAgentIds !== null) {\n $statementName .= ".".count($selectedAgentIds)."agents";\n $agentSelect = "WHERE agent_fk IS NULL";\n foreach ($selectedAgentIds as $selectedAgentId) {\n $param[] = $selectedAgentId;\n $agentSelect .= " OR agent_fk = $".count($param);\n }\n }\n\n $sql = "\nSELECT uploadtree_pk, ufile_name, lft, rgt, ufile_mode,\n rf_shortname, agent_fk\nFROM (SELECT\n uploadtree_pk, ufile_name,\n lft, rgt, ufile_mode, pfile_fk\n FROM $uploadTreeTableName\n WHERE $condition) AS subselect1\nLEFT JOIN (SELECT rf_shortname,pfile_fk,agent_fk\n FROM license_file, license_ref\n WHERE rf_fk = rf_pk) AS subselect2\n ON subselect1.pfile_fk = subselect2.pfile_fk\n$agentSelect\nORDER BY lft asc\n";\n\n $this->dbManager->prepare($statementName, $sql);\n $result = $this->dbManager->execute($statementName, $param);\n $licensesPerFileName = array();\n\n $row = $this->dbManager->fetchArray($result);\n $pathStack = array($row[\'ufile_name\']);\n $rgtStack = array($row[\'rgt\']);\n $lastLft = $row[\'lft\'];\n $path = implode(\'/\', $pathStack);\n $uploadTreeId = $row[\'uploadtree_pk\'];\n $this->addToLicensesAndTreeIdPerFileName($licensesPerFileName, $path, $row, $ignore, $clearingDecisionsForLicList, $uploadTreeId);\n while ($row = $this->dbManager->fetchArray($result)) {\n if (!empty($excluding) && false!==strpos("/$row[ufile_name]/", $excluding)) {\n $lastLft = $row[\'rgt\'] + 1;\n continue;\n }\n if ($row[\'lft\'] < $lastLft) {\n continue;\n }\n\n $this->updateStackState($pathStack, $rgtStack, $lastLft, $row);\n $path = implode(\'/\', $pathStack);\n $this->addToLicensesAndTreeIdPerFileName($licensesPerFileName, $path, $row, $ignore, $clearingDecisionsForLicList, $uploadTreeId);\n }\n $this->dbManager->freeResult($result);\n return array_reverse($licensesPerFileName);\n }\n'})}),"\n",(0,a.jsxs)(n.h3,{id:"pr-link---featapi-clearing-status",children:["PR link - ",(0,a.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2288",children:"feat(api): clearing status"})]}),"\n",(0,a.jsx)(n.h2,{id:"download-file-using-uploadid",children:"Download file using UploadID"}),"\n",(0,a.jsxs)(n.p,{children:["Developed an API endpoint to send the file as a response for the respective ",(0,a.jsx)(n.code,{children:"UploadId"}),". The Api sends the file with their respective mimetype and file name which can be downloaded in the frontend.",(0,a.jsx)("br",{}),"\nCurrent status of the Download API response:"]}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"api_res",src:t(72670).Z+"",width:"1827",height:"838"})}),"\n",(0,a.jsxs)(n.h3,{id:"pr-link---featapi-download-file-using-uploadid",children:["PR link - ",(0,a.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2309",children:"feat(api): Download file using UploadID"})]}),"\n",(0,a.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Implementing the Import Report functionality."}),"\n",(0,a.jsx)(n.li,{children:"Focussing on the Docs section and writing docs for the Final Evaluation."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},27700:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/api_clearing_decision-be4efb3e51aee7d6a3bb61e2714e969a.jpeg"},72670:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/download_response-1fc1fede99cfcf413d30956b7aba99e0.png"},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>o});var a=t(67294);const s={},i=a.createContext(s);function o(e){const n=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e2791b5f.e4f7642f.js b/assets/js/e2791b5f.e4f7642f.js new file mode 100644 index 0000000000..789d219911 --- /dev/null +++ b/assets/js/e2791b5f.e4f7642f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6220],{13236:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>r,default:()=>x,frontMatter:()=>t,metadata:()=>d,toc:()=>h});var i=n(85893),c=n(11151);const t={title:"Week 2",author:"Abdelrahman Jamal"},r="Meeting 2",d={id:"2024/license-detection/updates/2024-06-06",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-06-06.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-06-06",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-06-06.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/license-detection/updates/2024-05-30"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-13"}},l={},h=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Code Implementation Details",id:"code-implementation-details",level:3},{value:"Key Functions:",id:"key-functions",level:3},{value:"Results Showcase",id:"results-showcase",level:3},{value:"Key Findings",id:"key-findings",level:3},{value:"Next Steps",id:"next-steps",level:2}];function o(s){const e={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.a)(),...s.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.em,{children:"(June 6,2024)"})}),"\n",(0,i.jsx)(e.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,i.jsx)(e.h3,{id:"code-implementation-details",children:"Code Implementation Details"}),"\n",(0,i.jsx)(e.p,{children:"Completed core functionality for automated LLM comparison on datasets. Now able to efficiently process and compare LLM outputs across different models."}),"\n",(0,i.jsx)(e.h3,{id:"key-functions",children:"Key Functions:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.code,{children:"process_dataset"}),": This function is the heart of the LLM comparison process. It:"]}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsxs)(e.li,{children:["Iterates through the dataset (in this case, ",(0,i.jsx)(e.code,{children:"pytorch-main.csv"}),")."]}),"\n",(0,i.jsx)(e.li,{children:"Sends each data point (license text) to the specified LLM API."}),"\n",(0,i.jsx)(e.li,{children:"Handles API requests and responses, including retries for robustness."}),"\n",(0,i.jsxs)(e.li,{children:["Logs progress at specified intervals (",(0,i.jsx)(e.code,{children:"log_every=5"})," means every 5 rows)"]}),"\n",(0,i.jsxs)(e.li,{children:["We can easily swap the ",(0,i.jsx)(e.code,{children:"model=Models.MISTRAL_7b"})," in the process_dataset function call with other models from the Models enum to run the same experiment on a different model."]}),"\n"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{children:"client = LLMClient()\ndf = pd.read_csv('extras/pytorch-main.csv')\nsampled_data_mistral_7b = client.process_dataset(df, df_path='pytorch-main.csv',\n model=Models.MISTRAL_7b,\n prompt_function=prompt_function,\n parser=license_parser,\n extra_file_path='extras',\n log_every=5,\n )\n\n"})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.code,{children:"prompt_function"}),": This function creates the prompt template instructing the LLM on how to identify and extract license information."]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{children:'def prompt_function(text):\n return f"""\n [Task]\n Carefully analyze the provided text to determine if it contains any software licenses.\n\n [Guidelines]\n 1. **License Identification:** If a license is found, clearly state its name and its corresponding SPDX identifier (e.g., MIT License, SPDX-License-Identifier: MIT).\n 2. **Evidence Extraction:** For each identified license, extract the specific text snippet(s) from the provided text that confirm its presence. Include surrounding context if it helps clarify the license\'s applicability.\n 3. **No License Scenario:** If no license is detected in the text, explicitly state "No software license found."\n 4. **Response Format:** Provide the results in the following format:\n * **Licenses = [list of identified licenses]** \n * **SPDX-IDs = [list of corresponding SPDX identifiers]**\n\n If no licenses are found, both lists should be empty:\n\n * **Licenses = []**\n * **SPDX-IDs = []** \n\n [Text]\n {text}\n """\n'})}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\n",(0,i.jsx)(e.p,{children:"Log Output Example:"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{children:"2024-06-06 12:37:58.034 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 0\n2024-06-06 12:38:07.307 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 5\n2024-06-06 12:38:14.613 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 10\n2024-06-06 12:38:42.489 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 15\n2024-06-06 12:38:50.538 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 20\n2024-06-06 12:39:13.782 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 25\n2024-06-06 12:39:23.271 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 30\n"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"results-showcase",children:"Results Showcase"}),"\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:"scan results_x"}),(0,i.jsx)(e.th,{children:"llama_response"}),(0,i.jsx)(e.th,{children:"mistral_response"}),(0,i.jsx)(e.th,{children:"gemma_response"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"0BSD BSD"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Zero Clause BSD (0BSD)]"}),"\\n**SPD..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Zero Clause BSD (0BSD)]"}),"\\n**SPD..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [ 'Zero Clause BSD (0BSD)' ]"}),"\\n*..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"Apache-2.0"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License, Version 2.0]"}),"\\n..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License, Version 2.0]"}),"\\n..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License, Version 2.0]"}),"\\n..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"Apache-2.0"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache-2.0]"}),"\\n**SPDX-IDs = [Apa..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache-2.0]"}),"\\n**SPDX-IDs = [Apa..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache-2.0]"}),"\\n**SPDX-IDs = [Apa..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"Apache-2.0 BSD-3-Clause BSL-1.0"}),(0,i.jsx)(e.td,{children:"**Licenses = [BSD License, Apache License, Boo..."}),(0,i.jsx)(e.td,{children:"**Licenses = [BSD License, Apache License, Boo..."}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses:"}),"\\n\\n- Licenses = [Early BSD Licen..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"Apache-possibility"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License]"}),"\\n**SPDX-IDs = ..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License]"}),"\\n**SPDX-IDs = ..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License]"}),"\\n**SPDX-IDs = ..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n\\n**SPDX-IDs = [..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n\\n**SPDX-IDs = [..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\n**Expl..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n\\n**SPDX-IDs = [..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-3-Clause"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License 2.0]"}),"\\n**SPDX-ID..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License 2.0]"}),"\\n**SPDX-ID..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n\\n**SPDX-IDs = [..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-3-Clause"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License 2.0]"}),"\\n**SPDX-ID..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License 2.0]"}),"\\n**SPDX-ID..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\n**Conc..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-3-Clause"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License 2.0]"}),"\\n**SPDX-ID..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [Apache License 2.0]"}),"\\n**SPDX-ID..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [SP..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-possibility"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [MI..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [MI..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses:"}),"\\n\\n- ",(0,i.jsx)(e.strong,{children:"Licenses:"})," [MIT License]..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-style"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [SP..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [SP..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n\\n**SPDX-IDs = [..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-style"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-style"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [BS..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n\\n**SPDX-I..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-style"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BSD-style"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD-style license]"}),"\\n**SPDX-IDs..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [BSD License]"}),"\\n**SPDX-IDs = [SP..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"MIT"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [SP..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [SP..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses:"}),"\\n\\n```\\n- MIT License\\n- SPDX-Li..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"MIT"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [MI..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [MI..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [SP..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"MIT"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [MI..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = [MIT License]"}),"\\n**SPDX-IDs = [MI..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses:"}),"\\n\\n- MIT License\\n\\n**SPDX-IDs:*..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"MIT"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\n**Note..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"NCSA"}),(0,i.jsx)(e.td,{children:"**Licenses = [University of Illinois Open Sour..."}),(0,i.jsx)(e.td,{children:"**Licenses = [University of Illinois Open Sour..."}),(0,i.jsx)(e.td,{children:"**Licenses = [University of Illinois Open Sour..."})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"No_license_found"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\n**Expl..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"No_license_found"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:'Licenses = ["MIT License"]'}),"\\n**SPDX-IDs = [..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:'Licenses = ["MIT License"]'}),"\\n**SPDX-IDs = [..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\n**No s..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"No_license_found"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"No_license_found"}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\nNo sof..."]}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:"Licenses = []"}),"\\n",(0,i.jsx)(e.strong,{children:"SPDX-IDs = []"}),"\\n\\n**No s..."]})]})]})]}),"\n",(0,i.jsx)(e.h3,{id:"key-findings",children:"Key Findings"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Decent Accuracy but Challenges with Complexity: LLMs demonstrated reasonably good accuracy in identifying single, well-known licenses. However, they encountered difficulties when dealing with files containing multiple licenses or licenses with variations."}),"\n",(0,i.jsx)(e.li,{children:"Consistent LLM Errors: We observed similar mistakes across different LLMs."}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Anupam suggested utilizing semantic search to pinpoint license-relevant code snippets and match them to potential licenses based on similarity scores."}),"\n"]})]})}function x(s={}){const{wrapper:e}={...(0,c.a)(),...s.components};return e?(0,i.jsx)(e,{...s,children:(0,i.jsx)(o,{...s})}):o(s)}},11151:(s,e,n)=>{n.d(e,{Z:()=>d,a:()=>r});var i=n(67294);const c={},t=i.createContext(c);function r(s){const e=i.useContext(t);return i.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function d(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(c):s.components||c:r(s.components),i.createElement(t.Provider,{value:e},s.children)}}}]); \ No newline at end of file diff --git a/assets/js/e2d7187d.eeaf9a78.js b/assets/js/e2d7187d.eeaf9a78.js new file mode 100644 index 0000000000..ad49298fb7 --- /dev/null +++ b/assets/js/e2d7187d.eeaf9a78.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8200],{59810:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>a});var n=t(85893),i=t(11151);const l={title:"Week 10",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},c=void 0,o={id:"2021/buildsystem/updates/2021-08-13",title:"Week 10",description:"\x3c!--",source:"@site/docs/2021/buildsystem/updates/2021-08-13.md",sourceDirName:"2021/buildsystem/updates",slug:"/2021/buildsystem/updates/2021-08-13",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-08-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/buildsystem/updates/2021-08-13.md",tags:[{label:"gsoc21",permalink:"/gsoc/docs/tags/gsoc-21"},{label:"buildsystem",permalink:"/gsoc/docs/tags/buildsystem"},{label:"ci/cd",permalink:"/gsoc/docs/tags/ci-cd"},{label:"cmake",permalink:"/gsoc/docs/tags/cmake"}],version:"current",frontMatter:{title:"Week 10",author:"Avinal Kumar",author_url:"https://github.com/avinal",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["gsoc21","buildsystem","ci/cd","cmake"]},sidebar:"2021",previous:{title:"Week 9",permalink:"/gsoc/docs/2021/buildsystem/updates/2021-08-06"},next:{title:"Building FOSSology",permalink:"/gsoc/docs/2021/buildsystem/build"}},r={},a=[{value:"Meeting 14",id:"meeting-14",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 9 Progress",id:"week-9-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"meeting-14",children:"Meeting 14"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(August 14th, 2021)"})}),"\n",(0,n.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"week-9-progress",children:"Week 9 Progress"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Testing configuration for all agents added"}),"\n",(0,n.jsx)(s.li,{children:"GitHub Actions Configuration added"}),"\n",(0,n.jsx)(s.li,{children:"Fixed and refactored most of the tests"}),"\n",(0,n.jsxs)(s.li,{children:["Raised a pull request for all the works till now. ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2075",children:"#2075"})]}),"\n",(0,n.jsxs)(s.li,{children:["To test the current progress, follow the instructions ",(0,n.jsx)(s.a,{href:"https://github.com/avinal/FOSSologywiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"I suspect that the Ojo regression test's expected data file is outdated"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Michael said that on their internal Jenkins CI, these tests are not being run currently, so this might be possible that the file is outdated."}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"Since some of the tests need Makefile to install while testing, CMake generated Makefiles and test Makefiles are conflicting, and hence we are forced to use Ninja for testing. What can I do about it?"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Michael suggested using ",(0,n.jsx)(s.code,{children:"--file=filename"})," flag with the make command and change the name of the test Makefile to something else. This will solve the problem."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"Mimetype is detecting executables as shared lib, is that expected or needs to be fixed?"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Mimetype internally depends on the ",(0,n.jsx)(s.em,{children:"file"})," command to get the mime-type. If the output of the ",(0,n.jsx)(s.em,{children:"file"})," command is also the same then it is okay."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"What is"})," ",(0,n.jsx)(s.code,{children:"folderlist"})," ",(0,n.jsxs)(s.strong,{children:["in ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/blob/master/src/delagent/agent_tests/Functional/ft_cliDelagentTest.php#L126",children:"https://github.com/fossology/fossology/blob/master/src/delagent/agent_tests/Functional/ft_cliDelagentTest.php#L126"})," ?"]})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"folderlist"})," is a view. Use ",(0,n.jsx)(s.code,{children:"createViews()"})," function."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"Suggestions/Changes from Gaurav for fixing phpunit tests."})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Please note the changes in ",(0,n.jsx)(s.code,{children:"setUp()"})," function in ",(0,n.jsx)(s.code,{children:"src/lib/php/tests/test_common_license_file.php"})]}),"\n",(0,n.jsxs)(s.li,{children:["The test database name is given to the constructor of TestPgDb and can be anything as it gets deleted in ",(0,n.jsx)(s.code,{children:"teardown()"})]}),"\n",(0,n.jsxs)(s.li,{children:["The ",(0,n.jsx)(s.code,{children:"dbmanager"})," is provided by the object, no need to initialize global ",(0,n.jsx)(s.code,{children:"PG_CONN"})," (it will be exposed by the library in case some of the functions need it)."]}),"\n",(0,n.jsxs)(s.li,{children:["All the tables needs to be explicitly mentioned to ",(0,n.jsx)(s.code,{children:"createPlainTables()"})," and their corresponding ",(0,n.jsx)(s.code,{children:"createSequences()"})," (you can get them using ",(0,n.jsx)(s.code,{children:"\\d tablename"})," from existing DB easily. Then call the ",(0,n.jsx)(s.code,{children:"alterTables()"})," to update the sequence. (I am not sure if ",(0,n.jsx)(s.code,{children:"createConstraints()"})," is required at all, try to remove)"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"tearDown()"})," is pretty easy, just need to call ",(0,n.jsx)(s.code,{children:"fullDestruct()"}),". For debugging, you can add ",(0,n.jsx)(s.code,{children:"exit(-1);"})," after any line you as suspecting, connect to DB and checkout the database, select/inspect tables."]}),"\n",(0,n.jsxs)(s.li,{children:["There is also ",(0,n.jsx)(s.code,{children:"TestInstaller"})," class in case any of test case needs the whole mods-enabled with fossology.conf, VERSION, etc. Please check ",(0,n.jsx)(s.code,{children:"src/cli/tests/test_fo_copyright_list.php"})," for quick reference."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Fix the remaining tests."}),"\n",(0,n.jsx)(s.li,{children:"Add week 8, 9 reports."}),"\n",(0,n.jsx)(s.li,{children:"Add Final Evaluation Report."}),"\n",(0,n.jsx)(s.li,{children:"Complete Final Evaluation."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>c});var n=t(67294);const i={},l=n.createContext(i);function c(e){const s=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),n.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e31d5c21.1504a0ad.js b/assets/js/e31d5c21.1504a0ad.js new file mode 100644 index 0000000000..f9dfa564a2 --- /dev/null +++ b/assets/js/e31d5c21.1504a0ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3069],{44795:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>n,default:()=>m,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var i=t(85893),o=t(11151);const a={title:"Week 5",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},n=void 0,r={id:"2022/ui/updates/samuel/2022-07-21",title:"Week 5",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-07-21.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-07-21",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-21",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-07-21.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 5",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 4",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-14"},next:{title:"Week 6 & 7",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-02"}},u={},c=[{value:"Activities",id:"activities",level:2},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3},{value:"REMOVE GROUP MEMBER Api",id:"remove-group-member-api",level:4}];function l(e){const s={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsx)(s.li,{children:"ADDING TESTS ON APIs ON THE QUEUE."}),"\n",(0,i.jsxs)(s.li,{children:["ADDED NEW API TO REMOVE A MEMBER FROM A PARTICULAR GROUP.\n(",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2269",children:"https://github.com/fossology/fossology/pull/2269"}),")"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,i.jsx)(s.h4,{id:"remove-group-member-api",children:"REMOVE GROUP MEMBER Api"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"remove-user-pic-1",src:t(8588).Z+"",width:"923",height:"780"})}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"remove-user-pic-2",src:t(12144).Z+"",width:"930",height:"782"})})]})}function m(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8588:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/remove_user-4f44e5f63e087a1d84f00d04d5d18386.png"},12144:(e,s,t)=>{t.d(s,{Z:()=>i});const i=t.p+"assets/images/remove_user_2-a07163b8e9b55f8207c7ab6112537ba0.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>r,a:()=>n});var i=t(67294);const o={},a=i.createContext(o);function n(e){const s=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),i.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e40930a3.3eaa6030.js b/assets/js/e40930a3.3eaa6030.js new file mode 100644 index 0000000000..c9260cf62b --- /dev/null +++ b/assets/js/e40930a3.3eaa6030.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5669],{98813:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=s(85893),n=s(11151);const r={title:"Week 3",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},o=void 0,a={id:"2022/ui/updates/samuel/2022-07-07",title:"Week 3",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-07-07.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-07-07",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-07-07.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 3",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 2",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-06-30"},next:{title:"Week 4",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-14"}},u={},l=[{value:"Activities",id:"activities",level:2},{value:"SCREENSHOTS",id:"screenshots",level:3},{value:"1. Get group members API",id:"1-get-group-members-api",level:3},{value:"Contributions",id:"contributions",level:2},{value:"Next week's Contributions",id:"next-weeks-contributions",level:2}];function c(e){const t={a:"a",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Implemented a new API for getting group members along with their permissions."}),"\n",(0,i.jsx)(t.li,{children:"Improved The API for delete the group."}),"\n",(0,i.jsx)(t.li,{children:"Improved the API to check if a user has a deletable group."}),"\n",(0,i.jsx)(t.li,{children:"Created a new pull request for getting group members."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"screenshots",children:"SCREENSHOTS"}),"\n",(0,i.jsx)(t.h3,{id:"1-get-group-members-api",children:"1. Get group members API"}),"\n",(0,i.jsxs)(t.p,{children:["i. Let's choose the last group to be deleted.\n",(0,i.jsx)(t.img,{alt:"get-group-members-pic-1",src:s(69692).Z+"",width:"1920",height:"1080"})]}),"\n",(0,i.jsx)(t.p,{children:"ii. Pass the id of the group you want to view members for in the params."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"get-group-members-pic-2",src:s(38169).Z+"",width:"1006",height:"808"})}),"\n",(0,i.jsx)(t.h2,{id:"contributions",children:"Contributions"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2251",children:"feat(API): list group members with their roles"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"next-weeks-contributions",children:"Next week's Contributions"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"The API to change the user permission in a specific group."}),"\n",(0,i.jsx)(t.li,{children:"Testing all my APIs in queue for testing."}),"\n",(0,i.jsx)(t.li,{children:"Adding a new UI page to delete a particular group."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},69692:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/get_group_members1-42d8ffb6086d126bc813172f9732c4a1.png"},38169:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/get_group_members2-c9b3fcac25bf1d0a38b1e8db7285cb9d.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>o});var i=s(67294);const n={},r=i.createContext(n);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e5846d8e.f5af96e8.js b/assets/js/e5846d8e.f5af96e8.js new file mode 100644 index 0000000000..4c93ac7df0 --- /dev/null +++ b/assets/js/e5846d8e.f5af96e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2515],{35438:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>l,toc:()=>a});var i=s(85893),t=s(11151);const c={title:"First Evaluation",author:"Sarita"},o=void 0,l={id:"2021/scancode/first_evaluation",title:"First Evaluation",description:"\x3c!--",source:"@site/docs/2021/scancode/first_evaluation.md",sourceDirName:"2021/scancode",slug:"/2021/scancode/first_evaluation",permalink:"/gsoc/docs/2021/scancode/first_evaluation",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/first_evaluation.md",tags:[],version:"current",frontMatter:{title:"First Evaluation",author:"Sarita"},sidebar:"2021",previous:{title:"Copyright UI",permalink:"/gsoc/docs/2021/scancode/copyright"},next:{title:"Introduction",permalink:"/gsoc/docs/2021/ui/"}},d={},a=[{value:"First Evaluation Report",id:"first-evaluation-report",level:2},{value:"Updates",id:"updates",level:3},{value:"How to test",id:"how-to-test",level:3},{value:"Work in progress",id:"work-in-progress",level:3},{value:"Postponed tasks",id:"postponed-tasks",level:3}];function r(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"first-evaluation-report",children:"First Evaluation Report"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-07-14"})}),"\n",(0,i.jsx)(n.h3,{id:"updates",children:"Updates"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"List of task completed"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Created a jinja template for ScanCode required output"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Integrated ScanCode for license scanning"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Display name of license with percentage matched"}),"\n",(0,i.jsxs)(n.li,{children:["Insert new license to ",(0,i.jsx)(n.code,{children:"license_ref"})," table"]}),"\n",(0,i.jsx)(n.li,{children:"Highlight matched text for license scanned"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:s(30171).Z+"",width:"1854",height:"1048"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Integrated ScanCode for Copyright and Author"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Created following tables in the database","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"scancode_copyright"}),"\n",(0,i.jsx)(n.li,{children:"scancode_author"}),"\n",(0,i.jsx)(n.li,{children:"scancode_copyright_event"}),"\n",(0,i.jsx)(n.li,{children:"scancode_author_event"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Able to insert scancode scanned output in these tables."}),"\n",(0,i.jsx)(n.li,{children:"Added a tab named ScanCode Findings in copyright browser and modified Copyright findings by Fossology to FOSSology Findings."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image",src:s(39259).Z+"",width:"1854",height:"1048"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"List of commits"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/e450950e6e39b1b3647c79c07737d3877e419cc6",children:"feat(scancode): Initial commit "}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"This commit will add makefile, configure, and dependencies to run scancode toolkit."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/bd38dd70e092a8700547883e497f7861e3cc48b8",children:"feat(scancode/agent): Add scancode agent"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add scancode agent to scan a file"}),"\n",(0,i.jsx)(n.li,{children:"Add name and percentage of licenses to fossology database."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/af0dce1adb49db0497a951c9616ae7cace9efca4",children:"feat(scancode/ui): Add scancode agent UI"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Add UI for license scanning by scancode-toolkit."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/0e461522b0d2d795d263cb7455c1d4b95c58ed8a",children:"style(scancode): Update scancode agent"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Update scancode key with spdx-key, datatype of percentage license match from float(returned by scancode) to int(fossology need)."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/b9ad6d8ed488bf0a932734e7d331247b8e7b4ab1",children:"feat(scancode/highlight): Add license highlight"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Highlight license relevant text for licenses scanned by scancode-toolkit"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/3a16fd2638967a7dc2d39e320cca2830268db9a7",children:"feat(scancode): Add text_url and license full name "}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"This commit will add text_url and license full name for new licenses inserted into FOSSology database."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/ed83a98db32d2abcd0508af9e2650771a27ed615",children:"feat(scancode): Add copyright & author info in DB"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Removed UI glitch from license highlighting."}),"\n",(0,i.jsx)(n.li,{children:"This glitch was due to not inserting only unique entries in the license_file and hightlight tables."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/itssingh/fossology/commit/c823ecf7a5d59fbfe243281c41598ea161e04435",children:["feat(scancode)",":Create"," copyright and author table"]})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsxs)(n.a,{href:"https://github.com/itssingh/fossology/commit/f7d0053fb78539875aac04b62345f9fd9863e9da",children:["feat(scancode/copyrightUI)",":Add"," scancode tab"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Added a tab named ScanCode Findings in copyright browser and modified Copyright findings by Fossology to FOSSology Findings."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsxs)(n.a,{href:"https://github.com/itssingh/fossology/commit/a88cca652b25aa0705c58de2d451078ef14ce08a",children:["feat(scancode)",":Add"," event table, comments, license"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Create tables for scancode_copyright_event and scancode_author_event"}),"\n",(0,i.jsx)(n.li,{children:"Add copyright and license text in source code"}),"\n",(0,i.jsx)(n.li,{children:"Add comments for source code"}),"\n",(0,i.jsx)(n.li,{children:"Merge LicenseMatch and Match class"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"how-to-test",children:"How to test"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Fetch ",(0,i.jsx)(n.a,{href:"https://github.com/itssingh/fossology/tree/feat/newagent%2Fscancode-toolkit",children:"feat/newagent/scancode-toolkit"})," branch to your local."]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/wiki/Install-from-Source",children:"Install Fossology from source"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note"})," Incase facing problem in scancode installation, Install scancode manually with pip(checkout ",(0,i.jsx)(n.a,{href:"installation",children:"installation page"})," for scancode)."]}),"\n",(0,i.jsx)(n.h3,{id:"work-in-progress",children:"Work in progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Adding scancode copyright to UI"}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nexB/scancode-toolkit/pull/2539",children:"Add emails and urls to HTML output"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"postponed-tasks",children:"Postponed tasks"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Writing Tests for license integration."}),"\n",(0,i.jsxs)(n.li,{children:["Create a ScanCode plugin to extract license-text.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Will do after integrating scancode copyright/author."}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},30171:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/license_scanning-0ca53e1266f50011b5dc5cb1296a6733.png"},39259:(e,n,s)=>{s.d(n,{Z:()=>i});const i=s.p+"assets/images/scan_copy_browser-d48548e97a3d3cbcf763a218c5e50652.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>o});var i=s(67294);const t={},c=i.createContext(t);function o(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e5add6da.bdb7ff98.js b/assets/js/e5add6da.bdb7ff98.js new file mode 100644 index 0000000000..a30bd3a31f --- /dev/null +++ b/assets/js/e5add6da.bdb7ff98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8436],{13712:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var n=t(85893),i=t(11151);const r={title:"Week 2",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},o="Week 3 meeting and activities",a={id:"2024/rest/updates/valens/2024-06-13",title:"Week 2",description:"\x3c!--",source:"@site/docs/2024/rest/updates/valens/2024-06-13.md",sourceDirName:"2024/rest/updates/valens",slug:"/2024/rest/updates/valens/2024-06-13",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/valens/2024-06-13.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 2",author:"Valens Niyonsenga",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 1",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-05-30"},next:{title:"Week 3",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-06-20"}},l={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Activities:",id:"activities",level:2}];function c(e){const s={a:"a",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"week-3-meeting-and-activities",children:"Week 3 meeting and activities"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"(June 13,2024)"})}),"\n",(0,n.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["I and my colleague ",(0,n.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})," provided updates on the progress of the project."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"activities",children:"Activities:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Added more unit test cases for upload, folder, group and license APIs"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Took a review on code for current test cases, improved some of them and added more test cases."}),"\n",(0,n.jsxs)(s.li,{children:["Added more tests for different methods that were not yet tested.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2767",children:"test(api): Added more unit test cases for upload, folder license and group APIs."})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>o});var n=t(67294);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6208298.e2d1389b.js b/assets/js/e6208298.e2d1389b.js new file mode 100644 index 0000000000..b7eb49af73 --- /dev/null +++ b/assets/js/e6208298.e2d1389b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[41],{41654:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>d,metadata:()=>l,toc:()=>a});var s=i(85893),t=i(11151);const d={title:"Week 6",author:"Omar AbdelSamea"},r="Coding Week 6",l={id:"2021/microservice/updates/2021-07-13",title:"Week 6",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-07-13.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-07-13",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-13",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-07-13.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 5",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-06"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-20"}},c={},a=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Meeting 1",id:"meeting-1",level:2},{value:"Organizer",id:"organizer-1",level:3},{value:"Attendees",id:"attendees-1",level:3},{value:"Organizer",id:"organizer-2",level:3},{value:"Attendees",id:"attendees-2",level:3},{value:"Outcomes",id:"outcomes-1",level:3},{value:"Migrating configurations from conf files to etcd",id:"migrating-configurations-from-conf-files-to-etcd",level:2},{value:"End of the week result",id:"end-of-the-week-result",level:2},{value:"Diagrams and screenshots",id:"diagrams-and-screenshots",level:2},{value:"Interface between k8s, scheduler and etcd.",id:"interface-between-k8s-scheduler-and-etcd",level:3},{value:"First scanned file using microservice architecture",id:"first-scanned-file-using-microservice-architecture",level:3}];function o(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-6",children:"Coding Week 6"}),"\n",(0,s.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,s.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Shaheem Azmal"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev Maduri"}),"\n",(0,s.jsx)(n.li,{children:"Klaus Gmeinwieser"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Discussed the issue of having agents conf seperating between containers and the idle solution would be to add all agents conf to a database."}),"\n",(0,s.jsx)(n.li,{children:"for database system discussed two options etcd and reddis."}),"\n",(0,s.jsx)(n.li,{children:"Discussed how etcd should be used (seperate high availblity cluster vs deployment) and the discision was using a deployment as the seperate cluster for etcd only will be an overkill"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.h3,{id:"organizer-1",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,s.jsx)(n.h3,{id:"organizer-2",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees-2",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"outcomes-1",children:"Outcomes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Made a small demo for working FOSSology installation applied with some hacks (agents conf and web UI)"}),"\n",(0,s.jsx)(n.li,{children:"Presented manifest of etcd (deployment, service and pvc)."}),"\n",(0,s.jsx)(n.li,{children:"Presented a concept of how etcd will be used inside scheduler code."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"migrating-configurations-from-conf-files-to-etcd",children:"Migrating configurations from conf files to etcd"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"For microservice architecture each agent has it's own conf file inside it's pod."}),"\n",(0,s.jsx)(n.li,{children:"FOSSology hosts needs to be hardcoded before deployment."}),"\n",(0,s.jsxs)(n.li,{children:["To solve this all conf files will be added to a key value pair database. The selected db system is ",(0,s.jsx)(n.a,{href:"https://etcd.io/",children:"etcd"})]}),"\n",(0,s.jsx)(n.li,{children:"for each new agent added, it'll interface with etcd using RESTful API. The agent will open it's conf file and start making proper PUT request to add configuration in etcd and the agent will add the host details."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"end-of-the-week-result",children:"End of the week result"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Succesfully scaned files using copyright and nomos (some hacks are applied to get it working)"}),"\n",(0,s.jsx)(n.li,{children:"Compared etcd vs redis and at the end etcd will be used"}),"\n",(0,s.jsxs)(n.li,{children:["Started migrating Hosts part from FOSSology conf to etcd by modfying ",(0,s.jsx)(n.code,{children:"scheduler_foss_config"})," in ",(0,s.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/src/scheduler/agent/scheduler.c#L971",children:"scheduler"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"diagrams-and-screenshots",children:"Diagrams and screenshots"}),"\n",(0,s.jsx)(n.h3,{id:"interface-between-k8s-scheduler-and-etcd",children:"Interface between k8s, scheduler and etcd."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image",src:i(73329).Z+"",width:"647",height:"472"})}),"\n",(0,s.jsx)(n.h3,{id:"first-scanned-file-using-microservice-architecture",children:"First scanned file using microservice architecture"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image",src:i(46173).Z+"",width:"1359",height:"230"})})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},73329:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277-990f220295cc7f5b9fa9a6947f75105a.png"},46173:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/128032535-c5941727-5ba3-492f-9662-a566ac4c350b-3e2ac3344c85416166b2e473c94f240d.png"},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var s=i(67294);const t={},d=s.createContext(t);function r(e){const n=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e790ab33.b7d5ac93.js b/assets/js/e790ab33.b7d5ac93.js new file mode 100644 index 0000000000..48bfe785b6 --- /dev/null +++ b/assets/js/e790ab33.b7d5ac93.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4749],{36181:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var s=n(85893),i=n(11151);const o={title:"Week8",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},r=void 0,c={id:"2022/project/updates/2022-07-28",title:"Week8",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-07-28.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-07-28",permalink:"/gsoc/docs/2022/project/updates/2022-07-28",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-07-28.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week8",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week7",permalink:"/gsoc/docs/2022/project/updates/2022-07-21"},next:{title:"Week9",permalink:"/gsoc/docs/2022/project/updates/2022-08-04"}},a={},l=[{value:"Meeting 9",id:"meeting-9",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-9",children:"Meeting 9"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(July 28th, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Katharina Ettinger"}),"\n",(0,s.jsx)(t.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(t.li,{children:"Kaushlendra Pratap"}),"\n",(0,s.jsx)(t.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(t.li,{children:"Ayush Bhardwa"}),"\n",(0,s.jsx)(t.li,{children:"Shruti Agarwal"}),"\n",(0,s.jsx)(t.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(t.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:"I modify the project related pages text contents. This is not a big progress. But I am studying the code about handling folders. (Which is expected to reuse in project handling)"}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I will try to implement the function of upload a file to a certain project in the next week."}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>r});var s=n(67294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e8009bb7.9d6b1369.js b/assets/js/e8009bb7.9d6b1369.js new file mode 100644 index 0000000000..9034972905 --- /dev/null +++ b/assets/js/e8009bb7.9d6b1369.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9798],{91757:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>l});var s=n(85893),o=n(11151);const r={title:"Week7",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},c=void 0,i={id:"2022/project/updates/2022-07-21",title:"Week7",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-07-21.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-07-21",permalink:"/gsoc/docs/2022/project/updates/2022-07-21",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-07-21.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week7",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week6",permalink:"/gsoc/docs/2022/project/updates/2022-07-14"},next:{title:"Week8",permalink:"/gsoc/docs/2022/project/updates/2022-07-28"}},a={},l=[{value:"Meeting 8",id:"meeting-8",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-8",children:"Meeting 8"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(July 21st, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(t.li,{children:"Shaheem Azmal M MD"}),"\n",(0,s.jsx)(t.li,{children:"Sushant Kumar"}),"\n",(0,s.jsx)(t.li,{children:"Rohit Pandey"}),"\n",(0,s.jsx)(t.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:"I was absent from this meeting due to my mother was ill."}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Absent"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>c});var s=n(67294);const o={},r=s.createContext(o);function c(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e81b33ec.7e3f7375.js b/assets/js/e81b33ec.7e3f7375.js new file mode 100644 index 0000000000..e7bfe15a5e --- /dev/null +++ b/assets/js/e81b33ec.7e3f7375.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8201],{84240:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 5","permalink":"/gsoc/docs/tags/week-5","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-07-17","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-17"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/e89c0067.fc45d59a.js b/assets/js/e89c0067.fc45d59a.js new file mode 100644 index 0000000000..8e4111e53b --- /dev/null +++ b/assets/js/e89c0067.fc45d59a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7839],{92514:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>a});var i=s(85893),t=s(11151);const l={title:"Community Bonding",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},r=void 0,o={id:"2022/ui/updates/samuel/2022-06-02",title:"Community Bonding",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-06-02.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-06-02",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-06-02",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-06-02.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Community Bonding",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/ui/updates/samuel/2021-06-24"},next:{title:"Week 2",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-06-30"}},c={},a=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"My progress in community bonding",id:"my-progress-in-community-bonding",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Discussions",id:"discussions-1",level:3},{value:"Progress",id:"progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function d(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 2nd, 2022)"})}),"\n",(0,i.jsx)(n.p,{children:"Some title."}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Ayush Kumar"}),"\n",(0,i.jsx)(n.li,{children:"Katharina"}),"\n",(0,i.jsx)(n.li,{children:"Michael"}),"\n",(0,i.jsx)(n.li,{children:"Nicolas"}),"\n",(0,i.jsx)(n.li,{children:"Anupam"}),"\n",(0,i.jsx)(n.li,{children:"Gaurav"}),"\n",(0,i.jsx)(n.li,{children:"Shaheem"}),"\n",(0,i.jsx)(n.li,{children:"Kaushalendra"}),"\n",(0,i.jsx)(n.li,{children:"Ayush"}),"\n",(0,i.jsx)(n.li,{children:"Shruthi"}),"\n",(0,i.jsx)(n.li,{children:"Avinal"}),"\n",(0,i.jsx)(n.li,{children:"Sushant Kumar"}),"\n",(0,i.jsx)(n.li,{children:"Feng Wenhan"}),"\n",(0,i.jsx)(n.li,{children:"Rohit Pandey"}),"\n",(0,i.jsx)(n.li,{children:"Thanvi Lahari Pendyala"}),"\n",(0,i.jsx)(n.li,{children:"Krishna Mahato"}),"\n",(0,i.jsx)(n.li,{children:"Soham Banerjee"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Getting more introduction about the project from the mentors."}),"\n",(0,i.jsx)(n.li,{children:"Discussion about the weekly meetings schedule."}),"\n",(0,i.jsx)(n.li,{children:"Weekly progress report from each contributor."}),"\n",(0,i.jsx)(n.li,{children:"How to use the weekly updates reporting tool."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"my-progress-in-community-bonding",children:"My progress in community bonding"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Project setup done."}),"\n",(0,i.jsxs)(n.li,{children:["Understood the frontend-structure ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI",children:"FOSSOlogyUI"})]}),"\n",(0,i.jsxs)(n.li,{children:["Understood the backend-structure ",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology",children:"Fossology"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I am looking forward to capture and report more issues."}),"\n",(0,i.jsx)(n.li,{children:"Looking forward to start resolving the already found UI issues."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"(June 9th, 2022)"})}),"\n",(0,i.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Progress report from every contributor."}),"\n",(0,i.jsx)(n.li,{children:"Discussion about the challenges faced in the week."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"progress",children:"Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Updating the security dependency issues."}),"\n",(0,i.jsx)(n.li,{children:"Looking on what's missing and how to start contributing on the fossology backend."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Minimizing the dependency security issues."}),"\n",(0,i.jsx)(n.li,{children:"Raising more issues on the backend and the Frontend."}),"\n",(0,i.jsx)(n.li,{children:"Start contributing."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>r});var i=s(67294);const t={},l=i.createContext(t);function r(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e8b2c6f3.3f0b500c.js b/assets/js/e8b2c6f3.3f0b500c.js new file mode 100644 index 0000000000..6af198d4a0 --- /dev/null +++ b/assets/js/e8b2c6f3.3f0b500c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6006],{35875:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>o,contentTitle:()=>l,default:()=>r,frontMatter:()=>d,metadata:()=>a,toc:()=>c});var t=s(85893),n=s(11151);const d={title:"Week 6",author:"Shruti Agarwal"},l=void 0,a={id:"2021/ui/updates/shruti/2021-07-20",title:"Week 6",description:"\x3c!--",source:"@site/docs/2021/ui/updates/shruti/2021-07-20.md",sourceDirName:"2021/ui/updates/shruti",slug:"/2021/ui/updates/shruti/2021-07-20",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/shruti/2021-07-20.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Shruti Agarwal"},sidebar:"2021",previous:{title:"Week 5",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-13"},next:{title:"Week 7",permalink:"/gsoc/docs/2021/ui/updates/shruti/2021-07-27"}},o={},c=[{value:"Screenshots",id:"screenshots",level:2},{value:"Candidate License",id:"candidate-license",level:3},{value:"Candidate License Pagination",id:"candidate-license-pagination",level:3},{value:"Contributions",id:"contributions",level:2}];function h(e){const i={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Added the candidate license page."}),"\n",(0,t.jsx)(i.li,{children:"Added the prototype for add candidate license page in Admin."}),"\n",(0,t.jsx)(i.li,{children:"Created the sample page for select license."}),"\n",(0,t.jsx)(i.li,{children:"Added the downloading of License CSV in admin."}),"\n",(0,t.jsx)(i.li,{children:"Fixed the styling textarea in dark mode."}),"\n",(0,t.jsx)(i.li,{children:"Created the widget index.js file where created the imports of all the widgets we required in the codebase."}),"\n",(0,t.jsx)(i.li,{children:"Refactor the widgets imports it will help us to not import the widget again and again."}),"\n",(0,t.jsx)(i.li,{children:"Fixed the license headers in all the files to maintain the symmtery."}),"\n",(0,t.jsx)(i.li,{children:"Added the comments in all the files of services, apis, components, pages, data and many more."}),"\n",(0,t.jsx)(i.li,{children:"Added the comments for all the imports and state variables."}),"\n",(0,t.jsx)(i.li,{children:"Fixed the tokens in all the apis."}),"\n",(0,t.jsxs)(i.li,{children:["On clicking the close button of snackbars in the ",(0,t.jsx)(i.code,{children:"deleteUploads"})," and ",(0,t.jsx)(i.code,{children:"unlinkFolder"})," it is breaking replaced the onClose function to setShow."]}),"\n",(0,t.jsxs)(i.li,{children:["Added the small pop up for loading while changing the pagination or entries, enhances the UX and closes ",(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/91",children:"#91"})]}),"\n",(0,t.jsxs)(i.li,{children:["Added the ",(0,t.jsx)(i.code,{children:"jsconfig.json"})," for the relative paths."]}),"\n",(0,t.jsxs)(i.li,{children:["modified the ",(0,t.jsx)(i.code,{children:".eslintrc.json"})," fro resolving the imports."]}),"\n",(0,t.jsx)(i.li,{children:"Fixed all the imports to relative paths."}),"\n"]}),"\n",(0,t.jsx)(i.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,t.jsx)(i.h3,{id:"candidate-license",children:"Candidate License"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"candidate-license",src:s(61071).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"candidate-license",src:s(36396).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(i.h3,{id:"candidate-license-pagination",children:"Candidate License Pagination"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"candidate-license-pagination",src:s(44354).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"candidate-license-pagination",src:s(32025).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"candidate-license-dark-theme",src:s(40748).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(i.h2,{id:"contributions",children:"Contributions"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/83",children:"feat(license): Added the candidate License page"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/83",children:"feat(license-api): added the license api with limit"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/83",children:"feat(license-csv-export): added the license csv export in admin"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/83",children:"feat(add-license): Added the prototype for create license page"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/83",children:"fix(api): fixed the license api for candidate"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/issues/83",children:"fix(dark-textarea): fixed the styling in dark theme"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/9fa3ded03028ee58ba101904c4461631cb2ad99d",children:"feat(refactor-widgets): refactored the widgets imports"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/6630ee5d67337f31fd269a3d88c18d53d18ec8e7",children:"fix(license-header): fixed all the license headers to the same pattern"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/5a092383fdb9458ec6652190469e009e670bcad4",children:"feat(comments): improved the readability of the codebase"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/f2fd3c25747aad440962b5ea801a49c153b4370f",children:"fix(token): fixed the tokens in all the apis"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/3bede0f85ab86fe0e078ca960d8acdd17dc711bf",children:"fix(alerts): fixed the alerts in delete uploads and unlink folder"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/b00bbaa480e7a2cbc4d286b1f27607de23d0e6bf",children:"feat(browse): added the loding on browse page"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/7dcf1a7e5d6c0620b3bb53df8b7800180fd8b5d4",children:"fix(imports): fixed the imports acc to style guide"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/602e7d87436f98164afef1d6bc2ae4303a555a95",children:"feat(relative-path): added the files for relative imports"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/23e2673f815ae7eb503071900af051a14db8c533",children:"fix(relative-paths): fixed all the relative paths in api"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://github.com/fossology/FOSSologyUI/pull/100/commits/b2fa183dea1f4112e85cb43c85fed32fe92946d2",children:"fix(relative-paths): fixed all the imports"})}),"\n"]})]})}function r(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},32025:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/candidateLicense-6be21cf88e252ffbc1030ff35e3c3c78.png"},40748:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/candidateLicenseDark-7d1f4d083ee66e0f6961341094b5092f.png"},44354:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/candidateLicensePagination-aab6bceec95d43a740a72a6ff5a26ca6.png"},36396:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/license-4cb0a51c5dcd578c843c254dd800f0b6.png"},61071:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/licensePrototype-bff8b1cefedb52072076ba7272fe1584.png"},11151:(e,i,s)=>{s.d(i,{Z:()=>a,a:()=>l});var t=s(67294);const n={},d=t.createContext(n);function l(e){const i=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(d.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ea7c83c3.c2cd1e1c.js b/assets/js/ea7c83c3.c2cd1e1c.js new file mode 100644 index 0000000000..429bb0be98 --- /dev/null +++ b/assets/js/ea7c83c3.c2cd1e1c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[873],{89281:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var s=t(85893),i=t(11151);const a={title:"Week 1",author:"Abdelrahman Jamal"},r="Meeting 1",o={id:"2024/license-detection/updates/2024-05-30",title:"Week 1",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-05-30.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-05-30",permalink:"/gsoc/docs/2024/license-detection/updates/2024-05-30",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-05-30.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/license-detection/"},next:{title:"Week 2",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-06"}},c={},l=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"LLM Comparison Codebase",id:"llm-comparison-codebase",level:3},{value:"Initial PyTorch Dataset",id:"initial-pytorch-dataset",level:3},{value:"Codebase Structure",id:"codebase-structure",level:3},{value:"Next Steps",id:"next-steps",level:2},{value:"Refined Data Input",id:"refined-data-input",level:3},{value:"Codebase Enhancements",id:"codebase-enhancements",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 30,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsx)(n.h3,{id:"llm-comparison-codebase",children:"LLM Comparison Codebase"}),"\n",(0,s.jsx)(n.p,{children:"I presented a preliminary codebase designed to interface with multiple LLM APIs (Groq, Nvidia, Together AI) for comparison purposes. This allows us to assess the performance of different models on our license identification task."}),"\n",(0,s.jsx)(n.h3,{id:"initial-pytorch-dataset",children:"Initial PyTorch Dataset"}),"\n",(0,s.jsx)(n.p,{children:"I prepared a small PyTorch dataset using the Nomos agent to evaluate the LLMs."}),"\n",(0,s.jsx)(n.h3,{id:"codebase-structure",children:"Codebase Structure"}),"\n",(0,s.jsx)(n.p,{children:"The project repository is structured as follows:\nGSOC24"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"GSOC24\n\u251c\u2500\u2500 helpers\n\u2502 \u251c\u2500\u2500 functions\n\u2502 \u251c\u2500\u2500 llm_client\n\u2502 \u251c\u2500\u2500 models\n\u2502 \u2514\u2500\u2500 parsers\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"functions"}),": Contains helper functions for sampling, file operations, etc."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"llm_client"}),": Central class for interacting with LLMs, including API initialization, logging, and retry mechanisms. This week focused on laying the groundwork for efficient, automated requests to the APIs."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"models"}),": Enum class for supported LLM models (LLama 8b, Mistral 7b, Gemma 1 7b, Phi_3 mini/small)."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"parsers"}),": (Placeholder for future LLM output parsing functions)"]}),"\n",(0,s.jsx)(n.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,s.jsx)(n.h3,{id:"refined-data-input",children:"Refined Data Input"}),"\n",(0,s.jsx)(n.p,{children:"Instead of feeding the entire file comments to the LLM, we will use Nirjas to extract and provide only the comments relevant to license information. This should improve accuracy and reduce computational costs.\nEnhanced Dataset: We plan to create a more diverse dataset using Linux code, as this will better represent the variety of license structures and wording encountered in real-world projects."}),"\n",(0,s.jsx)(n.h3,{id:"codebase-enhancements",children:"Codebase Enhancements"}),"\n",(0,s.jsxs)(n.p,{children:["Finalize the ",(0,s.jsx)(n.code,{children:"llm_client"})," functionality to enable efficient, automated requests across the entire dataset."]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>r});var s=t(67294);const i={},a=s.createContext(i);function r(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eaed3ec9.e023084f.js b/assets/js/eaed3ec9.e023084f.js new file mode 100644 index 0000000000..bd536ce530 --- /dev/null +++ b/assets/js/eaed3ec9.e023084f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1068],{20307:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>r,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>a});var s=t(85893),o=t(11151);const c={title:"Week 6",author:"Sushant Kumar"},r=void 0,l={id:"2023/cyclonedx/updates/2023-07-06",title:"Week 6",description:"\x3c!--",source:"@site/docs/2023/cyclonedx/updates/2023-07-06.md",sourceDirName:"2023/cyclonedx/updates",slug:"/2023/cyclonedx/updates/2023-07-06",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/cyclonedx/updates/2023-07-06.md",tags:[],version:"current",frontMatter:{title:"Week 6",author:"Sushant Kumar"},sidebar:"2023",previous:{title:"Week 5",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-06-29"},next:{title:"Week 7",permalink:"/gsoc/docs/2023/cyclonedx/updates/2023-07-13"}},i={},a=[{value:"Updates:",id:"updates",level:3},{value:"Conclusion and further plans:",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(July,06,2023)"})}),"\n",(0,s.jsx)(n.h3,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"During this week, I have been diligently working on preparing a comprehensive\nsummary of all the tasks I have accomplished so far for the mid-term\nevaluation. The purpose of this summary is to showcase the progress and\nachievements made during the initial phase of the project."}),"\n",(0,s.jsxs)(n.li,{children:["Additionally, I raised a Pull Request (PR) for the CycloneDX agent:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2507/",children:"feat(CycloneDX): Add new agent\ncyclonedx"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://raw.githubusercontent.com/its-sushant/PHP-SNIPPETS/main/src/vlc_cdx_report.json",children:"A report from CycloneDX\nagent"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and further plans:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["In the coming weeks, I will start working ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/tree/master/src/scancode",children:"scancode\nagent"}),"\nimprovemnet in FOSSology."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var s=t(67294);const o={},c=s.createContext(o);function r(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eafba1a1.d077b493.js b/assets/js/eafba1a1.d077b493.js new file mode 100644 index 0000000000..79142e7765 --- /dev/null +++ b/assets/js/eafba1a1.d077b493.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[518],{57187:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>h,toc:()=>o});var i=s(85893),t=s(11151);const a={sidebar_position:4,title:"Week 1"},r=void 0,h={id:"2023/minutes/2023-06-01",title:"Week 1",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-06-01.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-06-01",permalink:"/gsoc/docs/2023/minutes/2023-06-01",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-06-01.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Week 1"},sidebar:"2023",previous:{title:"Community Bonding 3",permalink:"/gsoc/docs/2023/minutes/2023-05-25"},next:{title:"Week 2",permalink:"/gsoc/docs/2023/minutes/2023-06-08"}},l={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2023 at FOSSology 01-06-2023."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"}),": Had few calls last week with abdel. as he has exams we have decided not to push much now but had a good discussion on how to improve the copyright clutter and deactivation. hope we will provide better solution this year."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"}),": Better to give permissions or make licenseasaservice repo public. as other mentors and contributors can also review and provide feedback on codebase."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Observed that contributors have not updated the GSOC repository with the latest updates."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"}),": As the discussion happened multiple times contributors shall update the GSOC wiki and come to thursday calls."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I was not able to join the last call as i had exams. this week i was not able to do much but mentors had asked me to look into SPDX codebase im doing that now"}),"\n",(0,i.jsx)(n.li,{children:"will start working on CycloneDX soon. first i will integrate cyclonedx php library internally."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent(Have exams till 14th june)."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Last week i was working on authentication and reading about github actions."}),"\n",(0,i.jsx)(n.li,{children:"Im not able to fork/push to new repository i dont have access i guess."}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"}),": Create a issue with tasks you need to work on we will speak with anupam to provide ytou with access"]}),"\n",(0,i.jsx)(n.li,{children:"Would like to show a demo on project structure. basic structure is ready."}),"\n",(0,i.jsx)(n.li,{children:"anupam to make the repository public."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent(Have exams till 14th june)."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Last week i was working on licenses part. Worked on API to get file contents based on uploadid and itemid, also worked on"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"suggetions by mentors on the same. the second thing i was working on is ablity to provide pagination wjile getting the licenses."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Demo on getting file contents."}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>h,a:()=>r});var i=s(67294);const t={},a=i.createContext(t);function r(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function h(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec165cb5.fb502018.js b/assets/js/ec165cb5.fb502018.js new file mode 100644 index 0000000000..665bcd4d1d --- /dev/null +++ b/assets/js/ec165cb5.fb502018.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1969],{70301:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var r=s(85893),t=s(11151);const i={title:"Week 2",author:"Shreya"},a="Coding Week-2 Meeting",o={id:"2021/minerva/updates/2021-06-22",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/minerva/updates/2021-06-22.md",sourceDirName:"2021/minerva/updates",slug:"/2021/minerva/updates/2021-06-22",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-22",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/minerva/updates/2021-06-22.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Shreya"},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-15"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/minerva/updates/2021-06-29"}},l={},h=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:2},{value:"Week 2 Progress",id:"week-2-progress",level:2},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"coding-week-2-meeting",children:"Coding Week-2 Meeting"}),"\n",(0,r.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/OmarAbdelSamea",children:"Omar Mohamed "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap "})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/SinghShreya05",children:"Shreya Singh "})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"discussions",children:"Discussions"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Using Nomos for baseline validation of generated text files of licenses and compare results."}),"\n",(0,r.jsx)(n.li,{children:"To improve regex expansion, different algorithms were discussed."}),"\n",(0,r.jsx)(n.li,{children:"Results from Markov were discussed and how to improve it so that coherent statements can be generated."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"week-2-progress",children:"Week 2 Progress"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Generated Motosoto files using the Markov approach was validated using Nomos."}),"\n",(0,r.jsx)(n.li,{children:'Implementation of the "n-gram" approach on regex of different licenses so as to generate coherent regex statements.'}),"\n",(0,r.jsx)(n.li,{children:"Extracted License header and regex from the STRINGS.in file and stored them in separate CSV files for SPDX and LT."}),"\n",(0,r.jsxs)(n.li,{children:["Worksamples : ",(0,r.jsx)(n.a,{href:"https://drive.google.com/drive/u/2/folders/1ObmkfCON3VK6CCq3yovTn7xe1hIL2zaZ",children:"License-Regex"}),", ",(0,r.jsx)(n.a,{href:"https://drive.google.com/drive/u/2/folders/1q6F-kXVEJdfjHzUppGQIloK_qEeRZflF",children:"GeneratedMotosotoLicense"}),", ",(0,r.jsx)(n.a,{href:"https://colab.research.google.com/drive/1bR3O98q3k2oMq-cOg_-1F8QcJe3gpmDG?usp=sharing",children:"FileGenerationUsingMarkov"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,r.jsx)(n.p,{children:"Implement n-gram approach to Motosoto licenses, so that the performance of Markov and Ngram algorithms can be compared."})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>a});var r=s(67294);const t={},i=r.createContext(t);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ed3f6656.bd2d6851.js b/assets/js/ed3f6656.bd2d6851.js new file mode 100644 index 0000000000..15dfb41102 --- /dev/null +++ b/assets/js/ed3f6656.bd2d6851.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5420],{60599:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var t=n(85893),i=n(11151);const s={title:"GSoC Contributor Guideline"},r="Attention all students! \ud83d\udc68\u200d\ud83d\udcbb",l={id:"guidelines/index",title:"GSoC Contributor Guideline",description:"\x3c!--",source:"@site/docs/guidelines/index.md",sourceDirName:"guidelines",slug:"/guidelines/",permalink:"/gsoc/docs/guidelines/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/guidelines/index.md",tags:[],version:"current",frontMatter:{title:"GSoC Contributor Guideline"}},a={},c=[{value:"Begin communication in Slack",id:"begin-communication-in-slack",level:2},{value:"First contribution",id:"first-contribution",level:2},{value:"Useful links",id:"useful-links",level:3},{value:"GSoC Contributor Proposals",id:"gsoc-contributor-proposals",level:2},{value:"GSoC Contributor Selection Process",id:"gsoc-contributor-selection-process",level:2},{value:"Congratulations, you have been selected\u2026\u200b or not.",id:"congratulations-you-have-been-selected-or-not",level:2},{value:"Community Bonding",id:"community-bonding",level:2},{value:"Coding Periods",id:"coding-periods",level:2},{value:"Evaluations",id:"evaluations",level:2},{value:"Post-GSoC",id:"post-gsoc",level:2},{value:"FAQs",id:"faqs",level:2}];function d(e){const o={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.p,{children:"Hi contributor!"}),"\n",(0,t.jsx)(o.p,{children:"Thanks for your interest in our project, FOSSology."}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.img,{alt:"FOSSology",src:n(61710).Z+"",width:"1000",height:"532"})}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.strong,{children:"Welcome to the FOSSology GSoC program."})}),"\n",(0,t.jsx)(o.p,{children:"This page contains information for aspiring interested in participating and helping with the GSoC program."}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.strong,{children:"Note:"})}),"\n",(0,t.jsxs)(o.blockquote,{children:["\n",(0,t.jsx)(o.p,{children:(0,t.jsxs)(o.em,{children:["Fosslogy is participating in ",(0,t.jsx)(o.a,{href:"https://summerofcode.withgoogle.com/programs/2023/organizations/fossology",children:"Google Summer Of Code"})," 2023! You might be interested in our GSoC info pages from previous years: ",(0,t.jsx)(o.a,{href:"https://summerofcode.withgoogle.com/programs/2022/organizations/fossology",children:"2022"})]})}),"\n"]}),"\n",(0,t.jsxs)(o.blockquote,{children:["\n",(0,t.jsxs)(o.p,{children:[(0,t.jsx)(o.em,{children:"Also, please note that acceptance into GSoC isn't a prerequisite for becoming a FOSSology contributor. Our community is always open to new contributors, so if you're eager to dive in and make a difference, there's no time like the present"}),"."]}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"This page is your entry point to the FOSSology GSoC program."}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.img,{alt:"GSoC-FOSSology",src:n(36498).Z+"",width:"2050",height:"780"})}),"\n",(0,t.jsx)(o.p,{children:"Keep an eye on this page for updates on our participation in GSoC, and let's make some great things happen together!"}),"\n",(0,t.jsx)(o.h1,{id:"attention-all-students-",children:"Attention all students! \ud83d\udc68\u200d\ud83d\udcbb"}),"\n",(0,t.jsx)(o.p,{children:"Are you ready to take on the challenge of Google Summer of Code with FOSSology?"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsxs)(o.p,{children:["Start by immersing yourself in the ",(0,t.jsx)(o.a,{href:"https://google.github.io/gsocguides/student/",children:"Google Summer of Code Guide"}),", and keep the timeline handy as a daily reminder of your goals."]}),"\n"]}),"\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsxs)(o.p,{children:["Get some valuable tips and tricks by reading the ",(0,t.jsx)(o.a,{href:"https://opensource.googleblog.com/2011/03/dos-and-donts-of-google-summer-of-code.html",children:"Advice for Students"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsxs)(o.p,{children:["Take a few minutes to watch the ",(0,t.jsx)(o.a,{href:"https://www.youtube.com/watch?v=S6IP_6HG2QE",children:"GSoC video presentation"})," for students, and get a feel for the program."]}),"\n"]}),"\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsxs)(o.p,{children:["Watch ",(0,t.jsx)(o.a,{href:"https://www.youtube.com/watch?v=TZqU5ZALI7U",children:"FOSSology Using: End-to-end workflow"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsxs)(o.p,{children:["Browse the ",(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/discussions/2371",children:"FOSSology GSoC 2023 project ideas"})," and find something that ignites your passion."]}),"\n"]}),"\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsx)(o.p,{children:"If you don't see a project that speaks to you, don't be shy! Reach out to the FOSSology community in the slack channel and propose a new idea."}),"\n"]}),"\n",(0,t.jsxs)(o.li,{children:["\n",(0,t.jsx)(o.p,{children:"Keep in mind that the Ideas list is updated by GSoC admins, so if you don't see any recent updates, don't hesitate to ping a mentor for more information. Let's make this a summer to remember!"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(o.h2,{id:"begin-communication-in-slack",children:["Begin communication in ",(0,t.jsx)(o.a,{href:"https://join.slack.com/t/fossology/shared_invite/enQtNzI0OTEzMTk0MjYzLTYyZWQxNDc0N2JiZGU2YmI3YmI1NjE4NDVjOGYxMTVjNGY3Y2MzZmM1OGZmMWI5NTRjMzJlNjExZGU2N2I5NGY",children:"Slack"})]}),"\n",(0,t.jsxs)(o.p,{children:["To get started, join our ",(0,t.jsx)(o.a,{href:"https://join.slack.com/t/fossology/shared_invite/enQtNzI0OTEzMTk0MjYzLTYyZWQxNDc0N2JiZGU2YmI3YmI1NjE4NDVjOGYxMTVjNGY3Y2MzZmM1OGZmMWI5NTRjMzJlNjExZGU2N2I5NGY",children:"Slack channel"})," and introduce yourself."]}),"\n",(0,t.jsx)(o.p,{children:"In the first communication, we would be interested to see the following information:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"A short self-introduction: your area of study, interests, background"}),"\n",(0,t.jsx)(o.li,{children:"Why are you interested in the FOSSology project? Which projects ideas do you want to work on?"}),"\n",(0,t.jsx)(o.li,{children:"If you participated in open-source projects, please reference them"}),"\n",(0,t.jsx)(o.li,{children:"If you have a GitHub, Twitter account, blog, or any technical/scientific publications, don't hesitate to share those as well.."}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"As you dive into the codebase, use the Slack channel to ask for feedback on your project ideas and for help as you navigate the code."}),"\n",(0,t.jsxs)(o.p,{children:["Remember, the more specific and clear your questions are, the more likely you are to get a helpful response. So don't be afraid to get specific, like: ",(0,t.jsx)(o.code,{children:"I'm interested in Project X, and I've noticed issues Y and Z. It looks like a, b, and c are already implemented. Can I pitch a project that would complete d, e, and f?\" We're here to help you make the most of your time with us, so don't hesitate to reach out!"})]}),"\n",(0,t.jsx)(o.h2,{id:"first-contribution",children:"First contribution"}),"\n",(0,t.jsx)(o.p,{children:"Looking to make your mark in the world of open-source and increase your chances of being selected for Google Summer of Code? The key is to dive in and get your hands dirty with the software."}),"\n",(0,t.jsx)(o.p,{children:"What better way to learn about a tool than by contributing to its development? Whether fixing bugs or adding new features, your contributions can make a real difference."}),"\n",(0,t.jsx)(o.p,{children:"Here's a general roadmap to follow:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsxs)(o.li,{children:["Find an issue, bug, or proposed feature that catches your interest. Also you can have look at ",(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/contribute",children:"good first issues"}),"."]}),"\n",(0,t.jsx)(o.li,{children:'Make a copy of the repository (known as "forking").'}),"\n",(0,t.jsx)(o.li,{children:"Roll up your sleeves and make your improvements."}),"\n",(0,t.jsxs)(o.li,{children:["Submit a well-documented pull request, including all the relevant details about your changes. Also, be sure to follow the ",(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/blob/17bca5f198bfa9c6529984ed9bde56772964ffd7/CONTRIBUTING.md#git-commit-conventions",children:"Git commit conventios"}),"."]}),"\n",(0,t.jsx)(o.li,{children:"Be patient and wait for feedback and discussion on Github (reviews can take some time)."}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"We can't stress enough the importance of making some contributions to the project before you submit your GSoC application. Not only will it help you fine-tune your proposal, but it will also show the mentors that you're invested in the community and are dedicated to making a difference."}),"\n",(0,t.jsx)(o.h3,{id:"useful-links",children:"Useful links"}),"\n",(0,t.jsx)(o.p,{children:"Here is a list of links to help you get started on participating in Fosslogy and in coding for the FOSSology project."}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/wiki/Install-from-Source",children:"Install from Source"})}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/wiki#using-fossology",children:"Using FOSSology"})}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/wiki#get-started-with-development",children:"Contribute to FOSSology"})}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/wiki#get-started-with-development",children:"Get Started with Development"})}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/wiki/FOSSology-Agents",children:"FOSSology Agents"})}),"\n",(0,t.jsxs)(o.p,{children:["There is also a ",(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/contribute",children:"list of newbie-friendly issues"}),"."]}),"\n",(0,t.jsxs)(o.blockquote,{children:["\n",(0,t.jsx)(o.p,{children:"Feel free to contact potential mentors and org admins if you need help with choosing a newbie-friendly issue to tackle."}),"\n"]}),"\n",(0,t.jsx)(o.h2,{id:"gsoc-contributor-proposals",children:"GSoC Contributor Proposals"}),"\n",(0,t.jsx)(o.p,{children:"As a GSoC contributor, your proposal is the key to unlocking the doors of opportunity."}),"\n",(0,t.jsxs)(o.p,{children:["We expect your proposal to be a shining example of all the elements discussed in the ",(0,t.jsx)(o.a,{href:"https://google.github.io/gsocguides/student/",children:"Google Summer of Code Guide"}),', particularly the "',(0,t.jsx)(o.a,{href:"https://google.github.io/gsocguides/student/writing-a-proposal#elements-of-a-quality-proposal",children:"Elements of a Quality Proposal"}),'."']}),"\n",(0,t.jsx)(o.p,{children:"Don't wait until the last minute to submit your proposal. Connect with the mentors as early as possible. The earlier you start, the more time you'll have to fine-tune your proposal and receive valuable feedback. If you wait until the last few days, there may not be enough time for mentors to give your proposal the attention it deserves."}),"\n",(0,t.jsx)(o.p,{children:"In your proposal, be sure to disclose all known commitments that may overlap with any of the program phases(community bonding, coding periods, evaluation periods, etc.):"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Disclose your vacations periods, part-time or full-time job, school, classes, tests, exams, periods of non-availability, etc."}),"\n",(0,t.jsx)(o.li,{children:"Unexpected events: we understand there can be unexpected events in life, and those cannot be planned. Please inform us as soon as possible if you need time away from the program. You can use private messaging for sensitive information."}),"\n"]}),"\n",(0,t.jsx)(o.h2,{id:"gsoc-contributor-selection-process",children:"GSoC Contributor Selection Process"}),"\n",(0,t.jsx)(o.p,{children:"Once the application period is over, administrators and mentors make a decision on which proposal to accept based on the proposal submitted to the Google Summer of Code website."}),"\n",(0,t.jsx)(o.h2,{id:"congratulations-you-have-been-selected-or-not",children:"Congratulations, you have been selected\u2026\u200b or not."}),"\n",(0,t.jsxs)(o.p,{children:["We thank all GSoC contributors who reach out to us during the application period. If you have not been selected, ",(0,t.jsx)(o.a,{href:"https://google.github.io/gsocguides/student/being-turned-down",children:"read this"}),", there could be many reasons, and some are even outside of our control. Do not feel bad, we encourage you to stay with the community and apply again next year."]}),"\n",(0,t.jsx)(o.p,{children:"If you have been selected, we extend our warmest congratulations! The community bonding period starts within two days after the official announcement, so get ready to dive into the exciting world of open-source development with FOSSology."}),"\n",(0,t.jsx)(o.h2,{id:"community-bonding",children:"Community Bonding"}),"\n",(0,t.jsx)(o.p,{children:"As soon as the GSoC contributors are accepted, the community bonding period starts. During this period, contributors are not expected to be coding immediately. Instead, they are expected to prepare to code.\nA thriving community bonding period leads to successful coding, so make the most of it!"}),"\n",(0,t.jsx)(o.p,{children:"Use the community bonding to:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Define the communication channels with your mentors."}),"\n",(0,t.jsx)(o.li,{children:"Schedule weekly meetings with your mentors."}),"\n",(0,t.jsx)(o.li,{children:"Continue to discuss and plan the project with the community and the mentors."}),"\n",(0,t.jsxs)(o.li,{children:["Set up your computer and development environment to work on the project (see ",(0,t.jsx)(o.a,{href:"#useful-links",children:"Useful links"}),")."]}),"\n"]}),"\n",(0,t.jsx)(o.h2,{id:"coding-periods",children:"Coding Periods"}),"\n",(0,t.jsx)(o.p,{children:"During the coding periods, GSoC contributors are expected to:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Work on the GSoC project."}),"\n",(0,t.jsxs)(o.li,{children:["Follow the ",(0,t.jsx)(o.a,{href:"https://github.com/fossology/fossology/wiki/Coding-Style",children:"Code Style Best Practices"}),"."]}),"\n",(0,t.jsxs)(o.li,{children:["Write a short summary of the work done each week, published to FOSSolgy GSoC tracker. It is also advisable to publish in a personal blog as well. As an example, you can check out the ",(0,t.jsx)(o.a,{href:"https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-06-13",children:"weekly progress updates"})," for the Adopting REUSE standards in FOSSology project during GSoC 2022.","\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:(0,t.jsx)(o.code,{children:"It\u2019s okay to say things like <this> and <that> were challenging because of <reason>."})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(o.li,{children:"Say something when you are stuck, lost in the code, confused about the objectives, etc."}),"\n",(0,t.jsx)(o.li,{children:"Notify in advance when taking time off and make use of weekends to rest and avoid burnout."}),"\n",(0,t.jsx)(o.li,{children:"Be present online and proactively reach out to the community if required."}),"\n"]}),"\n",(0,t.jsx)(o.h2,{id:"evaluations",children:"Evaluations"}),"\n",(0,t.jsx)(o.p,{children:"At the end of each coding period, GSoC contributors are expected to:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Publish a blog post summarizing your status on your blog or on Medium."}),"\n",(0,t.jsxs)(o.li,{children:["Announce the blog post on the ",(0,t.jsx)(o.a,{href:"https://join.slack.com/t/fossology/shared_invite/enQtNzI0OTEzMTk0MjYzLTYyZWQxNDc0N2JiZGU2YmI3YmI1NjE4NDVjOGYxMTVjNGY3Y2MzZmM1OGZmMWI5NTRjMzJlNjExZGU2N2I5NGY",children:"Slack channel"}),"."]}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"Past years' blog posts may inspire you. Here are some links:"}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://medium.com/@rohit-pandey/gsoc-2022-final-report-bf1e34440bce",children:"https://medium.com/@rohit-pandey/gsoc-2022-final-report-bf1e34440bce"})}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.a,{href:"https://medium.com/@shruti-ag/gsoc21-with-fossology-fd97cd2a3924",children:"https://medium.com/@shruti-ag/gsoc21-with-fossology-fd97cd2a3924"})}),"\n",(0,t.jsx)(o.h2,{id:"post-gsoc",children:"Post-GSoC"}),"\n",(0,t.jsx)(o.p,{children:"Congratulations on reaching the end of GSoC! You've accomplished so much, and the journey has only just begun. Once the final results are announced by Google, it's not the end of the road for you. Here are a few options for you to consider:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Keep the momentum going and continue to develop your project within the FOSSology community."}),"\n",(0,t.jsx)(o.li,{children:"Help us in keeping the documentations updated."}),"\n",(0,t.jsx)(o.li,{children:"Give presentations/talks about your work during GSoC."}),"\n",(0,t.jsx)(o.li,{children:"Apply again next year and take on another exciting challenge."}),"\n",(0,t.jsx)(o.li,{children:"Share your knowledge and experience by becoming a mentor in Google Summer of Code for the next year."}),"\n"]}),"\n",(0,t.jsx)(o.p,{children:"So, don't put away your development tools just yet, and keep in touch with the community; there are more opportunities waiting for you."}),"\n",(0,t.jsx)(o.h2,{id:"faqs",children:"FAQs"}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.strong,{children:"Q. How can I improve my chances of getting selected for GSoC?"})}),"\n",(0,t.jsx)(o.p,{children:"A: There are a few key things you can do to increase your chances of getting selected. These include writing a compelling project proposal, engaging with the community, successfully contributing to the project, and demonstrating that you can work independently."}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.strong,{children:"Q. How early should I start working on my proposal?"})}),"\n",(0,t.jsx)(o.p,{children:"A: The earlier, the better! Make sure to get feedback from mentors before submitting your proposal. This will help you to refine the details and make it as strong as possible. Keep in mind that mentors will need some time to review your proposal, so starting early will give you the best chance of success."}),"\n",(0,t.jsx)(o.p,{children:(0,t.jsx)(o.strong,{children:"Q. I don't have any experience in the skill XYZ. What should I do?"})}),"\n",(0,t.jsx)(o.p,{children:"A: Not necessarily. One way to gain experience is by working on good first issues. In software development, it's common to develop experience and expertise as you take on and complete projects successfully."})]})}function h(e={}){const{wrapper:o}={...(0,i.a)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},36498:(e,o,n)=>{n.d(o,{Z:()=>t});const t=n.p+"assets/images/gsocHeader-9c68b2e9a3bb20c084f9b50beaa83c12.png"},61710:(e,o,n)=>{n.d(o,{Z:()=>t});const t=n.p+"assets/images/logo-1d959c8082fd12c2f575ffcc82912e4f.png"},11151:(e,o,n)=>{n.d(o,{Z:()=>l,a:()=>r});var t=n(67294);const i={},s=t.createContext(i);function r(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ed4d09e2.0eafa920.js b/assets/js/ed4d09e2.0eafa920.js new file mode 100644 index 0000000000..b6bc4720bf --- /dev/null +++ b/assets/js/ed4d09e2.0eafa920.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7284],{32265:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=n(85893),i=n(11151);const r={title:"Week 20",author:"Abdelrahman Jamal"},o=void 0,l={id:"2023/copyrights/updates/2023-10-11",title:"Week 20",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-10-11.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-10-11",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-10-11.md",tags:[],version:"current",frontMatter:{title:"Week 20",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 19",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-04"},next:{title:"Week 21",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-18"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"1. <strong>Resolution of Integration Issues</strong>:",id:"1-resolution-of-integration-issues",level:3},{value:"2. <strong>Weekly Documentation</strong>:",id:"2-weekly-documentation",level:3},{value:"3. <strong>Decluttering Performance</strong>:",id:"3-decluttering-performance",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"1. Enrich the labeled dataset",id:"1-enrich-the-labeled-dataset",level:3}];function d(e){const t={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(October,11,2023)"})}),"\n",(0,s.jsx)(t.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"updates",children:"Updates:"}),"\n",(0,s.jsxs)(t.h3,{id:"1-resolution-of-integration-issues",children:["1. ",(0,s.jsx)(t.strong,{children:"Resolution of Integration Issues"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"After Gaurav's timely intervention, we got the decluttering integration issues sorted out. He pointed out the exact changes needed in the PHP code and even provided the code snippets to fix the problem."}),"\n"]}),"\n",(0,s.jsxs)(t.h3,{id:"2-weekly-documentation",children:["2. ",(0,s.jsx)(t.strong,{children:"Weekly Documentation"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"This week, I pivoted towards updating the documentation, a task that had been relegated to the backburner in the preceding weeks."}),"\n"]}),"\n",(0,s.jsxs)(t.h3,{id:"3-decluttering-performance",children:["3. ",(0,s.jsx)(t.strong,{children:"Decluttering Performance"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["With the decluttering component now integrated and debugged, I delved into a thorough discussion with Gaurav regarding its performance. While the current results are promising, there's significant room for improvement.","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"The primary challenge lies in the intricate nuances and variations of clutter present in different repositories. If our model fails to recognize a particular pattern, it subsequently overlooks similar patterns across multiple instances."}),"\n",(0,s.jsxs)(t.li,{children:["A case in point is a recurrent copyright missed in the Ansible repository:","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"Copyright 2019 Ansible Project GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"This pattern, accompanied by the GNU license text, manifested in several variants. Since our model couldn't identify this particular instance, it consistently missed out on similar patterns throughout."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,s.jsx)(t.h3,{id:"1-enrich-the-labeled-dataset",children:"1. Enrich the labeled dataset"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"By introducing a diverse range of examples, I hope to enhance the model's ability to generalize more effectively across varied inputs. This step is critical to elevating the decluttering model's accuracy and adaptability in real-world scenarios."}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var s=n(67294);const i={},r=s.createContext(i);function o(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ef97733e.6562353b.js b/assets/js/ef97733e.6562353b.js new file mode 100644 index 0000000000..4b854631b8 --- /dev/null +++ b/assets/js/ef97733e.6562353b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1864],{89331:s=>{s.exports=JSON.parse('{"tag":{"label":"open source licensing","permalink":"/gsoc/docs/tags/open-source-licensing","allTagsPath":"/gsoc/docs/tags","count":12,"items":[{"id":"2023/laas/updates/2023-06-02","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-02"},{"id":"2023/laas/updates/2023-06-09","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-09"},{"id":"2023/laas/updates/2023-06-16","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-16"},{"id":"2023/laas/updates/2023-06-23","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-23"},{"id":"2023/laas/updates/2023-06-30","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-06-30"},{"id":"2023/laas/updates/2023-07-07","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-07"},{"id":"2023/laas/updates/2023-07-14","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-14"},{"id":"2023/laas/updates/2023-07-21","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-21"},{"id":"2023/laas/updates/2023-07-28","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-07-28"},{"id":"2023/laas/updates/2023-08-04","title":"Coding Period","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-08-04"},{"id":"2023/laas/updates/2023-05-11","title":"Community bonding","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/updates/2023-05-11"},{"id":"2023/laas/finalevaluation","title":"Final Evaluation","description":"\x3c!--","permalink":"/gsoc/docs/2023/laas/finalevaluation"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/efa436d5.cb7df0b6.js b/assets/js/efa436d5.cb7df0b6.js new file mode 100644 index 0000000000..d3db0b3bf0 --- /dev/null +++ b/assets/js/efa436d5.cb7df0b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4576],{90055:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var s=i(85893),t=i(11151);const r={sidebar_position:6,title:"Week 3"},l=void 0,o={id:"2023/minutes/2023-06-15",title:"Week 3",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-06-15.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-06-15",permalink:"/gsoc/docs/2023/minutes/2023-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-06-15.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Week 3"},sidebar:"2023",previous:{title:"Week 2",permalink:"/gsoc/docs/2023/minutes/2023-06-08"},next:{title:"Week 4",permalink:"/gsoc/docs/2023/minutes/2023-06-22"}},c={},h=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates from contributors",id:"updates-from-contributors",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/HastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"updates-from-contributors",children:"Updates from contributors"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Raised two PRs","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Endpoint for OpenAPI specification, ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2474",children:"PR #2474"})]}),"\n",(0,s.jsxs)(n.li,{children:["Endpoint for copyrights for item ids, ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2475",children:"PR #2475"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Facing PHPUnit error for the new endpoint. Mentors will review PR and provide solutions on the PR."}),"\n",(0,s.jsx)(n.li,{children:"Will update GSoC Docs."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Working on 6 tasks and demo them:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"List data from license table in file decision view."}),"\n",(0,s.jsx)(n.li,{children:"Setting text, acknowledgement and comment of licenses."}),"\n",(0,s.jsx)(n.li,{children:"Schedule a bulk scan."}),"\n",(0,s.jsx)(n.li,{children:"Getting clearing history for an item. Feedback from mentor is to break license list into 2 like done for bulk\nhistory."}),"\n",(0,s.jsx)(n.li,{children:"Getting bulk scan history."}),"\n",(0,s.jsxs)(n.li,{children:["Handling next/previous item with 3 filters. Feedback from mentor is to check the filter names.\n",(0,s.jsx)(n.code,{children:"[2 => withLicense, 3 => noClearing]"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman jamal"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Final exams have finished. Will start working from this week."}),"\n",(0,s.jsx)(n.li,{children:"Building DB to train ML models. Wanted to show DB in next meeting."}),"\n",(0,s.jsx)(n.li,{children:"Did some refactoring of existing code."}),"\n",(0,s.jsx)(n.li,{children:"Data creation to be discussed in next meeting."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Was working on licenses endpoints, created a PR."}),"\n",(0,s.jsx)(n.li,{children:"Added flag to control DB population to prevent errors."}),"\n",(0,s.jsx)(n.li,{children:"Added error statements while populating DB."}),"\n",(0,s.jsxs)(n.li,{children:["Endpoints to get all licenses, get license by shortname endpoint created.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Added error handling, sort licenses by shortname."}),"\n",(0,s.jsx)(n.li,{children:"Added models for response."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Working on endpoint to create new license."}),"\n",(0,s.jsx)(n.li,{children:"For creating license, suggestion is to remove shortname from the path and read it from body."}),"\n",(0,s.jsx)(n.li,{children:"Some suggestions have be posted on the PR by mentors and linter is added for Actions."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Was exporting CycloneDX schema, understood some required fields."}),"\n",(0,s.jsx)(n.li,{children:"Can add files as components in the report."}),"\n",(0,s.jsx)(n.li,{children:"Was able to generate JSON report in separate repo using static data."}),"\n",(0,s.jsx)(n.li,{children:"Using schema v1.4 from CycloneDX to validate the generated report."}),"\n",(0,s.jsx)(n.li,{children:"Will be working on agent implementation in FOSSology."}),"\n",(0,s.jsx)(n.li,{children:"Concerns from mentors about report size exceeding SPDX report \ud83d\ude05"}),"\n"]}),"\n"]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>l});var s=i(67294);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f0c8bc5a.92b4ab3b.js b/assets/js/f0c8bc5a.92b4ab3b.js new file mode 100644 index 0000000000..17831b20b5 --- /dev/null +++ b/assets/js/f0c8bc5a.92b4ab3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4622],{8006:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var i=t(85893),s=t(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2023/laas/"},a=void 0,r={id:"2023/laas/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2023/laas/index.md",sourceDirName:"2023/laas",slug:"/2023/laas/",permalink:"/gsoc/docs/2023/laas/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/laas/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2023/laas/"},sidebar:"2023",previous:{title:"Week 8",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-08-05"},next:{title:"Community bonding",permalink:"/gsoc/docs/2023/laas/updates/2023-05-11"}},l={},c=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya Shukla"})}),"\n",(0,i.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:kavyuushukla59@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.linkedin.com/in/kavya-shukla-k-avy/",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,i.jsx)(n.p,{children:"Organisations are finding it more challenging to keep track of the numerous licences\nand conditions under which they are permitted to utilise open-source components\nas a result of the rising popularity of open-source software. Open-source licences\ncan be challenging to comprehend in terms of how they relate to a particular piece\nof software or work with other licences. Organisations like FOSSology and SW360\ncan utilise it for a variety of things, like licence identification, filtering,\nand management."}),"\n",(0,i.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,i.jsx)(n.p,{children:"There are two parts of the project:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"First part is the creating a database service"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Adding the data components related to licenses."}),"\n",(0,i.jsx)(n.li,{children:"Database will help us to fetch the desired data using the API."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Second part is API Designing:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Adding endpoints related to the license database."}),"\n",(0,i.jsx)(n.li,{children:"Adding various query parameters for filters and ordering."}),"\n",(0,i.jsx)(n.li,{children:"To add fuzzy search for the license text."}),"\n",(0,i.jsx)(n.li,{children:"Adding the endpoints related to authentication of the API."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fossology/LicenseDb",children:"Repository Link"})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(67294);const s={},o=i.createContext(s);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f1bc92c5.790e061b.js b/assets/js/f1bc92c5.790e061b.js new file mode 100644 index 0000000000..98505e9833 --- /dev/null +++ b/assets/js/f1bc92c5.790e061b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3091],{6360:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=s(85893),t=s(11151);const o={sidebar_position:3,title:"Community Bonding 3"},l=void 0,a={id:"2023/minutes/2023-05-25",title:"Community Bonding 3",description:"\x3c!--",source:"@site/docs/2023/minutes/2023-05-25.md",sourceDirName:"2023/minutes",slug:"/2023/minutes/2023-05-25",permalink:"/gsoc/docs/2023/minutes/2023-05-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/minutes/2023-05-25.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Community Bonding 3"},sidebar:"2023",previous:{title:"Community Bonding 2",permalink:"/gsoc/docs/2023/minutes/2023-05-18"},next:{title:"Week 1",permalink:"/gsoc/docs/2023/minutes/2023-06-01"}},r={},d=[{value:"Attendees:",id:"attendees",level:2},{value:"Questions",id:"questions",level:2},{value:"Updates",id:"updates",level:2},{value:"General",id:"general",level:2},{value:"Follow up",id:"follow-up",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",li:"li",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/k-avy",children:"Kavya"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"questions",children:"Questions"}),"\n",(0,i.jsx)(n.h2,{id:"updates",children:"Updates"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Soham:"})," Setup ",(0,i.jsx)(n.code,{children:"alias"}),", helped Samuel for same.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/orgs/fossology/projects/2",children:"GitHub project"})," has issues","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav tried to convert one task to an issue and Soham commented on it.\nAssigning of issue works after commenting on same."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Univ exams are there from 2-12 June"}),"\n",(0,i.jsx)(n.li,{children:"Soham is writing documentation for creating aliases and will create a PR."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Samuel:"})," Setup aliases and explored Kanban board. Will start\nimplementations soon.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Clarification of priority numbers: 1 is highest, 10 is lowest."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Abdelrahman:"})," Have final exams in 3 days, have meeting tomorrow with\nmentors about project. Exams will over on 13th June."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Kavya:"})," Have explored Golang and authentication, explored about\nObligations but cannot understand the database and endpoints needed.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav will share how to create obligations and some samples. Discussion on\nendpoints will follow later."}),"\n",(0,i.jsxs)(n.li,{children:["Anupam: Will there be separate application for LaaS and OaaS? It should be\ndifferent.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Start with authentication using basic auth, later will use tokens."}),"\n",(0,i.jsx)(n.li,{children:"DB will be PostgreSQL"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Todo: Create project on GitHub and create tasks in the project."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Updates about 4.3.0 told about Shaheem."}),"\n",(0,i.jsx)(n.li,{children:"Discussion about community meet."}),"\n",(0,i.jsxs)(n.li,{children:["Suggestion to all is to go through the\n",(0,i.jsx)(n.a,{href:"https://youtu.be/TZqU5ZALI7U",children:"FOSSology workflow YouTube video"})," to get\nbetter idea how the tool works."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"follow-up",children:"Follow up"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Gaurav to create issues from GitHub board and Soham and Samuel to comment\non issues to assign."}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>l});var i=s(67294);const t={},o=i.createContext(t);function l(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f2106231.77fb5fd9.js b/assets/js/f2106231.77fb5fd9.js new file mode 100644 index 0000000000..00c2800fcb --- /dev/null +++ b/assets/js/f2106231.77fb5fd9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2709],{39460:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>o,frontMatter:()=>a,metadata:()=>l,toc:()=>r});var s=i(85893),t=i(11151);const a={title:"Week 1",author:"Sarita"},c=void 0,l={id:"2021/scancode/updates/2021-06-11",title:"Week 1",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-06-11.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-06-11",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-11",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-06-11.md",tags:[],version:"current",frontMatter:{title:"Week 1",author:"Sarita"},sidebar:"2021",previous:{title:"Community Bonding",permalink:"/gsoc/docs/2021/scancode/updates/2021-05-28"},next:{title:"Week 2",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-18"}},d={},r=[{value:"Coding Week 1 Meeting",id:"coding-week-1-meeting",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Current Update",id:"current-update",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"coding-week-1-meeting",children:"Coding Week 1 Meeting"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"Date:2021-06-11"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"current-update",children:"Current Update"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Working on populating database for license scanning."}),"\n",(0,s.jsx)(n.li,{children:"Trying different approach to highlight matched text on scanning a code file."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"What is pfile and why are we using it?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"We are using pfile to keep record of user's input file."}),"\n",(0,s.jsx)(n.li,{children:"It's name is derived by using query."}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sql",children:" select pfile_sha1 || '.' || pfile_md5 ||'.'|| pfile_size AS pfilename from pfile where pfile_pk=___\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"What is license_candidate in ojo databasehandler?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"license_candidate is used to temporary hold the licenses found by ojo, there can be a case when an invalid license is detected by ojo, it can't be added to license_ref table unless verified."}),"\n",(0,s.jsx)(n.li,{children:"No need to add in scancode databasehandler."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"What is groupId in ojo databasehandler?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"groupId is used for the candidate license."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"After removing +, -or-later here, why are we adding them again here?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"We don't know what suffix will be used in the license available in the database, so first we remove them from scanned license but in the next block of code we add them so that we can search in database for match."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"About text highlighting"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Problem: -","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Unable to parse the text due to double quote present inside the text string."}),"\n",(0,s.jsxs)(n.li,{children:["Using ",(0,s.jsx)("a",{href:"https://gist.github.com/itssingh/88af21dc2ff8229a7cb8bff1d5bb3cdd#file-match-cc",children:"this"})," code to highlight match text, since this code is using string buffer, it has limited size."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Solution:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["I can use escape character to escape double quote in the matched text. But then I have to do this thing again while matching ",(0,s.jsx)("a",{href:"https://gist.github.com/itssingh/88af21dc2ff8229a7cb8bff1d5bb3cdd#file-match-cc",children:" here "})," to highlight."]}),"\n",(0,s.jsx)(n.li,{children:"For the second problem, Gaurav suggested to divide the scanned result into a certain range of characters and scan for match."}),"\n",(0,s.jsxs)(n.li,{children:["Scancode default JSON output escapes these double quotes and gives valid JSON so Anupam suggested to use that and think about optimising that later. But again I can't use ",(0,s.jsx)("a",{href:"https://gist.github.com/itssingh/88af21dc2ff8229a7cb8bff1d5bb3cdd#file-match-cc",children:" this "})," code."]}),"\n",(0,s.jsx)(n.li,{children:"Michael suggested to use line number and transform that to position using number of characters present in a line. (It will be inaccurate as the code file could have irregular number of characters per line.)"}),"\n",(0,s.jsx)(n.li,{children:"I asked if I couldn't find anything working then I can talk to Phillip and update about the same."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Got clarity about populating database."}),"\n",(0,s.jsx)(n.li,{children:"Find a way for text highlighting problem."}),"\n",(0,s.jsx)(n.li,{children:"Work upon UI for license scanning before the next meeting."}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>c});var s=i(67294);const t={},a=s.createContext(t);function c(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f21dee58.fc6d3ed6.js b/assets/js/f21dee58.fc6d3ed6.js new file mode 100644 index 0000000000..9f575d8afa --- /dev/null +++ b/assets/js/f21dee58.fc6d3ed6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[8055],{3662:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var t=s(85893),i=s(11151);const o={title:"Week 8",author:"Aman Dwivedi"},l=void 0,r={id:"2021/ui/updates/aman/2021-08-03",title:"Week 8",description:"\x3c!--",source:"@site/docs/2021/ui/updates/aman/2021-08-03.md",sourceDirName:"2021/ui/updates/aman",slug:"/2021/ui/updates/aman/2021-08-03",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-03",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/ui/updates/aman/2021-08-03.md",tags:[],version:"current",frontMatter:{title:"Week 8",author:"Aman Dwivedi"},sidebar:"2021",previous:{title:"Week 7",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-07-27"},next:{title:"Week 9",permalink:"/gsoc/docs/2021/ui/updates/aman/2021-08-10"}},d={},a=[{value:"Screenshot of added pages",id:"screenshot-of-added-pages",level:2},{value:"Pull requests",id:"pull-requests",level:2}];function c(e){const n={a:"a",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Studied API architecture of Fossology"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added default group name in user self API"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Updated frontend to use the default group from API"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added Fossology version in the info endpoint"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Updated API version from V1 to V2 in frontend"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Added check for null in name initials function"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Integrated fossology version API in frontend"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"screenshot-of-added-pages",children:"Screenshot of added pages"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"footer",src:s(49950).Z+"",width:"1046",height:"66"})}),"\n",(0,t.jsx)(n.h2,{id:"pull-requests",children:"Pull requests"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/8",children:"feat(userSelf): add default group name in user self api"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/Shruti3004/FOSSology-REST-API/pull/12",children:"feat(RestApi): add fossology version in info endpoint"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/138",children:"feat(group): use default group returned from API"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/135",children:"feat(API): migrate API from v1 to v2"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/140",children:"fix(nameInitials): add null check in name initials function"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fossology/FOSSologyUI/pull/141",children:"feat(fossology-version): use fossology version from info API"})}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},49950:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/footer-38b59fcfc085ebc039f2a2a344e06b25.png"},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>l});var t=s(67294);const i={},o=t.createContext(i);function l(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f245a7fb.6631037c.js b/assets/js/f245a7fb.6631037c.js new file mode 100644 index 0000000000..56a4a585e2 --- /dev/null +++ b/assets/js/f245a7fb.6631037c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6991],{9235:s=>{s.exports=JSON.parse('{"tag":{"label":"Week 4","permalink":"/gsoc/docs/tags/week-4","allTagsPath":"/gsoc/docs/tags","count":1,"items":[{"id":"2022/ui/updates/krishna/2022-07-11","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2022/ui/updates/krishna/2022-07-11"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/f2d37c2d.575410dd.js b/assets/js/f2d37c2d.575410dd.js new file mode 100644 index 0000000000..7a0c2f0479 --- /dev/null +++ b/assets/js/f2d37c2d.575410dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[2258],{16908:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>h,toc:()=>c});var t=n(85893),a=n(11151);const i={title:"Week 2",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},r=void 0,h={id:"2022/atarashi/updates/2022-06-20",title:"Week 2",description:"\x3c!--",source:"@site/docs/2022/atarashi/updates/2022-06-20.md",sourceDirName:"2022/atarashi/updates",slug:"/2022/atarashi/updates/2022-06-20",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/atarashi/updates/2022-06-20.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"atarashi",permalink:"/gsoc/docs/tags/atarashi"}],version:"current",frontMatter:{title:"Week 2",author:"Sushant Kumar",author_url:"https://github.com/its-sushant",author_image_url:"https://avatars.githubusercontent.com/u/76658675?v=4",tags:["gsoc22","atarashi"]},sidebar:"2022",previous:{title:"Week 1",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-13"},next:{title:"Week 3",permalink:"/gsoc/docs/2022/atarashi/updates/2022-06-27"}},l={},c=[{value:"Meeting 4",id:"meeting-4",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function o(e){const s={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(June 23rd, 2022)"})}),"\n",(0,t.jsx)(s.p,{children:"GSOC 2022 weekly update"}),"\n",(0,t.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com",children:"Katharina Ettinger"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"discussions",children:"Discussions"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Implemented ",(0,t.jsx)(s.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html",children:"SGDClassifier"}),"\non the dataset and got the accuracy of ",(0,t.jsx)(s.strong,{children:"55 percent"}),"."]}),"\n",(0,t.jsx)(s.p,{children:"Total files scanned = 100,\nSuccessfully matched = 55"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:"++++++++++++++++++ Result ++++++++++++++++++\n++++++++++++++++++++++++++++++++++++++++++++\n---\x3e Total time elapsed: 6.29 Seconds <---\n---\x3e Accuracy: 55.0% <---\n++++++++++++++++++++++++++++++++++++++++++++\n++++++++++++++++++++++++++++++++++++++++++++\n"})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Also the accuracy of previously implemented ",(0,t.jsx)(s.a,{href:"https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html",children:"LogisticRegression"})," is increased to ",(0,t.jsx)(s.strong,{children:"63 percent"}),"."]}),"\n",(0,t.jsx)(s.p,{children:"Total files scanned = 100,\nSuccessfully matched = 63"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:"++++++++++++++++++ Result ++++++++++++++++++\n++++++++++++++++++++++++++++++++++++++++++++\n---\x3e Total time elapsed: 4.19 Seconds <---\n---\x3e Accuracy: 63.0% <---\n++++++++++++++++++++++++++++++++++++++++++++\n++++++++++++++++++++++++++++++++++++++++++++\n"})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Raised one ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation/pull/4",children:"PR"}),"\non ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva"})," to add the\ntested model of Logistic Regression."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Will implement sklearn's Linear support vector machine on the\n",(0,t.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"dataset"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:["And will raise prs for the implemented model and their agents on both\n",(0,t.jsx)(s.a,{href:"https://github.com/fossology/Minerva-Dataset-Generation",children:"Minerva"})," and\n",(0,t.jsx)(s.a,{href:"https://github.com/fossology/atarashi",children:"Atarashi"})," repository in upcoming days."]}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>h,a:()=>r});var t=n(67294);const a={},i=t.createContext(a);function r(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function h(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f429ef64.ec72415e.js b/assets/js/f429ef64.ec72415e.js new file mode 100644 index 0000000000..9b8d7f9716 --- /dev/null +++ b/assets/js/f429ef64.ec72415e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3367],{47375:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>r,toc:()=>l});var s=n(85893),o=n(11151);const c={title:"Week9",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},i=void 0,r={id:"2022/project/updates/2022-08-04",title:"Week9",description:"\x3c!--",source:"@site/docs/2022/project/updates/2022-08-04.md",sourceDirName:"2022/project/updates",slug:"/2022/project/updates/2022-08-04",permalink:"/gsoc/docs/2022/project/updates/2022-08-04",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/project/updates/2022-08-04.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"project",permalink:"/gsoc/docs/tags/project"}],version:"current",frontMatter:{title:"Week9",author:"Feng Wenhan",author_url:"https://github.com/fwhdzh",author_image_url:"https://avatars.githubusercontent.com/u/43179325?v=4",tags:["gsoc22","project"]},sidebar:"2022",previous:{title:"Week8",permalink:"/gsoc/docs/2022/project/updates/2022-07-28"},next:{title:"Week10",permalink:"/gsoc/docs/2022/project/updates/2022-08-11"}},a={},l=[{value:"Meeting 10",id:"meeting-10",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function u(e){const t={em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"meeting-10",children:"Meeting 10"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"(August 4th, 2022)"})}),"\n",(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsx)(t.p,{children:"There is no attendees list available."}),"\n",(0,s.jsx)(t.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsx)(t.p,{children:"I am still studying the code about uploading a file to a folder. It is a little complicated.\nMentors give me much encouragement. They share me the article of how to use XDebug to debug php project. They also answer my many questions to help me boost my work."}),"\n",(0,s.jsx)(t.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I will still try to implement the function of upload a file to a certain project in the next week."}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>i});var s=n(67294);const o={},c=s.createContext(o);function i(e){const t=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f52ce5cf.d61ee33b.js b/assets/js/f52ce5cf.d61ee33b.js new file mode 100644 index 0000000000..ebd120170a --- /dev/null +++ b/assets/js/f52ce5cf.d61ee33b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1199],{41047:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>h,metadata:()=>l,toc:()=>a});var t=n(85893),i=n(11151);const h={sidebar_position:7,title:"Week 7"},r=void 0,l={id:"2022/minutes/14-07-2022",title:"Week 7",description:"\x3c!--",source:"@site/docs/2022/minutes/14-07-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/14-07-2022",permalink:"/gsoc/docs/2022/minutes/14-07-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/14-07-2022.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Week 7"},sidebar:"2022",previous:{title:"Week 6",permalink:"/gsoc/docs/2022/minutes/07-07-2022"},next:{title:"Week 8",permalink:"/gsoc/docs/2022/minutes/21-07-2022"}},o={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const s={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 14-07-2022."}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"We are currently heading towards the first results phase and we see that the most of the students are lagging on what they have estimated. As mentors and admins, We also see that what you have promised and what you delivered. Please dedicate some more time so that you can finish what is lagging."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Made changes on the pull request of Minerva project. Created a agent with PM25 Transformer which gave accuracy of 67%. PM25 has a apache license for which we have to search for a alternative."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Demo about the changes on concept of project. Now will work on unlink content page and move or copy page. And make the current pages dynamic.."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Will add Ignore syntax for the test data pages and clarified few questions with mentors. Also working on regular expression of the second part."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Demo on current implementation. I tried to get license as we discussed in the yesterday's meet. Once I finish the license and then I can get the part and attributions, if these 3 are done, the entire patch will be ready to send back to the data. I also created the API request."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Started working on REST API. After fixing the SSH issue on my side. Also contributed a PR for adding a User Via Rest. As suggested by Gaurav need to simplify/refactor the add user function. Currently working on edit User."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Last week I have worked on jobs endpoint also changes as requested by mentors. Currently the pull request is under review. Also the PR which fixes the columns in showjobs page."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Backend contributions:","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Testing all the APIs i've been working on."}),"\n",(0,t.jsxs)(s.li,{children:["Listing deletable groups API: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2247",children:"https://github.com/fossology/fossology/pull/2247"})]}),"\n",(0,t.jsxs)(s.li,{children:["Getting group members with respective permissions API: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2251",children:"https://github.com/fossology/fossology/pull/2251"})]}),"\n",(0,t.jsxs)(s.li,{children:["Delete Group API: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2244",children:"https://github.com/fossology/fossology/pull/2244"})]}),"\n",(0,t.jsx)(s.li,{children:"It was my first time to work on tests in Slim flamework , so they are not passing as expected."}),"\n",(0,t.jsx)(s.li,{children:"by the moment. But i am going to try improving them this week."}),"\n",(0,t.jsxs)(s.li,{children:["Released a new REST API to change the user permission in the particular group: ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2259",children:"https://github.com/fossology/fossology/pull/2259"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["Frontend Contributions:","\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Created and integrated DELETE GROUP PAGE. ",(0,t.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/241",children:"https://github.com/fossology/FOSSologyUI/pull/241"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>r});var t=n(67294);const i={},h=t.createContext(i);function r(e){const s=t.useContext(h);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(h.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f56a1479.d4e7ac7d.js b/assets/js/f56a1479.d4e7ac7d.js new file mode 100644 index 0000000000..eda5112eac --- /dev/null +++ b/assets/js/f56a1479.d4e7ac7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9933],{21785:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var s=t(85893),i=t(11151);const r={title:"Week 2",author:"Kaushlendra"},o="Coding Week 2 Meeting",a={id:"2021/copyrights/updates/2021-06-15",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/copyrights/updates/2021-06-15.md",sourceDirName:"2021/copyrights/updates",slug:"/2021/copyrights/updates/2021-06-15",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-15",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/copyrights/updates/2021-06-15.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Kaushlendra"},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-07"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/copyrights/updates/2021-06-22"}},l={},c=[{value:"Attendees",id:"attendees",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Week 2 Progress",id:"week-2-progress",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",h1:"h1",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-2-meeting",children:"Coding Week 2 Meeting"}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Implementation of the First level of checks on the calculated NER and POS_TAGS"}),"\n",(0,s.jsx)(n.li,{children:"Implementation of text normalization to improve the timings. Lemmatization and removing of punctuations."}),"\n",(0,s.jsx)(n.li,{children:"Implementing the checks in such a way as to get maximum results."}),"\n",(0,s.jsx)(n.li,{children:"Going through documentation of other libraries to be more precise with the efficiency."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"week-2-progress",children:"Week 2 Progress"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Lemmatization, Stopwords removing has been implemented on the text."}),"\n",(0,s.jsx)(n.li,{children:"NER and POS Tagging pre-trained models' result has been used to figure out a relation that can be used as a probable filter."}),"\n",(0,s.jsx)(n.li,{children:"After implementing the first level of check the resulting indexes are being noted into a List which can further be utilised to fetch the exact statements."}),"\n",(0,s.jsx)(n.li,{children:"Wiki has been Updated"}),"\n",(0,s.jsx)(n.li,{children:"The results are varying with different versions of Spacy**, 726 hits on the 3+ version and 749 on the 2+ version."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"https://gist.github.com/Kaushl2208/e7962f6f895912246a0bd813bba399ed",children:"Collaboratory Gist"})," can be visited."]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsx)(n.p,{children:"Understanding the results possessed by the few techniques implemented."})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f5a24552.677a9161.js b/assets/js/f5a24552.677a9161.js new file mode 100644 index 0000000000..c27f2e3701 --- /dev/null +++ b/assets/js/f5a24552.677a9161.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7955],{36530:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var i=s(85893),t=s(11151);const o={title:"Week 2",author:"Sarita"},c=void 0,l={id:"2021/scancode/updates/2021-06-18",title:"Week 2",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-06-18.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-06-18",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-06-18.md",tags:[],version:"current",frontMatter:{title:"Week 2",author:"Sarita"},sidebar:"2021",previous:{title:"Week 1",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-11"},next:{title:"Week 3",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-22"}},r={},a=[{value:"Coding Week 2 Meeting",id:"coding-week-2-meeting",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 1 Progress",id:"week-1-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3}];function d(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"coding-week-2-meeting",children:"Coding Week 2 Meeting"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Date:2021-06-18"})}),"\n",(0,i.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"week-1-progress",children:"Week 1 Progress"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Able to escape double quote and get a valid JSON output for matched license text. Gist ",(0,i.jsx)("a",{href:"https://gist.github.com/itssingh/6590e3e560c895aba9a6b9f6e6c7656d#file-license_template-html-L14",children:" link "})," to the code."]}),"\n",(0,i.jsxs)(n.li,{children:["Text highlighting for license highlighting is working. Gist ",(0,i.jsx)("a",{href:"https://gist.github.com/itssingh/c0bc32b2895ae67540d8eeabdb4e418b",children:" link "})," to code."]}),"\n",(0,i.jsx)(n.li,{children:"UI for license scanning is working fine."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ModuleNotFoundError: No module named 'scancode'"})," Gaurav suggested to install scancode with root privilege."]}),"\n",(0,i.jsx)(n.li,{children:"Tested database queries, working but unless UI won't work can't say if it'll work for scancode or not."}),"\n",(0,i.jsx)(n.li,{children:"FOSSology uses python with later version than 3.6 which is required for scancode. Gaurav said we can make python3.6 as default version for fossology but for now make scancode installation working on my local system and we'll discuss about the same later."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Fixing bug for license scanning. Checkout the ",(0,i.jsx)("a",{href:"https://github.com/itssingh/fossology/tree/feat/newagent%2Fscancode-toolkit",children:" code "}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Text highlighting"})," problem solved I'll try to integrate this before next meet on friday."]}),"\n",(0,i.jsx)(n.li,{children:"Once done with license scanning, I'll start writing Unit test for scancode agent and UI testing."}),"\n",(0,i.jsx)(n.li,{children:"There is a meeting on coming Tuesday."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>c});var i=s(67294);const t={},o=i.createContext(t);function c(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f6effec3.06a1480a.js b/assets/js/f6effec3.06a1480a.js new file mode 100644 index 0000000000..66195eafaa --- /dev/null +++ b/assets/js/f6effec3.06a1480a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6088],{85095:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var o=t(85893),s=t(11151);const i={title:"Week 22",author:"Abdelrahman Jamal"},r=void 0,l={id:"2023/copyrights/updates/2023-10-25",title:"Week 22",description:"\x3c!--",source:"@site/docs/2023/copyrights/updates/2023-10-25.md",sourceDirName:"2023/copyrights/updates",slug:"/2023/copyrights/updates/2023-10-25",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/copyrights/updates/2023-10-25.md",tags:[],version:"current",frontMatter:{title:"Week 22",author:"Abdelrahman Jamal"},sidebar:"2023",previous:{title:"Week 21",permalink:"/gsoc/docs/2023/copyrights/updates/2023-10-18"},next:{title:"Introduction",permalink:"/gsoc/docs/2023/rest/"}},a={},c=[{value:"Attendees:",id:"attendees",level:2},{value:"Updates:",id:"updates",level:2},{value:"Documentation Overhaul",id:"documentation-overhaul",level:3},{value:"Final GSoC Report",id:"final-gsoc-report",level:3},{value:"Conclusion and Further Plans:",id:"conclusion-and-further-plans",level:2},{value:"Final Touches",id:"final-touches",level:3}];function d(e){const n={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:(0,o.jsx)(n.em,{children:"(October,25,2023)"})}),"\n",(0,o.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/Hero2323",children:"Abdelrahman"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"updates",children:"Updates:"}),"\n",(0,o.jsx)(n.h3,{id:"documentation-overhaul",children:"Documentation Overhaul"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Completed updating the weekly documentation that had been previously overlooked. Also, I revamped the document styling and updated previous content to enhance clarity."}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"final-gsoc-report",children:"Final GSoC Report"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["The final GSoC report has been penned and is currently pending mentor approval. It can be found ",(0,o.jsx)(n.a,{href:"https://github.com/Hero2323/GSoC-2023",children:"here"})]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans:"}),"\n",(0,o.jsx)(n.h3,{id:"final-touches",children:"Final Touches"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"I'll focus on finalizing any remaining code documentation, improving PR documentation, and the decluttering model wherever feasible."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var o=t(67294);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f7a7bc28.262fbdac.js b/assets/js/f7a7bc28.262fbdac.js new file mode 100644 index 0000000000..40500f05c9 --- /dev/null +++ b/assets/js/f7a7bc28.262fbdac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4548],{74214:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var s=i(85893),t=i(11151);const r={title:"Week 10",author:"Omar AbdelSamea"},l="Coding Week 10",d={id:"2021/microservice/updates/2021-08-17",title:"Week 10",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-08-17.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-08-17",permalink:"/gsoc/docs/2021/microservice/updates/2021-08-17",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-08-17.md",tags:[],version:"current",frontMatter:{title:"Week 10",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 9",permalink:"/gsoc/docs/2021/microservice/updates/2021-08-03"},next:{title:"Setup",permalink:"/gsoc/docs/2021/microservice/setup"}},o={},c=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"load balancing",id:"load-balancing",level:2},{value:"End of the week results",id:"end-of-the-week-results",level:2}];function a(e){const n={h1:"h1",h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"coding-week-10",children:"Coding Week 10"}),"\n",(0,s.jsx)(n.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,s.jsx)(n.h3,{id:"organizer",children:"Organizer"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Anupam Ghosh"}),"\n",(0,s.jsx)(n.li,{children:"Vasudev"}),"\n",(0,s.jsx)(n.li,{children:"Ayush Bharadwaj"}),"\n",(0,s.jsx)(n.li,{children:"Shreya Singh"}),"\n",(0,s.jsx)(n.li,{children:"Kaushlendra Pratap Singh"}),"\n",(0,s.jsx)(n.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Discussed load balancing algorithm of headless services and comparing to service like ingress."}),"\n",(0,s.jsx)(n.li,{children:"Presented adding fossology.conf to etcd."}),"\n",(0,s.jsx)(n.li,{children:"Decided to discuss the integration of microservice project in fossology repo next week."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"load-balancing",children:"load balancing"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The load balancing algorithm used with headless services is DNS round robin and to use more advanced load balancing a service like ingress should be used as it provide more load balancing algorithm based on specfic specs."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Added installation instructions"}),"\n",(0,s.jsx)(n.li,{children:"Finalised db conf to etcd"}),"\n",(0,s.jsx)(n.li,{children:"Added what left to be done after GSoC"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>d,a:()=>l});var s=i(67294);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f7df880f.d38f1d77.js b/assets/js/f7df880f.d38f1d77.js new file mode 100644 index 0000000000..b7d83a7d69 --- /dev/null +++ b/assets/js/f7df880f.d38f1d77.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4958],{77403:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>h,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var i=t(85893),n=t(11151);const r={title:"Week 6",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},h=void 0,o={id:"2022/reuse/updates/2022-07-18",title:"Week 6",description:"\x3c!--",source:"@site/docs/2022/reuse/updates/2022-07-18.md",sourceDirName:"2022/reuse/updates",slug:"/2022/reuse/updates/2022-07-18",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-18",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/reuse/updates/2022-07-18.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"reuse",permalink:"/gsoc/docs/tags/reuse"}],version:"current",frontMatter:{title:"Week 6",author:"Rohit Pandey",author_url:"https://github.com/rohitpandey49",author_image_url:"https://avatars.githubusercontent.com/u/80946926?v=4",tags:["gsoc22","reuse"]},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-11"},next:{title:"Week 7",permalink:"/gsoc/docs/2022/reuse/updates/2022-07-25"}},a={},l=[{value:"Meeting 14",id:"meeting-14",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Discussions/Updates",id:"discussionsupdates",level:3},{value:"Meeting 15",id:"meeting-15",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions/Updates",id:"discussionsupdates-1",level:3}];function d(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"meeting-14",children:"Meeting 14"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(July 19th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSoC 2022 Project Discussions - REUSE"}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussionsupdates",children:"Discussions/Updates"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["I raised two Pull Requests ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2263",children:"#2263"})," and ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2264",children:"#2264"})," for the REUSE standard. In PR #2264, REUSE-IgnoreStart and REUSE-IgnoreEnd in testdata files to ignore the contents of files."]}),"\n",(0,i.jsx)(s.li,{children:"Worked on the Regex solution for SPDX Copyright identifier."}),"\n",(0,i.jsxs)(s.li,{children:["For the GSoC project update, I've created a Github ",(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49/GSoC22-Fossology-REUSE",children:"repository"})," and shown it to the mentors for their feedback."]}),"\n",(0,i.jsxs)(s.li,{children:["On Medium, I wrote a ",(0,i.jsx)(s.a,{href:"https://medium.com/@rohit-pandey/accepted-for-gsoc22-with-fossology-eddebf25f8ee",children:"blog"})," about my GSoC preparation journey."]}),"\n",(0,i.jsx)(s.li,{children:"Several doubts on copyright agent clarified with mentors."}),"\n",(0,i.jsx)(s.li,{children:"Mentors provided guidance on how to copy copyright findings of the .license file to the associated files."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-15",children:"Meeting 15"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"(July 21th, 2022)"})}),"\n",(0,i.jsx)(s.p,{children:"GSoC 2022 weekly update"}),"\n",(0,i.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/vasudevmaduri",children:"Vasudev Maduri"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"discussionsupdates-1",children:"Discussions/Updates"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Last week, I raised two Pull Requests ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2263",children:"#2263"})," and ",(0,i.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2264",children:"#2264"})," for the REUSE standard and created regex solution for the SPDX Copyright identifier."]}),"\n",(0,i.jsx)(s.li,{children:"Few doubts on reso agent clarified with mentors."}),"\n",(0,i.jsx)(s.li,{children:"In the current week, I will work on second part of the project and documentation."}),"\n"]})]})}function c(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>h});var i=t(67294);const n={},r=i.createContext(n);function h(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:h(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f80c10fe.7f71b24a.js b/assets/js/f80c10fe.7f71b24a.js new file mode 100644 index 0000000000..3aa521338b --- /dev/null +++ b/assets/js/f80c10fe.7f71b24a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4334],{58928:s=>{s.exports=JSON.parse('{"tag":{"label":"ci/cd","permalink":"/gsoc/docs/tags/ci-cd","allTagsPath":"/gsoc/docs/tags","count":10,"items":[{"id":"2021/buildsystem/updates/2021-05-28","title":"Community Bonding","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-05-28"},{"id":"2021/buildsystem/updates/2021-06-11","title":"Week 1","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-11"},{"id":"2021/buildsystem/updates/2021-08-13","title":"Week 10","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-13"},{"id":"2021/buildsystem/updates/2021-06-18","title":"Week 2","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-18"},{"id":"2021/buildsystem/updates/2021-06-22","title":"Week 3","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-22"},{"id":"2021/buildsystem/updates/2021-06-29","title":"Week 4","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-06-29"},{"id":"2021/buildsystem/updates/2021-07-09","title":"Week 5","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-09"},{"id":"2021/buildsystem/updates/2021-07-23","title":"Week 7","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-23"},{"id":"2021/buildsystem/updates/2021-07-30","title":"Week 8","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-07-30"},{"id":"2021/buildsystem/updates/2021-08-06","title":"Week 9","description":"\x3c!--","permalink":"/gsoc/docs/2021/buildsystem/updates/2021-08-06"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/f8db2e1d.c81286f6.js b/assets/js/f8db2e1d.c81286f6.js new file mode 100644 index 0000000000..db0ed5e614 --- /dev/null +++ b/assets/js/f8db2e1d.c81286f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[774],{41692:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>n,frontMatter:()=>l,metadata:()=>r,toc:()=>h});var o=s(85893),i=s(11151);const l={title:"Week 2 & 3",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},d=void 0,r={id:"2023/rest/updates/soham/2023-06-08",title:"Week 2 & 3",description:"\x3c!--",source:"@site/docs/2023/rest/updates/soham/2023-06-08.md",sourceDirName:"2023/rest/updates/soham",slug:"/2023/rest/updates/soham/2023-06-08",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-08",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/soham/2023-06-08.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 2 & 3",author:"Soham Banerjee",author_url:"https://github.com/soham4abc",author_image_url:"https://avatars.githubusercontent.com/u/63705023?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 1",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-01"},next:{title:"Week 4",permalink:"/gsoc/docs/2023/rest/updates/soham/2023-06-27"}},c={},h=[{value:"Activities",id:"activities",level:2},{value:"Screenshots",id:"screenshots",level:3},{value:"1. Get copyrights for file response <code>/file/upload/{UploadId}/item/{ItemId}/copyrights</code>",id:"1-get-copyrights-for-file-response-fileuploaduploadiditemitemidcopyrights",level:4},{value:"2. Update copyrights for file response <code>/file/upload/{Upload_id}/item/{Item_id}/copyright/{Copyright_hash}</code>",id:"2-update-copyrights-for-file-response-fileuploadupload_iditemitem_idcopyrightcopyright_hash",level:4},{value:"3. Delete copyrights for file response <code>/file/upload/<uploadId>/item/<ItemId>/copyright/<Hash></code>",id:"3-delete-copyrights-for-file-response-fileuploaduploadiditemitemidcopyrighthash",level:4},{value:"Next Week's Expectations",id:"next-weeks-expectations",level:2}];function a(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for the file copyright info. ",(0,o.jsx)(t.code,{children:"GET"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/copyrights"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2475",children:"#2475"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for the file copyright delete. ",(0,o.jsx)(t.code,{children:"DELETE"})," ",(0,o.jsx)(t.code,{children:"/file/upload/<uploadId>/item/<ItemId>/copyright/<Hash>"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2478",children:"#2478"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Issued Pull Request for the file copyright update. ",(0,o.jsx)(t.code,{children:"PUT"})," ",(0,o.jsx)(t.code,{children:"/file/upload/{Upload_id}/item/{Item_id}/copyright/{Copyright_hash}"}),": ",(0,o.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2479",children:"#2479"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"screenshots",children:"Screenshots"}),"\n",(0,o.jsxs)(t.h4,{id:"1-get-copyrights-for-file-response-fileuploaduploadiditemitemidcopyrights",children:["1. Get copyrights for file response ",(0,o.jsx)(t.code,{children:"/file/upload/{UploadId}/item/{ItemId}/copyrights"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"get-copyrights-file",src:s(49523).Z+"",width:"934",height:"559"})}),"\n",(0,o.jsxs)(t.h4,{id:"2-update-copyrights-for-file-response-fileuploadupload_iditemitem_idcopyrightcopyright_hash",children:["2. Update copyrights for file response ",(0,o.jsx)(t.code,{children:"/file/upload/{Upload_id}/item/{Item_id}/copyright/{Copyright_hash}"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"update-copyrights-file",src:s(73853).Z+"",width:"828",height:"574"})}),"\n",(0,o.jsxs)(t.h4,{id:"3-delete-copyrights-for-file-response-fileuploaduploadiditemitemidcopyrighthash",children:["3. Delete copyrights for file response ",(0,o.jsx)(t.code,{children:"/file/upload/<uploadId>/item/<ItemId>/copyright/<Hash>"})]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"delete-copyrights-file",src:s(77500).Z+"",width:"778",height:"381"})}),"\n",(0,o.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next Week's Expectations"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Fix failing unit tests for the newly added endpoints."}),"\n",(0,o.jsx)(t.li,{children:"Discuss with mentors how to avoid the possible Merge conflicts resulted by redundancy of PRs."}),"\n",(0,o.jsx)(t.li,{children:"Move on to the next module of API development."}),"\n"]})]})}function n(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},77500:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/deletecopyright-f8fee4567f573cc229c80f21e171a255.png"},49523:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/getcopyrights-06aeccd55b70f6be24ba4174aafec7a2.png"},73853:(e,t,s)=>{s.d(t,{Z:()=>o});const o=s.p+"assets/images/updatecopyright-d1f678e0ef39b159041367853a019142.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>d});var o=s(67294);const i={},l=o.createContext(i);function d(e){const t=o.useContext(l);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),o.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fa19280c.ba30b19c.js b/assets/js/fa19280c.ba30b19c.js new file mode 100644 index 0000000000..675d886b41 --- /dev/null +++ b/assets/js/fa19280c.ba30b19c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6869],{46906:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var i=t(85893),s=t(11151);const o={sidebar_position:1,title:"Introduction",slug:"/2024/spdx30/"},r=void 0,l={id:"2024/spdx30/index",title:"Introduction",description:"\x3c!--",source:"@site/docs/2024/spdx30/index.md",sourceDirName:"2024/spdx30",slug:"/2024/spdx30/",permalink:"/gsoc/docs/2024/spdx30/",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx30/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/2024/spdx30/"},sidebar:"2024",previous:{title:"Week 7",permalink:"/gsoc/docs/2024/license-detection/updates/2024-07-11"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/spdx30/updates/2024-05-07"}},d={},a=[{value:"Author",id:"author",level:2},{value:"Contact info",id:"contact-info",level:2},{value:"Project title",id:"project-title",level:2},{value:"What's the project about?",id:"whats-the-project-about",level:2},{value:"What should be done?",id:"what-should-be-done",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"author",children:"Author"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/abhi-kumar17871",children:"Abhishek Kumar"})}),"\n",(0,i.jsx)(n.h2,{id:"contact-info",children:"Contact info"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:akumar17871@gmail.com",children:"Email"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.linkedin.com/in/akumar17871/",children:"LinkedIn"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"project-title",children:"Project title"}),"\n",(0,i.jsx)(n.p,{children:"Support SPDX 3.0 Reports"}),"\n",(0,i.jsx)(n.h2,{id:"whats-the-project-about",children:"What's the project about?"}),"\n",(0,i.jsx)(n.p,{children:"This project aims to support the generation, parsing, and interpreting of SPDX 3.0 reports. Currently, FOSSology uses SPDX 2.3 for report generation and ingestion, but with the introduction of SPDX 3.0, it has become the industry standard. Upgrading to SPDX 3.0 will address the limitations of the older version, such as compatibility issues and difficulties in integrating with other tools."}),"\n",(0,i.jsx)(n.p,{children:"In this project, I will be working on the generation of SPDX 3.0 reports in multiple formats, implementing SPDX 3.0 profiles, and then the ingestion of these reports."}),"\n",(0,i.jsx)(n.h2,{id:"what-should-be-done",children:"What should be done?"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Support generation of SPDX 3.0 reports in multiple formats"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Include support for JSON-LD, plain JSON, tag",":value",", RDF, and CSV formats to meet diverse needs and use cases."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Support of SPDX 3.0 profiles"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Begin with Core, Software, and Licensing profiles."}),"\n",(0,i.jsx)(n.li,{children:"Expand to additional profiles such as Lite if possible."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Support ingestion of SPDX 3.0 reports"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Ensure FOSSology can read and process SPDX 3.0 reports for seamless integration and compliance."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Improve compatibility and standardization"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Ensure smoother integration and compliance with industry standards."}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>r});var i=t(67294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fa6aa0c2.317eea67.js b/assets/js/fa6aa0c2.317eea67.js new file mode 100644 index 0000000000..d4a595afab --- /dev/null +++ b/assets/js/fa6aa0c2.317eea67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5504],{41843:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>r,default:()=>l,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=s(85893),o=s(11151);const i={title:"Week 8",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},r=void 0,d={id:"2023/rest/updates/samuel/2023-07-20",title:"Week 8",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-07-20.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-07-20",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-20",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-07-20.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 8",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 7",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-13"},next:{title:"Week 9",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-27"}},h={},c=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Get the database contents for the dashboard overview API <code>/overview/database/contents</code>",id:"1-get-the-database-contents-for-the-dashboard-overview-api-overviewdatabasecontents",level:4},{value:"2. Get the database metrics for the dashboard overview API <code>/overview/database/metrics</code>",id:"2-get-the-database-metrics-for-the-dashboard-overview-api-overviewdatabasemetrics",level:4},{value:"3. Get the active queries for the dashboard overview API <code>/overview/database/queries</code>",id:"3-get-the-active-queries-for-the-dashboard-overview-api-overviewdatabasequeries",level:4},{value:"4. Get the disk space usage for the dashboard overview API <code>/overview/disk/usage</code>",id:"4-get-the-disk-space-usage-for-the-dashboard-overview-api-overviewdiskusage",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function n(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"activities",children:"Activities"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Added the REST API to get the database contents for the dashboard overview: ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2530",children:"#2530"})]}),"\n",(0,a.jsxs)(t.li,{children:["Added the REST API to get the database metrics for the dashboard overview: ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2532",children:"#2532"})]}),"\n",(0,a.jsxs)(t.li,{children:["Created the REST API to get the active queries for the dashboard overview: ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2533",children:"#2533"})]}),"\n",(0,a.jsxs)(t.li,{children:["Added the REST API to get the disk space usage for the dashboard overview: ",(0,a.jsx)(t.a,{href:"https://github.com/fossology/fossology/pull/2534",children:"#2534"})]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,a.jsxs)(t.h4,{id:"1-get-the-database-contents-for-the-dashboard-overview-api-overviewdatabasecontents",children:["1. Get the database contents for the dashboard overview API ",(0,a.jsx)(t.code,{children:"/overview/database/contents"})]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"get-database-contents",src:s(68518).Z+"",width:"1536",height:"770"})}),"\n",(0,a.jsxs)(t.h4,{id:"2-get-the-database-metrics-for-the-dashboard-overview-api-overviewdatabasemetrics",children:["2. Get the database metrics for the dashboard overview API ",(0,a.jsx)(t.code,{children:"/overview/database/metrics"})]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"get-database-metrics",src:s(30034).Z+"",width:"1487",height:"448"})}),"\n",(0,a.jsxs)(t.h4,{id:"3-get-the-active-queries-for-the-dashboard-overview-api-overviewdatabasequeries",children:["3. Get the active queries for the dashboard overview API ",(0,a.jsx)(t.code,{children:"/overview/database/queries"})]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"get-active-queries",src:s(36447).Z+"",width:"1491",height:"490"})}),"\n",(0,a.jsxs)(t.h4,{id:"4-get-the-disk-space-usage-for-the-dashboard-overview-api-overviewdiskusage",children:["4. Get the disk space usage for the dashboard overview API ",(0,a.jsx)(t.code,{children:"/overview/disk/usage"})]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"get-disk-usage",src:s(16593).Z+"",width:"1245",height:"514"})}),"\n",(0,a.jsx)(t.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Add the REST API to get the PHP-Info for the dashboard overview."}),"\n",(0,a.jsx)(t.li,{children:"Add the REST API to get all server jobs for the dashboard overview."}),"\n",(0,a.jsx)(t.li,{children:"Add the REST API to get the summary statistics for all jobs."}),"\n",(0,a.jsx)(t.li,{children:"Add the REST API to get the scheduler options for a given operation."}),"\n"]})]})}function l(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(n,{...e})}):n(e)}},36447:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/get_active_queries-7fb888e122a8a1ba139c29808536e636.png"},68518:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/get_database_contents-5d72acf66a6653da3e48fca364a01a18.png"},30034:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/get_database_metrics-193353e0a5424e32bfb9f381fad86ea1.png"},16593:(e,t,s)=>{s.d(t,{Z:()=>a});const a=s.p+"assets/images/get_disk_usage-0eb13fef53bee2ff70b4c18d95ef66f7.png"},11151:(e,t,s)=>{s.d(t,{Z:()=>d,a:()=>r});var a=s(67294);const o={},i=a.createContext(o);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fc400b87.4278e687.js b/assets/js/fc400b87.4278e687.js new file mode 100644 index 0000000000..c08dad47a9 --- /dev/null +++ b/assets/js/fc400b87.4278e687.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4959],{51419:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>r,toc:()=>o});var s=i(85893),t=i(11151);const c={title:"Week 5",author:"Abdelrahman Jamal"},a="Meeting 5",r={id:"2024/license-detection/updates/2024-06-27",title:"Week 5",description:"\x3c!--",source:"@site/docs/2024/license-detection/updates/2024-06-27.md",sourceDirName:"2024/license-detection/updates",slug:"/2024/license-detection/updates/2024-06-27",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-27",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/license-detection/updates/2024-06-27.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Abdelrahman Jamal"},sidebar:"2024",previous:{title:"Week 4",permalink:"/gsoc/docs/2024/license-detection/updates/2024-06-20"},next:{title:"Week 6",permalink:"/gsoc/docs/2024/license-detection/updates/2024-07-04"}},l={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"Discussion:",id:"discussion",level:2},{value:"Improved Semantic Search Performance",id:"improved-semantic-search-performance",level:3},{value:"License Matching Exploration",id:"license-matching-exploration",level:3},{value:"License Matching Metrics",id:"license-matching-metrics",level:3},{value:"Key Findings",id:"key-findings",level:3},{value:"Conclusions and Next Steps",id:"conclusions-and-next-steps",level:2}];function h(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"meeting-5",children:"Meeting 5"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(June 27,2024)"})}),"\n",(0,s.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsx)(n.h3,{id:"improved-semantic-search-performance",children:"Improved Semantic Search Performance"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Accuracy: Increased to nearly 100% (98.7% in the meeting, with slight discrepancies attributed to labeling errors)."}),"\n",(0,s.jsx)(n.li,{children:"Coverage: Enhanced to over 93% (potentially closer to 96% when accounting for labeling issues)."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"license-matching-exploration",children:"License Matching Exploration"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Hierarchical Approach: Attempted a two-step semantic search approach:","\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Use existing code to identify top K similar lines."}),"\n",(0,s.jsx)(n.li,{children:"Perform line-by-line semantic search against all SPDX license text lines."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Performance Issues: This approach proved computationally expensive, taking hours to process small samples."}),"\n",(0,s.jsx)(n.li,{children:"Fuzzy Matching (Post-Meeting): Explored the fuzzywuzzy library (based on Levenshtein distance) for the second step of license matching, yielding significantly improved results."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"license-matching-metrics",children:"License Matching Metrics"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Predicted License Accuracy: 68% (This indicates the percentage of files where at least one license was correctly matched.)"}),"\n",(0,s.jsx)(n.li,{children:"Predicted Licenses Covered: 62.5% (This measures the percentage of all licenses within the explored files that were correctly identified and matched.)"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"key-findings",children:"Key Findings"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Performance Breakthrough with Fuzzy Matching"}),": Switching to fuzzy matching with fuzzywuzzy significantly enhanced license matching accuracy and coverage compared to the initial hierarchical semantic search approach."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conclusions-and-next-steps",children:"Conclusions and Next Steps"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Integrate Semantic Search with LLMs: Begin combining semantic search results with LLM analysis to achieve a more comprehensive and accurate license identification solution."}),"\n",(0,s.jsx)(n.li,{children:"Refine Fuzzy Matching: Continue exploring and refining fuzzy matching parameters to further improve license matching performance."}),"\n",(0,s.jsx)(n.li,{children:"Analyze Combined Performance: Establish metrics and analyze the effectiveness of the integrated semantic search and LLM approach."}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>a});var s=i(67294);const t={},c=s.createContext(t);function a(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fcdf28ae.442f12c2.js b/assets/js/fcdf28ae.442f12c2.js new file mode 100644 index 0000000000..a9f2886157 --- /dev/null +++ b/assets/js/fcdf28ae.442f12c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[1098],{20888:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>c,toc:()=>o});var n=t(85893),i=t(11151);const a={title:"Week 10",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},l=void 0,c={id:"2022/ui/updates/samuel/2022-08-25",title:"Week 10",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-08-25.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-08-25",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-25",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-08-25.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 10",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 9",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-08-18"},next:{title:"Week 12",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-09-08"}},d={},o=[{value:"THIS WEEK'S CONTRIBUTIONS",id:"this-weeks-contributions",level:2},{value:"FRONTEND",id:"frontend",level:3},{value:"BACKEND",id:"backend",level:3},{value:"FIRST CASE",id:"first-case",level:4},{value:"SECOND CASE",id:"second-case",level:4},{value:"THIRD CASE",id:"third-case",level:4},{value:"NEXT WEEK'S EXPECTATIONS",id:"next-weeks-expectations",level:3}];function r(e){const s={a:"a",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"this-weeks-contributions",children:"THIS WEEK'S CONTRIBUTIONS"}),"\n",(0,n.jsx)(s.h3,{id:"frontend",children:"FRONTEND"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Made the improvements on the FOSSOlogy Maintenance page:\nI fixed the issue with the existing test cases that were causing the CI/CDs for the fossology maintenance page to fail deploying."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"backend",children:"BACKEND"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Added an API to delete ",(0,n.jsx)(s.strong,{children:"Admin License Candidate"}),":\nWith the given Id of the license Candidate in the request parameters, i can delete the license."]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"How it works:"})}),"\n",(0,n.jsx)(s.h4,{id:"first-case",children:"FIRST CASE"}),"\n",(0,n.jsxs)(s.p,{children:["In this case, the Admin-license-candidate exists, and the license-candidate will be deleted successfully.\n",(0,n.jsx)(s.img,{alt:"delete-license-candidate-case-1",src:t(39494).Z+"",width:"1861",height:"589"})]}),"\n",(0,n.jsx)(s.h4,{id:"second-case",children:"SECOND CASE"}),"\n",(0,n.jsx)(s.p,{children:"In this case, the Admin-license-candidate doesn't exist, so 404 error will be returned instead."}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"delete-license-candidate-case-2",src:t(59825).Z+"",width:"1830",height:"565"})}),"\n",(0,n.jsx)(s.h4,{id:"third-case",children:"THIRD CASE"}),"\n",(0,n.jsx)(s.p,{children:"The request is not coming from the Admin.\nThis request can only be run by the admin , else the request will fail returning 400 ERROR."}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"delete-license-candidate-case-3",src:t(10363).Z+"",width:"1814",height:"551"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Pull request:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2298",children:"feat(API): delete admin-license candidate"})]}),"\n",(0,n.jsx)(s.h3,{id:"next-weeks-expectations",children:"NEXT WEEK'S EXPECTATIONS"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"I will continue working on the APIs that are not available on the license module."}),"\n",(0,n.jsx)(s.li,{children:"I will also work on the UI of the license module."}),"\n",(0,n.jsx)(s.li,{children:"I will also continue to improve the UI of the FOSSOlogy maintenance page."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},39494:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/delete_license_case_1-39b3301efaa0e43e9ca2a25e49050888.png"},59825:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/delete_license_case_2-4066cd83afbe500bb264ba298ed999c7.png"},10363:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/delete_license_case_3-d8dc9ee65b5cf7e12ae7af985ad91572.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>c,a:()=>l});var n=t(67294);const i={},a=n.createContext(i);function l(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fcea6667.10dc4d32.js b/assets/js/fcea6667.10dc4d32.js new file mode 100644 index 0000000000..d15d8ffdf2 --- /dev/null +++ b/assets/js/fcea6667.10dc4d32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[9362],{32329:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var n=t(85893),i=t(11151);const o={title:"Week 4",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},l=void 0,r={id:"2022/ui/updates/samuel/2022-07-14",title:"Week 4",description:"\x3c!--",source:"@site/docs/2022/ui/updates/samuel/2022-07-14.md",sourceDirName:"2022/ui/updates/samuel",slug:"/2022/ui/updates/samuel/2022-07-14",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-14",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/ui/updates/samuel/2022-07-14.md",tags:[{label:"gsoc22",permalink:"/gsoc/docs/tags/gsoc-22"},{label:"react",permalink:"/gsoc/docs/tags/react"}],version:"current",frontMatter:{title:"Week 4",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc22","react"]},sidebar:"2022",previous:{title:"Week 3",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-07"},next:{title:"Week 5",permalink:"/gsoc/docs/2022/ui/updates/samuel/2022-07-21"}},c={},a=[{value:"Activities",id:"activities",level:2},{value:"Backend contributions:",id:"backend-contributions",level:3},{value:"Frontend Contributions:",id:"frontend-contributions",level:3},{value:"SOME SCREENSHOTS",id:"some-screenshots",level:3},{value:"1. CHANGE USER PERMISSION Api",id:"1-change-user-permission-api",level:4},{value:"2. DELETE GROUP PAGE",id:"2-delete-group-page",level:4},{value:"NEXT WEEK'S EXPECTATIONS",id:"next-weeks-expectations",level:3}];function u(e){const s={a:"a",em:"em",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsx)(s.h3,{id:"backend-contributions",children:"Backend contributions:"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"Testing all the APIs i've been working on:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Listing deletable groups API: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2247",children:"https://github.com/fossology/fossology/pull/2247"})]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Getting group members with respective permissions API: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2251",children:"https://github.com/fossology/fossology/pull/2251"})]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Delete Group API: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2244",children:"https://github.com/fossology/fossology/pull/2244"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"It was my first time working on tests in Slim flamework unfortunately they are not passing as expected\nby the moment. But i am going to improve them in this coming week."})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["Released a new REST API to change the user permission from a particular group: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2259",children:"https://github.com/fossology/fossology/pull/2259"})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Testing all the APIs i've been working on."}),"\n",(0,n.jsx)(s.li,{children:"Created The API to change the user's permission."}),"\n",(0,n.jsx)(s.li,{children:"Implemented the UI PAGE for delete GROUP."}),"\n",(0,n.jsx)(s.li,{children:"Created the pull request for DELETE GROUP PAGE."}),"\n",(0,n.jsx)(s.li,{children:"Created the pull request for CHANGE User Permission API."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"frontend-contributions",children:"Frontend Contributions:"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["Created and integrated DELETE GROUP PAGE. ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/FOSSologyUI/pull/241",children:"https://github.com/fossology/FOSSologyUI/pull/241"})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"some-screenshots",children:"SOME SCREENSHOTS"}),"\n",(0,n.jsx)(s.h4,{id:"1-change-user-permission-api",children:"1. CHANGE USER PERMISSION Api"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"change-user-permission-pic",src:t(37624).Z+"",width:"1920",height:"877"})}),"\n",(0,n.jsx)(s.h4,{id:"2-delete-group-page",children:"2. DELETE GROUP PAGE"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"delete-group-pic",src:t(85489).Z+"",width:"1919",height:"864"})}),"\n",(0,n.jsx)(s.h3,{id:"next-weeks-expectations",children:"NEXT WEEK'S EXPECTATIONS"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Test all the remaining APIs i've been working on."}),"\n",(0,n.jsx)(s.li,{children:"Add a confirmation pop-up before the user deletes a group."}),"\n",(0,n.jsx)(s.li,{children:"Add the REST API to remove a user from a group."}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},37624:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/change_user_perm-b8d12b284d0c3cc36a129940e7219cad.png"},85489:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/delete_group-d7acbbd3ba6d7f9381b4bad753189583.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>r,a:()=>l});var n=t(67294);const i={},o=n.createContext(i);function l(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fd55eaa5.6162dbcb.js b/assets/js/fd55eaa5.6162dbcb.js new file mode 100644 index 0000000000..20d23f5302 --- /dev/null +++ b/assets/js/fd55eaa5.6162dbcb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5430],{61972:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>d,default:()=>g,frontMatter:()=>a,metadata:()=>l,toc:()=>o});var n=t(85893),i=t(11151);const a={title:"Week 6",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},d=void 0,l={id:"2023/rest/updates/samuel/2023-07-06",title:"Week 6",description:"\x3c!--",source:"@site/docs/2023/rest/updates/samuel/2023-07-06.md",sourceDirName:"2023/rest/updates/samuel",slug:"/2023/rest/updates/samuel/2023-07-06",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2023/rest/updates/samuel/2023-07-06.md",tags:[{label:"gsoc23",permalink:"/gsoc/docs/tags/gsoc-23"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 6",author:"Samuel Dushimimana",author_url:"https://github.com/dushimsam",author_image_url:"https://avatars.githubusercontent.com/u/66276301?v=4",tags:["gsoc23","rest"]},sidebar:"2023",previous:{title:"Week 5",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-06-29"},next:{title:"Week 7",permalink:"/gsoc/docs/2023/rest/updates/samuel/2023-07-13"}},c={},o=[{value:"Activities",id:"activities",level:2},{value:"Some Screenshots",id:"some-screenshots",level:3},{value:"1. Get all agents for the upload API <code>/uploads/{id}/agents</code>",id:"1-get-all-agents-for-the-upload-api-uploadsidagents",level:4},{value:"2. Get all agents revisions for the upload API <code>/uploads/{id}/agents/revision</code>",id:"2-get-all-agents-revisions-for-the-upload-api-uploadsidagentsrevision",level:4},{value:"3. Create, Edit and Delete License Decision API <code>/uploads/{id}/item/{itemId}/licenses</code>",id:"3-create-edit-and-delete-license-decision-api--uploadsiditemitemidlicenses",level:4},{value:"4. Get all licenses' Admin-acknowledgements API <code>/licenses/adminacknowlegments</code>",id:"4-get-all-licenses-admin-acknowledgements-api-licensesadminacknowlegments",level:4},{value:"5. Crete, Edit and Toggle Admin-acknowledgements <code>/licenses/adminacknowlegments</code>",id:"5-crete-edit-and-toggle-admin-acknowledgements-licensesadminacknowlegments",level:4},{value:"6. Get all standard comments <code>/licenses/stdcomments</code>",id:"6-get-all-standard-comments-licensesstdcomments",level:4},{value:"Next week's expectations",id:"next-weeks-expectations",level:2}];function r(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Added the REST API to get all the agents for the upload: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2502",children:"#2502"})]}),"\n",(0,n.jsxs)(s.li,{children:["Added the REST API to get all the agents revisions for the upload: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2506",children:"#2506"})]}),"\n",(0,n.jsxs)(s.li,{children:["Created the REST API that merges together the request of editing, creating and deleting license decisions: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2509",children:"#2509"})]}),"\n",(0,n.jsxs)(s.li,{children:["Added the REST API to get all the licenses admin-acknowledgements: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2512",children:"#2512"})]}),"\n",(0,n.jsxs)(s.li,{children:["Added the REST API to Add, Edit & toggle admin license acknowledgement : ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2516",children:"#2516"})]}),"\n",(0,n.jsxs)(s.li,{children:["Added the REST API to retrieve all the standard comments: ",(0,n.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2517",children:"#2517"})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"some-screenshots",children:"Some Screenshots"}),"\n",(0,n.jsxs)(s.h4,{id:"1-get-all-agents-for-the-upload-api-uploadsidagents",children:["1. Get all agents for the upload API ",(0,n.jsx)(s.code,{children:"/uploads/{id}/agents"})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"get-all-agents",src:t(10963).Z+"",width:"1101",height:"749"})}),"\n",(0,n.jsxs)(s.h4,{id:"2-get-all-agents-revisions-for-the-upload-api-uploadsidagentsrevision",children:["2. Get all agents revisions for the upload API ",(0,n.jsx)(s.code,{children:"/uploads/{id}/agents/revision"})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"get-all-agents-revision",src:t(43275).Z+"",width:"1456",height:"727"})}),"\n",(0,n.jsxs)(s.h4,{id:"3-create-edit-and-delete-license-decision-api--uploadsiditemitemidlicenses",children:["3. Create, Edit and Delete License Decision API ",(0,n.jsx)(s.code,{children:"/uploads/{id}/item/{itemId}/licenses"})]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"crud-license-decision-req",src:t(57806).Z+"",width:"1428",height:"533"}),"\n",(0,n.jsx)(s.img,{alt:"crud-license-decision-res",src:t(61351).Z+"",width:"1446",height:"656"})]}),"\n",(0,n.jsxs)(s.h4,{id:"4-get-all-licenses-admin-acknowledgements-api-licensesadminacknowlegments",children:["4. Get all licenses' Admin-acknowledgements API ",(0,n.jsx)(s.code,{children:"/licenses/adminacknowlegments"})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"get-all-admin-acknowledgements",src:t(94533).Z+"",width:"1433",height:"751"})}),"\n",(0,n.jsxs)(s.h4,{id:"5-crete-edit-and-toggle-admin-acknowledgements-licensesadminacknowlegments",children:["5. Crete, Edit and Toggle Admin-acknowledgements ",(0,n.jsx)(s.code,{children:"/licenses/adminacknowlegments"})]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"crud-admin-ack-req",src:t(56521).Z+"",width:"1446",height:"607"}),"\n",(0,n.jsx)(s.img,{alt:"crud-admin-ack-res",src:t(24268).Z+"",width:"1429",height:"663"})]}),"\n",(0,n.jsxs)(s.h4,{id:"6-get-all-standard-comments-licensesstdcomments",children:["6. Get all standard comments ",(0,n.jsx)(s.code,{children:"/licenses/stdcomments"})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"get-all-stdcomments",src:t(71986).Z+"",width:"1451",height:"384"})}),"\n",(0,n.jsx)(s.h2,{id:"next-weeks-expectations",children:"Next week's expectations"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Add the REST API to Add, Edit & toggle standard-license comment."}),"\n",(0,n.jsx)(s.li,{children:"Add the REST API to search & suggest license from the reference text."}),"\n",(0,n.jsx)(s.li,{children:"Add the REST API very license as new or a variant of another license."}),"\n",(0,n.jsx)(s.li,{children:"Add the REST API to merge the license into an existing one."}),"\n",(0,n.jsx)(s.li,{children:"Add the REST APIs for Admin Dashboard overview."}),"\n"]})]})}function g(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},56521:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/crud_adminack_req-24bcc89441faa7fb3e8a6c5acecca27b.png"},24268:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/crud_adminack_res-8abc1545353d62767f67b85a43201ac7.png"},57806:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/crud_license_decision_req-d62850310f9b695698511a3ef2e100c1.png"},61351:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/crud_license_decision_res-dfbc8088a9cc84f51e36b56792ea0390.png"},94533:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/get_all_admin_acknowledgements-66aa3a64afd2539ca119d56018ab92de.png"},10963:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/get_all_agents-a11f04690ba810029d9f1cc1f35f39ce.png"},43275:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/get_all_agents_revision-d1bc7c9ae8b0d141bb6c03e68e2cbbb6.png"},71986:(e,s,t)=>{t.d(s,{Z:()=>n});const n=t.p+"assets/images/stdcomments-156bc2a7ccff7c22e656ada2ac9588b6.png"},11151:(e,s,t)=>{t.d(s,{Z:()=>l,a:()=>d});var n=t(67294);const i={},a=n.createContext(i);function d(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fd8633b3.0a4226a9.js b/assets/js/fd8633b3.0a4226a9.js new file mode 100644 index 0000000000..05e11e48c2 --- /dev/null +++ b/assets/js/fd8633b3.0a4226a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[5264],{89937:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>c});var i=n(85893),d=n(11151);const t={title:"Week 4",author:"Omar AbdelSamea"},l="Coding Week 4",r={id:"2021/microservice/updates/2021-06-29",title:"Week 4",description:"\x3c!--",source:"@site/docs/2021/microservice/updates/2021-06-29.md",sourceDirName:"2021/microservice/updates",slug:"/2021/microservice/updates/2021-06-29",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-29",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/microservice/updates/2021-06-29.md",tags:[],version:"current",frontMatter:{title:"Week 4",author:"Omar AbdelSamea"},sidebar:"2021",previous:{title:"Week 3",permalink:"/gsoc/docs/2021/microservice/updates/2021-06-22"},next:{title:"Week 5",permalink:"/gsoc/docs/2021/microservice/updates/2021-07-06"}},o={},c=[{value:"Meeting 0",id:"meeting-0",level:2},{value:"Organizer",id:"organizer",level:3},{value:"Attendees",id:"attendees",level:3},{value:"Outcomes",id:"outcomes",level:3},{value:"Meeting 1",id:"meeting-1",level:2},{value:"Organizer",id:"organizer-1",level:3},{value:"Attendees",id:"attendees-1",level:3},{value:"Outcomes",id:"outcomes-1",level:3},{value:"Using <code>kubectl</code> instead of SSH",id:"using-kubectl-instead-of-ssh",level:2},{value:"Using <code>kubectl</code> inside pod",id:"using-kubectl-inside-pod",level:3},{value:"Issues",id:"issues",level:3},{value:"Description",id:"description",level:4},{value:"Hot Fix",id:"hot-fix",level:4},{value:"End of the week results",id:"end-of-the-week-results",level:2},{value:"Diagrams",id:"diagrams",level:2},{value:"Agent-Scheduler meta agents folder",id:"agent-scheduler-meta-agents-folder",level:3}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,d.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"coding-week-4",children:"Coding Week 4"}),"\n",(0,i.jsx)(s.h2,{id:"meeting-0",children:"Meeting 0"}),"\n",(0,i.jsx)(s.h3,{id:"organizer",children:"Organizer"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"attendees",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outcomes",children:"Outcomes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Discussed the issue of meta-agents folder, currently, the scheduler looks for meta-agents in /etc/fossology/mods-enabled inside it's pod which doesn't contain any agent."}),"\n",(0,i.jsx)(s.li,{children:"As hot fix, Gaurav suggested implementing to mount mods-enabled folder to a PVC."}),"\n",(0,i.jsx)(s.li,{children:"To continue development until a final decision is taken from the mentors, all required agents will be copied to meta-agents folder inside the scheduler pod."}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,i.jsx)(s.h3,{id:"organizer-1",children:"Organizer"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Gaurav Mishra"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Ayush Bharadwaj"}),"\n",(0,i.jsx)(s.li,{children:"Klaus Gmeinwieser"}),"\n",(0,i.jsx)(s.li,{children:"Kaushlendra Singh"}),"\n",(0,i.jsx)(s.li,{children:"Shreya Pratap"}),"\n",(0,i.jsx)(s.li,{children:"Omar AbdelSamea"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outcomes-1",children:"Outcomes"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Presented how communication between the scheduler and agents will be implemented using ",(0,i.jsx)(s.code,{children:"kubectl"})," exec instead of ssh."]}),"\n",(0,i.jsx)(s.li,{children:"Tested it with fixed pod name and fixed commands and showed initial good results."}),"\n"]}),"\n",(0,i.jsxs)(s.h2,{id:"using-kubectl-instead-of-ssh",children:["Using ",(0,i.jsx)(s.code,{children:"kubectl"})," instead of SSH"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["As mentioned in this ",(0,i.jsx)(s.a,{href:"https://stackoverflow.com/q/49376513",children:"thread"})," using SSH between pods is not recommended."]}),"\n"]}),"\n",(0,i.jsxs)(s.h3,{id:"using-kubectl-inside-pod",children:["Using ",(0,i.jsx)(s.code,{children:"kubectl"})," inside pod"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["To use ",(0,i.jsx)(s.code,{children:"kubectl"})," inside pod, special permissions needs to be granted fro this pod to be able to access the resources data inside the cluster. These permissions are granted using K8s ",(0,i.jsx)(s.a,{href:"https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",children:"service account"})]}),"\n",(0,i.jsx)(s.li,{children:"Scheduler pod needs permissions so it can access pods and use exec command."}),"\n",(0,i.jsxs)(s.li,{children:["Implemented service-account for scheduler is here ",(0,i.jsx)(s.a,{href:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/k8s/service-account-scheduler.yaml",children:"https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/k8s/service-account-scheduler.yaml"})]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"issues",children:"Issues"}),"\n",(0,i.jsxs)(s.p,{children:["1- ",(0,i.jsx)(s.code,{children:'error: error loading config file "/root/.kube/config": open /root/.kube/config: permission denied'})]}),"\n",(0,i.jsx)(s.h4,{id:"description",children:"Description"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"this issue occurs as .kube folder is created by default inside the root home directory and fossy folder doesn't have permissions to access this folder"}),"\n"]}),"\n",(0,i.jsx)(s.h4,{id:"hot-fix",children:"Hot Fix"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"add o+rwx permissions to /root/.kube permission"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"end-of-the-week-results",children:"End of the week results"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Initially implemented usage of ",(0,i.jsx)(s.code,{children:"kubectl"})," instead of SSH on agent nomos with a fixed pod name and fixed command."]}),"\n",(0,i.jsxs)(s.li,{children:["Implemented multistage build for ",(0,i.jsx)(s.code,{children:"fossology:packages"})," base image bringing it down from 2.1GB to 10MB."]}),"\n",(0,i.jsxs)(s.li,{children:["Implemented service-account for scheduler to grant needed permission to run ",(0,i.jsx)(s.code,{children:"kubectl exec"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"diagrams",children:"Diagrams"}),"\n",(0,i.jsx)(s.h3,{id:"agent-scheduler-meta-agents-folder",children:"Agent-Scheduler meta agents folder"}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"image",src:n(72941).Z+"",width:"645",height:"481"})})]})}function h(e={}){const{wrapper:s}={...(0,d.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},72941:(e,s,n)=>{n.d(s,{Z:()=>i});const i=n.p+"assets/images/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9-9c6dacaae25f68e2244b4b062674161d.png"},11151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>l});var i=n(67294);const d={},t=i.createContext(d);function l(e){const s=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),i.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe019f80.13724363.js b/assets/js/fe019f80.13724363.js new file mode 100644 index 0000000000..250aeb4191 --- /dev/null +++ b/assets/js/fe019f80.13724363.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6231],{9198:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>h,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var t=s(85893),i=s(11151);const r={sidebar_position:13,title:"Week 13"},h=void 0,l={id:"2022/minutes/25-08-2022",title:"Week 13",description:"\x3c!--",source:"@site/docs/2022/minutes/25-08-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/25-08-2022",permalink:"/gsoc/docs/2022/minutes/25-08-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/25-08-2022.md",tags:[],version:"current",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"Week 13"},sidebar:"2022",previous:{title:"Week 12",permalink:"/gsoc/docs/2022/minutes/18-08-2022"}},o={},a=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function c(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 25-08-2022."}),"\n",(0,t.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/NicolasToussaint",children:"Nicolas Toussaint"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/viv9k",children:"Vivek Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Discussed FOSSology community updates."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Created a documentation report. already on last part of my project training a Model."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Worked on create, edit and delete project. Also view project page through browse."}),"\n",(0,t.jsx)(n.li,{children:"Cleaning the code so that it can be pushed and reviewed by mentors."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Absent."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on clearing status as mentors asked not to modify the existing code, So im thinking of creating seperate functions and work on it."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Working on review comments by mentors. Also worked on delete candidate license Via REST API. will create a pull request soon."}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>l,a:()=>h});var t=s(67294);const i={},r=t.createContext(i);function h(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe4c9b3e.8b24b5cf.js b/assets/js/fe4c9b3e.8b24b5cf.js new file mode 100644 index 0000000000..73a5a450b0 --- /dev/null +++ b/assets/js/fe4c9b3e.8b24b5cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[4804],{41587:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var s=i(85893),t=i(11151);const o={title:"Week 5",author:"Sarita"},d=void 0,r={id:"2021/scancode/updates/2021-07-06",title:"Week 5",description:"\x3c!--",source:"@site/docs/2021/scancode/updates/2021-07-06.md",sourceDirName:"2021/scancode/updates",slug:"/2021/scancode/updates/2021-07-06",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-06",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2021/scancode/updates/2021-07-06.md",tags:[],version:"current",frontMatter:{title:"Week 5",author:"Sarita"},sidebar:"2021",previous:{title:"Week 4",permalink:"/gsoc/docs/2021/scancode/updates/2021-06-29"},next:{title:"Week 6",permalink:"/gsoc/docs/2021/scancode/updates/2021-07-13"}},c={},a=[{value:"Coding Week 5 Meeting 1",id:"coding-week-5-meeting-1",level:2},{value:"Attendees",id:"attendees",level:3},{value:"Week 4 Progress",id:"week-4-progress",level:3},{value:"Discussions",id:"discussions",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans",level:3},{value:"Coding Week 5 Meeting 2",id:"coding-week-5-meeting-2",level:2},{value:"Attendees",id:"attendees-1",level:3},{value:"Discussions",id:"discussions-1",level:3},{value:"Integrating scancode UI with copyright UI",id:"integrating-scancode-ui-with-copyright-ui",level:3},{value:"Discussion regarding Documentation",id:"discussion-regarding-documentation",level:3},{value:"Conclusion and Further Plans",id:"conclusion-and-further-plans-1",level:3}];function l(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"coding-week-5-meeting-1",children:"Coding Week 5 Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"Date:2021-07-06"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"week-4-progress",children:"Week 4 Progress"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Created ",(0,s.jsx)(n.code,{children:"scancode_copyright"})," and ",(0,s.jsx)(n.code,{children:"scancode_author"})," table in the FOSSology database."]}),"\n",(0,s.jsx)(n.li,{children:"Copyright and author information coming from scancode scan result is inserted in these newly created tables."}),"\n",(0,s.jsxs)(n.li,{children:["Improved license data insertion in the ",(0,s.jsx)(n.code,{children:"license_file"})," and ",(0,s.jsx)(n.code,{children:"highlight"})," tables by inserting only unique entries based upon ",(0,s.jsx)(n.code,{children:"rf_fk"}),", ",(0,s.jsx)(n.code,{children:"agent_fk"}),", and ",(0,s.jsx)(n.code,{children:"pfile_fk"}),". It solved UI glitch in license relevant text highlighting for scancode."]}),"\n",(0,s.jsxs)(n.li,{children:["Latest ",(0,s.jsx)(n.a,{href:"https://github.com/itssingh/fossology/commit/c823ecf7a5d59fbfe243281c41598ea161e04435",children:"commit"})," having code to create tables."]}),"\n",(0,s.jsxs)(n.li,{children:["Created ",(0,s.jsx)(n.code,{children:"UI Wireframes"})," with ",(0,s.jsx)(n.code,{children:"Figma"})," for ScanCode copyright and author."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions",children:"Discussions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["The first idea is to have a ",(0,s.jsx)(n.code,{children:"separate browser"})," for ScanCode agent ",(0,s.jsx)(n.a,{href:"https://www.figma.com/file/Kj3DQlhNXkZkq6DgpdfXFt/Untitled?node-id=0%3A1",children:"link"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Michael suggested not to use these as ",(0,s.jsx)(n.em,{children:"ScanCode-Toolkit project is recognized mainly for it's license scanning"})," now keeping only Copyright and Author information in this section whereas licenses in another section will be confusing for users."]}),"\n",(0,s.jsx)(n.li,{children:"Gaurav also didn't approve this idea."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["The second idea is to ",(0,s.jsx)(n.em,{children:"reuse existing Copyright and Email/URL/Author browser"})," ",(0,s.jsx)(n.a,{href:"https://www.figma.com/file/Kj3DQlhNXkZkq6DgpdfXFt/Untitled?node-id=12%3A8",children:"link"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Reusing copyright and Email/URL/Author browser section seems to be nice idea"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Michael didn't find navigation between ScanCode agent and FOSSology Copyright agent using drop-down a good options. It seems to be lost. So instead of drop-down using tabs would looks nice."}),"\n",(0,s.jsx)(n.li,{children:"No need to repeat users finding for ScanCode agent as user is not interested in providing decision for a particular agent but instead they do for a file."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Michael proposed following idea instead"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"image",src:i(23936).Z+"",width:"1920",height:"1080"}),"\n",(0,s.jsx)(n.img,{alt:"image",src:i(60147).Z+"",width:"1920",height:"1080"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"It reuses Copyright and Author browser space."}),"\n",(0,s.jsx)(n.li,{children:"There is no redundant user decision for copyright agent."}),"\n",(0,s.jsx)(n.li,{children:"Looks nice to all the attendees."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Discussion regarding how to display scanner findings in the Copyright/Email/Url/Author clearing section for a file."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Michael, Avinal and Sarita disused to add a column named source in the scanner finding table like license table in the clearing section."}),"\n",(0,s.jsxs)(n.li,{children:["Under this source column two keyword could be use one ",(0,s.jsx)(n.code,{children:"S"})," for ScanCode findings and ",(0,s.jsx)(n.code,{children:"F"})," for FOSSology Copyright agent findings."]}),"\n",(0,s.jsx)(n.li,{children:"Gaurav suggested not to use this idea because for the same copyright statement, Fossology and ScanCode can have different scan result."}),"\n",(0,s.jsxs)(n.li,{children:["In case of license, there is ",(0,s.jsx)(n.code,{children:"License_ref table"})," which provides same license name for all the different agents for a license do no mismatching is there."]}),"\n",(0,s.jsx)(n.li,{children:"Doing same for Copyright will require lot of time."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Gaurav Suggested two ideas for the same"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"There can be two tabs to switch between ScanCode Findings and FOSSology Copyright Findings."}),"\n",(0,s.jsx)(n.li,{children:"Second idea is to ask user about a default agent out of FOSSology copyright and ScanCode for an upload and display copyright/email/url/author result by the default agent."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Gaurav would like to discuss further in the next meeting."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Implement Micheal's proposed idea for copyright browser and Email/URL/Author Browser."}),"\n",(0,s.jsx)(n.li,{children:"Take feedback from other mentors too."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"coding-week-5-meeting-2",children:"Coding Week 5 Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"Date:2021-07-09"})}),"\n",(0,s.jsx)(n.h3,{id:"attendees-1",children:"Attendees"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/mcjaeger",children:"Michael C. Jaeger"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar "})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/itssingh",children:"Sarita Singh "})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussions-1",children:"Discussions"}),"\n",(0,s.jsx)(n.h3,{id:"integrating-scancode-ui-with-copyright-ui",children:"Integrating scancode UI with copyright UI"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Copyright UI could be modified to integrate Scancode_Copyright and Scancode_Author UI."}),"\n",(0,s.jsx)(n.li,{children:"CopyrightDao could be modified to include scancode copyright and author data too, no need to create a separate file for scancodeDao."}),"\n",(0,s.jsx)(n.li,{children:"Users Findings are independent of any agent so no agentID has to be update in the copyright UI code for scancode but we have to take care for the type."}),"\n",(0,s.jsxs)(n.li,{children:["Gaurav suggested to use different type for copyright statement from what is used by copyright agent. Scancode will be using ",(0,s.jsx)(n.code,{children:"scancode_statement"})," for copyright type and ",(0,s.jsx)(n.code,{children:"statement"})," is used by copyright agent."]}),"\n",(0,s.jsxs)(n.li,{children:["Two new tables named ",(0,s.jsx)(n.code,{children:"scancode_copyright_event"})," , and ",(0,s.jsx)(n.code,{children:"scancode_author_event"})," are required to store Deactivated ScanCode findings statements and Deactivated Author statements respectively."]}),"\n",(0,s.jsx)(n.li,{children:"To generate report copyright agent is hard coded at several places, figure out some way to add scancode data also."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"discussion-regarding-documentation",children:"Discussion regarding Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Gaurav gave ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2040/files#diff-8e7c89ac20d0fcd6aa91a097accabecfdebf47343da0d71fbb4edc8527309c00",children:"this"})," as a reference to add copyright in the project code files."]}),"\n",(0,s.jsxs)(n.li,{children:["Michael suggested to look into ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/wiki/Coding-Style#default-license-and-file-headers",children:"coding guidelines"})," for default license for the project code files."]}),"\n",(0,s.jsx)(n.li,{children:"Micheal suggested prepare a document for fossology wiki section like other agents have."}),"\n",(0,s.jsx)(n.li,{children:"Gaurav in the last GSoC meeting suggested to document the working of scancode agent for first evaluation and adding comments to the code written till now."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"conclusion-and-further-plans-1",children:"Conclusion and Further Plans"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Documentation for scancode project in my project ",(0,s.jsx)(n.a,{href:"https://github.com/itssingh/fossology/wiki",children:"wiki"})," ."]}),"\n",(0,s.jsx)(n.li,{children:"Refactor code written till now."}),"\n",(0,s.jsx)(n.li,{children:"Populating scancode copyright UI table."}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},60147:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/author_browser-88616f53e7ecbd87ebd096c8c11e186a.png"},23936:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/copyright_browser-aa3473abef1d74b6b45e8176064843bd.png"},11151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>d});var s=i(67294);const t={},o=s.createContext(t);function d(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe9cdef2.f7b52342.js b/assets/js/fe9cdef2.f7b52342.js new file mode 100644 index 0000000000..6a6f117182 --- /dev/null +++ b/assets/js/fe9cdef2.f7b52342.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[3284],{26273:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var s=n(85893),i=n(11151);const a={slug:"/cmake-cweek3",title:"New build system - Week 3",author:"Avinal",author_title:"Build system",author_url:"https://github.com/avinal/",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["coding-week","cmake"]},o="Coding Week 3 Meeting",r={permalink:"/gsoc/blog/cmake-cweek3",editUrl:"https://github.com/fossology/gsoc/edit/main/blog/2021-06-23-cmake-w3.md",source:"@site/blog/2021-06-23-cmake-w3.md",title:"New build system - Week 3",description:"\x3c!--",date:"2021-06-23T00:00:00.000Z",tags:[{label:"coding-week",permalink:"/gsoc/blog/tags/coding-week"},{label:"cmake",permalink:"/gsoc/blog/tags/cmake"}],readingTime:1.475,hasTruncateMarker:!0,authors:[{name:"Avinal",title:"Build system",url:"https://github.com/avinal/",imageURL:"https://avatars.githubusercontent.com/u/74113200?v=4"}],frontMatter:{slug:"/cmake-cweek3",title:"New build system - Week 3",author:"Avinal",author_title:"Build system",author_url:"https://github.com/avinal/",author_image_url:"https://avatars.githubusercontent.com/u/74113200?v=4",tags:["coding-week","cmake"]},unlisted:!1},l={authorsImageUrls:[void 0]},c=[{value:"Attendees",id:"attendees",level:3},{value:"Week 2 Progress",id:"week-2-progress",level:3}];function h(e){const t={a:"a",h3:"h3",li:"li",ol:"ol",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h3,{id:"attendees",children:"Attendees"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Michael C. Jaeger ",(0,s.jsx)(t.a,{href:"https://github.com/mcjaeger",children:"https://github.com/mcjaeger"})]}),"\n",(0,s.jsxs)(t.li,{children:["Gaurav Mishra ",(0,s.jsx)(t.a,{href:"https://github.com/GMishx",children:"https://github.com/GMishx"})]}),"\n",(0,s.jsxs)(t.li,{children:["Sarita Singh ",(0,s.jsx)(t.a,{href:"https://github.com/itssingh",children:"https://github.com/itssingh"})]}),"\n",(0,s.jsxs)(t.li,{children:["Avinal Kumar ",(0,s.jsx)(t.a,{href:"https://github.com/avinal",children:"https://github.com/avinal"})]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"week-2-progress",children:"Week 2 Progress"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Version file Implementation"}),"\n",(0,s.jsx)(t.li,{children:"Initial functions on obtaining commit and branch info"}),"\n",(0,s.jsxs)(t.li,{children:["To test the current progress, follow the instructions ",(0,s.jsx)(t.a,{href:"https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now",children:"here"})]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>o});var s=n(67294);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff7b630c.86904091.js b/assets/js/ff7b630c.86904091.js new file mode 100644 index 0000000000..45792bfdba --- /dev/null +++ b/assets/js/ff7b630c.86904091.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[749],{23455:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var t=i(85893),n=i(11151);const o={title:"Week 8",author:"Divij Sharma",tags:["gsoc24","rest"]},d="Week 8 meeting and activities",c={id:"2024/rest/updates/Divij/2024-07-16",title:"Week 8",description:"\x3c!--",source:"@site/docs/2024/rest/updates/Divij/2024-07-16.md",sourceDirName:"2024/rest/updates/Divij",slug:"/2024/rest/updates/Divij/2024-07-16",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-16",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/rest/updates/Divij/2024-07-16.md",tags:[{label:"gsoc24",permalink:"/gsoc/docs/tags/gsoc-24"},{label:"rest",permalink:"/gsoc/docs/tags/rest"}],version:"current",frontMatter:{title:"Week 8",author:"Divij Sharma",tags:["gsoc24","rest"]},sidebar:"2024",previous:{title:"Week 7",permalink:"/gsoc/docs/2024/rest/updates/Divij/2024-07-09"},next:{title:"Community bonding",permalink:"/gsoc/docs/2024/rest/updates/valens/2024-05-07"}},l={},r=[{value:"Attendees",id:"attendees",level:2},{value:"Discussion",id:"discussion",level:2},{value:"Activities",id:"activities",level:2}];function a(e){const s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"week-8-meeting-and-activities",children:"Week 8 meeting and activities"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.em,{children:"(July 16,2024)"})}),"\n",(0,t.jsx)(s.h2,{id:"attendees",children:"Attendees"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/dvjsharma",children:"Divij Sharma"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/valens200",children:"Valens Niyonsenga"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"discussion",children:"Discussion"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Discussed the implementation of ",(0,t.jsx)(s.code,{children:"/jobs"}),", ",(0,t.jsx)(s.code,{children:"/jobs/{id}"}),", ",(0,t.jsx)(s.code,{children:"/jobs/all"})," endpoints."]}),"\n",(0,t.jsxs)(s.li,{children:["Following suggestions/improvements were discussed:","\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:["The ",(0,t.jsx)(s.code,{children:"/jobs/history"})," endpoint can be safely deprecated in V2, since the same functionality can be achieved by using the ",(0,t.jsx)(s.code,{children:"/jobs?upload=<id>"})," endpoint."]}),"\n",(0,t.jsxs)(s.li,{children:["The ",(0,t.jsx)(s.code,{children:"startTime"})," and ",(0,t.jsx)(s.code,{children:"endTime"})," fields in the ",(0,t.jsx)(s.code,{children:"jobQueue"})," do not contain the timezone information. It was suggested to add the timezone information to these fields and make the format consistent with the ",(0,t.jsx)(s.code,{children:"queueDate"})," field."]}),"\n",(0,t.jsxs)(s.li,{children:["The output should be sorted by the ",(0,t.jsx)(s.code,{children:"queueDate"})," field in descending order, so that the latest jobs are displayed first."]}),"\n",(0,t.jsx)(s.li,{children:"For the failing tests, it was suggested to cut out additional data from the mid-function calls and mock the object as a whole."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["Briefly discussed and reviewed the test case development for the REST API with ",(0,t.jsx)(s.a,{href:"https://github.com/valens200",children:"Valens"}),"."]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"activities",children:"Activities"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Implemented all the suggestions and improvements discussed in the meeting."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/fossology/fossology/pull/2781",children:"feat(api): modify /jobs and related endpoints"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsx)(s.p,{children:"Worked on documenting some improvements in the REST API implementation."}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,s,i)=>{i.d(s,{Z:()=>c,a:()=>d});var t=i(67294);const n={},o=t.createContext(n);function d(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff825a2f.cfdb7c40.js b/assets/js/ff825a2f.cfdb7c40.js new file mode 100644 index 0000000000..4f9b5798ea --- /dev/null +++ b/assets/js/ff825a2f.cfdb7c40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[7594],{65599:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var s=i(85893),t=i(11151);const o={title:"Community Bonding Report",author:"Akash Sah"},r="Community Bonding Report",d={id:"2024/spdx-expression/updates/2024-05-07",title:"Community Bonding Report",description:"\x3c!--",source:"@site/docs/2024/spdx-expression/updates/2024-05-07.md",sourceDirName:"2024/spdx-expression/updates",slug:"/2024/spdx-expression/updates/2024-05-07",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-05-07",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2024/spdx-expression/updates/2024-05-07.md",tags:[],version:"current",frontMatter:{title:"Community Bonding Report",author:"Akash Sah"},sidebar:"2024",previous:{title:"Introduction",permalink:"/gsoc/docs/2024/spdx-expression/"},next:{title:"Week 1",permalink:"/gsoc/docs/2024/spdx-expression/updates/2024-05-28"}},l={},c=[{value:"Meeting 1",id:"meeting-1",level:2},{value:"Discussion:",id:"discussion",level:3},{value:"Meeting 2",id:"meeting-2",level:2},{value:"Discussion:",id:"discussion-1",level:3},{value:"Week 1 Activities",id:"week-1-activities",level:2},{value:"Meeting 3",id:"meeting-3",level:2},{value:"Discussion:",id:"discussion-2",level:3},{value:"Week 2 Activities",id:"week-2-activities",level:2},{value:"Meeting 4",id:"meeting-4",level:2},{value:"Discussion:",id:"discussion-3",level:3}];function a(e){const n={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"community-bonding-report",children:"Community Bonding Report"}),"\n",(0,s.jsx)(n.h2,{id:"meeting-1",children:"Meeting 1"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 7, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Mentors and contributors introduced themselves."}),"\n",(0,s.jsx)(n.li,{children:"Agreed on the time and platform for general weekly meetings."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-2",children:"Meeting 2"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 9, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-1",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Mentors emphasized the importance of communication in open source."}),"\n",(0,s.jsx)(n.li,{children:"Held a general Q&A session."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"week-1-activities",children:"Week 1 Activities"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 9, 2024 - May 15, 2024)"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Explored parts of the codebase related to the project and UI."}),"\n",(0,s.jsxs)(n.li,{children:["Resolved a ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2738",children:"bug"})," found in the user interface."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-3",children:"Meeting 3"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 16, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-2",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Contributors provided updates on their progress."}),"\n",(0,s.jsx)(n.li,{children:"Mentors checked if everyone was able to set up their local development environment."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"week-2-activities",children:"Week 2 Activities"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 16, 2024 - May 22, 2024)"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Began working on the prototype and furthered my understanding of FOSSology."}),"\n",(0,s.jsxs)(n.li,{children:["Engaged with the community and resolved a ",(0,s.jsx)(n.a,{href:"https://github.com/fossology/fossology/discussions/2735",children:"query"})," in the discussions."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-4",children:"Meeting 4"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"(May 23, 2024)"})}),"\n",(0,s.jsx)(n.h3,{id:"discussion-3",children:"Discussion:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Contributors shared their progress."}),"\n",(0,s.jsx)(n.li,{children:"Mentors encouraged making small contributions to gain a better understanding of the project."}),"\n",(0,s.jsx)(n.li,{children:"Finalized timings for project-specific weekly meetings."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This report summarizes my activities and interactions during the GSoC community bonding period."})]})}function u(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>d,a:()=>r});var s=i(67294);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ffeff597.a4fcde91.js b/assets/js/ffeff597.a4fcde91.js new file mode 100644 index 0000000000..0491e1c439 --- /dev/null +++ b/assets/js/ffeff597.a4fcde91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[6085],{81997:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>c,frontMatter:()=>h,metadata:()=>r,toc:()=>o});var i=s(85893),t=s(11151);const h={sidebar_position:6,title:"Week 6"},l=void 0,r={id:"2022/minutes/07-07-2022",title:"Week 6",description:"\x3c!--",source:"@site/docs/2022/minutes/07-07-2022.md",sourceDirName:"2022/minutes",slug:"/2022/minutes/07-07-2022",permalink:"/gsoc/docs/2022/minutes/07-07-2022",draft:!1,unlisted:!1,editUrl:"https://github.com/fossology/gsoc/edit/main/docs/2022/minutes/07-07-2022.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Week 6"},sidebar:"2022",previous:{title:"Week 5",permalink:"/gsoc/docs/2022/minutes/30-06-2022"},next:{title:"Week 7",permalink:"/gsoc/docs/2022/minutes/14-07-2022"}},a={},o=[{value:"Attendees:",id:"attendees",level:2},{value:"General",id:"general",level:2},{value:"Updates from students",id:"updates-from-students",level:2}];function d(e){const n={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Welcome to meeting minutes page for GSoC 2022 at FOSSology 07-07-2022."}),"\n",(0,i.jsx)(n.h2,{id:"attendees",children:"Attendees:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"mailto:katharina.ettinger@siemens.com",children:"Katharina Ettinger"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/GMishx",children:"Gaurav Mishra"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Kaushl2208",children:"Kaushlendra Pratap"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/shaheemazmalmmd",children:"Shaheem Azmal M MD"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ag4ums",children:"Anupam Ghosh"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/hastagAB",children:"Ayush Bhardwaj"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Shruti3004",children:"Shruti Agarwal"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/avinal",children:"Avinal Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Discussion om REUSE Standard abiut the ignorim=ng the test data."}),"\n",(0,i.jsx)(n.li,{children:"STUDENTS: Better to share the screen while updating the status."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"updates-from-students",children:"Updates from students"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/its-sushant",children:"Sushant Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I was working on the suggetions by mentors on the PR. Training the dataset on docker."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/fwhdzh",children:"Feng Wenhan"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I have created the duplicate of browse page. and looked into the code which adds/manages the project. will work on this next week."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/rohitpandey49",children:"Rohit Pandey"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Working on the copyright agent, explored the regular expression. Created a issue in REUSE community and got a reply."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Pendyala-thanvi",children:"Thanvi Lahari Pendyala"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I have connected the weeekly call after my exams this week and i have understood how to curate the data or create a pull request in clearly defined will work further."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/Ayush7614",children:"Ayush Kumar"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Absent"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/krishna9304",children:"Krishna Mahato"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"I tried the VM installation and installed fossology. will start the development soon, as im facing some issues in filesystem."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/soham4abc",children:"Soham Banerjee"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Demo Fixed the browse page pagination and small issue in folder view endpoint of jobs."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/dushimsam",children:"Samuel Dushimimana"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"This week i have been improving the APIS that i have released last week."}),"\n",(0,i.jsxs)(n.li,{children:["Listing groups that can be deleted: (",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2247",children:"https://github.com/fossology/fossology/pull/2247"}),")."]}),"\n",(0,i.jsxs)(n.li,{children:["Delete user (",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2244",children:"https://github.com/fossology/fossology/pull/2244"}),")."]}),"\n",(0,i.jsxs)(n.li,{children:["I have also released another api to list all the group members with correspoinding roles (",(0,i.jsx)(n.a,{href:"https://github.com/fossology/fossology/pull/2251",children:"https://github.com/fossology/fossology/pull/2251"}),")."]}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>l});var i=s(67294);const t={},h=i.createContext(t);function l(e){const n=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),i.createElement(h.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.c1eef401.js b/assets/js/main.c1eef401.js new file mode 100644 index 0000000000..9c94ae7215 --- /dev/null +++ b/assets/js/main.c1eef401.js @@ -0,0 +1,2 @@ +/*! For license information please see main.c1eef401.js.LICENSE.txt */ +(self.webpackChunkgosc=self.webpackChunkgosc||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(67294);var s=n(68356),o=n.n(s),a=n(16887);const r={"008e2980":[()=>n.e(474).then(n.t.bind(n,60721,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-7-afd.json",60721],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,24524)),"@theme/BlogTagsListPage",24524],"01dc97a1":[()=>n.e(4390).then(n.bind(n,57682)),"@site/docs/2022/ui/updates/krishna/2022-06-20.md",57682],"02279bec":[()=>n.e(2075).then(n.bind(n,61832)),"@site/docs/2023/copyrights/updates/2023-07-26.md",61832],"025be6d6":[()=>n.e(7973).then(n.bind(n,88594)),"@site/docs/2022/ui/updates/soham/2022-07-8.md",88594],"028ec75c":[()=>n.e(4683).then(n.bind(n,88774)),"@site/docs/2021/microservice/updates/2021-07-27.md",88774],"02c6e69e":[()=>n.e(1019).then(n.bind(n,89526)),"@site/docs/2022/minutes/23-06-2022.md",89526],"04e89960":[()=>n.e(543).then(n.t.bind(n,8033,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-9-427.json",8033],"050e991b":[()=>n.e(7493).then(n.bind(n,49442)),"@site/docs/2021/ui/updates/shruti/2021-07-13.md",49442],"0546864f":[()=>n.e(2).then(n.bind(n,2655)),"@site/docs/2023/cyclonedx/updates/2023-08-03.md",2655],"05f52370":[()=>n.e(415).then(n.t.bind(n,36393,19)),"@generated/docusaurus-plugin-content-blog/default/p/gsoc-blog-tags-edd.json",36393],"061e6717":[()=>n.e(7393).then(n.bind(n,21603)),"@site/docs/2023/cyclonedx/updates/2023-08-10.md",21603],"06748857":[()=>n.e(6242).then(n.bind(n,42546)),"@site/docs/2024/spdx-expression/updates/2024-06-18.md",42546],"06949c14":[()=>n.e(542).then(n.t.bind(n,54534,19)),"@generated/docusaurus-plugin-content-blog/default/p/gsoc-blog-tags-coding-week-dbc.json",54534],"07f088a0":[()=>n.e(2744).then(n.bind(n,22509)),"@site/docs/2021/buildsystem/updates/2021-05-28.md",22509],"08063d3c":[()=>n.e(374).then(n.bind(n,70590)),"@site/docs/2024/license-detection/updates/2024-06-20.md",70590],"090ff72c":[()=>n.e(5602).then(n.t.bind(n,73421,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-gsoc-21-f8c.json",73421],"09aa2e1a":[()=>n.e(8927).then(n.bind(n,87088)),"@site/docs/2024/pipeline/updates/2024-05-07.md",87088],"0a23bdf5":[()=>n.e(2405).then(n.bind(n,34211)),"@site/docs/2023/copyrights/updates/2023-08-23.md",34211],"0a823637":[()=>n.e(9304).then(n.bind(n,2020)),"@site/docs/2021/ui/styleGuide.md",2020],"0c97ea0a":[()=>n.e(358).then(n.bind(n,2240)),"@site/docs/2021/scancode/updates/2021-06-29.md",2240],"0d4d3e3e":[()=>n.e(919).then(n.bind(n,73434)),"@site/docs/2021/buildsystem/first-evaluation.md",73434],"0d837118":[()=>n.e(3010).then(n.t.bind(n,73876,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-e79.json",73876],"0e1bb287":[()=>n.e(5005).then(n.bind(n,60419)),"@site/docs/2023/rest/updates/soham/2023-06-01.md",60419],"0e91f5a0":[()=>n.e(9878).then(n.bind(n,68307)),"@site/docs/2021/scancode/updates/2021-05-28.md",68307],"0ec7c0b4":[()=>n.e(7073).then(n.bind(n,49244)),"@site/docs/2022/ui/updates/krishna/2022-07-04.md",49244],"0fdd4856":[()=>n.e(8094).then(n.bind(n,62248)),"@site/docs/2024/rest/updates/valens/2024-07-04.md",62248],"1007bf61":[()=>n.e(5766).then(n.t.bind(n,72177,19)),"@generated/docusaurus-plugin-content-blog/default/p/gsoc-blog-9a7.json",72177],"1185f44c":[()=>n.e(9732).then(n.bind(n,37020)),"@site/docs/2021/minerva/index.md",37020],"1228fbea":[()=>n.e(9853).then(n.bind(n,66989)),"@site/docs/2022/project/updates/2022-07-07.md",66989],"1374829e":[()=>n.e(559).then(n.bind(n,82255)),"@site/docs/2024/rest/API-guidelines.md",82255],"16144a8e":[()=>n.e(1162).then(n.bind(n,26961)),"@site/docs/2021/copyrights/updates/2021-06-07.md",26961],17896441:[()=>Promise.all([n.e(532),n.e(146),n.e(7918)]).then(n.bind(n,27362)),"@theme/DocItem",27362],"182aacb7":[()=>n.e(1285).then(n.bind(n,69377)),"@site/docs/2024/ci-scanner/updates/2024-06-06.md",69377],18491626:[()=>n.e(9052).then(n.bind(n,29964)),"@site/docs/2022/ui/updates/soham/2022-08-08.md",29964],"186fa67e":[()=>n.e(7129).then(n.bind(n,96268)),"@site/docs/2021/scancode/copyright.md",96268],"18bed81e":[()=>n.e(6052).then(n.bind(n,77495)),"@site/docs/2023/laas/updates/2023-06-02.md",77495],"1942e039":[()=>n.e(7906).then(n.bind(n,28476)),"@site/docs/2023/minutes/2023-07-20.md",28476],"19a24217":[()=>n.e(3915).then(n.bind(n,30453)),"@site/docs/2022/project/updates/2022-06-30.md",30453],"19cbecc5":[()=>n.e(6845).then(n.bind(n,22807)),"@site/docs/2024/spdx30/updates/2024-06-11.md",22807],"1a0d015f":[()=>n.e(3803).then(n.t.bind(n,34657,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-ci-e20.json",34657],"1ae2f0ff":[()=>n.e(5962).then(n.bind(n,23647)),"@site/docs/2021/ui/installation.md",23647],"1b7c4551":[()=>n.e(5944).then(n.bind(n,97290)),"@site/docs/2023/rest/updates/samuel/2023-07-27.md",97290],"1bf58ced":[()=>n.e(838).then(n.bind(n,93622)),"@site/docs/2022/project/updates/2022-08-25.md",93622],"1ca4eec1":[()=>n.e(9130).then(n.bind(n,94202)),"@site/docs/2022/project/updates/2022-06-02.md",94202],"1d690242":[()=>n.e(1375).then(n.bind(n,64555)),"@site/docs/2022/minutes/16-06-2022.md",64555],"1dace55c":[()=>n.e(6956).then(n.bind(n,55895)),"@site/docs/2022/project/index.md",55895],"1e466064":[()=>n.e(9132).then(n.bind(n,94690)),"@site/docs/2024/scheduler/updates/General/2024-07-11.md",94690],"1e6a3c02":[()=>n.e(1570).then(n.bind(n,88016)),"@site/docs/2021/ui/updates/aman/2021-07-13.md",88016],"1f5250dc":[()=>n.e(3056).then(n.bind(n,59433)),"@site/docs/2024/ci-scanner/updates/2024-06-27.md",59433],"1f716dd2":[()=>n.e(7301).then(n.bind(n,8916)),"@site/docs/2024/pipeline/index.md",8916],"1fe5bd65":[()=>n.e(5473).then(n.bind(n,48673)),"@site/docs/2022/atarashi/updates/2022-08-16.md",48673],"202295a4":[()=>n.e(396).then(n.bind(n,96759)),"@site/docs/2024/GSoC-projects.md",96759],"204f1452":[()=>n.e(9656).then(n.bind(n,85943)),"@site/docs/2024/ci-scanner/updates/2024-07-11.md",85943],"2078f3e4":[()=>n.e(8746).then(n.bind(n,76846)),"@site/docs/2021/scancode/introduction.md",76846],"21a8b2e2":[()=>n.e(3334).then(n.bind(n,15199)),"@site/docs/2021/minerva/updates/2021-06-07.md",15199],"21d6e7e7":[()=>n.e(9605).then(n.bind(n,65534)),"@site/docs/2022/spasht/updates/2022-07-13.md",65534],"21e38604":[()=>n.e(2503).then(n.bind(n,63386)),"@site/docs/2023/copyrights/updates/2023-08-02.md",63386],"227cd700":[()=>n.e(3545).then(n.t.bind(n,52983,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-cmake-56f.json",52983],"234d7abe":[()=>n.e(309).then(n.bind(n,44434)),"@site/docs/2022/ui/updates/krishna/2022-07-11.md",44434],"23cfc9f7":[()=>n.e(9803).then(n.bind(n,86163)),"@site/docs/2023/minutes/2023-05-11.md",86163],"250dd90a":[()=>n.e(4795).then(n.bind(n,10656)),"@site/docs/2022/ui/updates/soham/2022-08-01.md",10656],"263ec88a":[()=>n.e(1401).then(n.bind(n,60174)),"@site/docs/2021/minerva/updates/2021-07-13.md",60174],"2669c513":[()=>n.e(6216).then(n.bind(n,69117)),"@site/docs/2022/ui/installation.md",69117],"26c67a4b":[()=>n.e(1992).then(n.bind(n,89550)),"@site/docs/2024/scheduler/updates/2024-05-09.md",89550],"273188cf":[()=>n.e(808).then(n.bind(n,53034)),"@site/docs/2021/copyrights/updates/2021-07-13.md",53034],"2766d498":[()=>n.e(6690).then(n.bind(n,5465)),"@site/docs/2024/scheduler/updates/2024-05-23.md",5465],"2768a744":[()=>n.e(3067).then(n.bind(n,84071)),"@site/docs/2021/buildsystem/final-evaluation.md",84071],"276db9af":[()=>n.e(2801).then(n.bind(n,83404)),"@site/docs/2022/ui/updates/soham/2022-07-7.md",83404],"27a55f2d":[()=>n.e(8905).then(n.bind(n,60928)),"@site/docs/2024/ci-scanner/updates/2024-05-07.md",60928],"27ad8414":[()=>n.e(4930).then(n.bind(n,5528)),"@site/docs/2024/scheduler/updates/General/2024-06-27.md",5528],"27bed139":[()=>n.e(783).then(n.t.bind(n,26219,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-atarashi-863.json",26219],28315084:[()=>n.e(1989).then(n.bind(n,54979)),"@site/docs/2024/rest/updates/Divij/2024-05-30.md",54979],"28550c33":[()=>n.e(9365).then(n.t.bind(n,32827,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-ui-8bd.json",32827],29499316:[()=>n.e(4784).then(n.bind(n,23208)),"@site/docs/2023/copyrights/updates/2023-07-05.md",23208],"2a0a0a98":[()=>n.e(6867).then(n.bind(n,30462)),"@site/docs/2023/laas/updates/2023-08-04.md",30462],"2a2d99b8":[()=>n.e(2367).then(n.bind(n,38456)),"@site/docs/2021/microservice/index.md",38456],"2a92eb23":[()=>n.e(9158).then(n.bind(n,9086)),"@site/docs/2024/spdx-expression/updates/2024-06-04.md",9086],"2ae875ed":[()=>n.e(5593).then(n.bind(n,69870)),"@site/docs/2023/laas/finalevaluation.md",69870],"2ba61d9f":[()=>n.e(422).then(n.t.bind(n,93169,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-11-797.json",93169],"2c2af5ec":[()=>n.e(9704).then(n.t.bind(n,43993,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-rest-ae6.json",43993],"2cb3fda1":[()=>n.e(7981).then(n.bind(n,75980)),"@site/docs/2021/copyrights/updates/2021-07-20.md",75980],"2cb88a4b":[()=>n.e(5949).then(n.bind(n,12213)),"@site/docs/2022/atarashi/updates/2022-06-02.md",12213],"2d1b92cb":[()=>n.e(9706).then(n.bind(n,84076)),"@site/docs/2022/ui/updates/samuel/2022-08-18.md",84076],"2d9862c4":[()=>n.e(8424).then(n.bind(n,190)),"@site/docs/2023/minutes/2023-06-08.md",190],"2e5c4e94":[()=>n.e(8973).then(n.t.bind(n,84337,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-gsoc-23-b4c.json",84337],"2e7d2cd8":[()=>n.e(5819).then(n.bind(n,16571)),"@site/docs/2024/rest/updates/valens/2024-05-30.md",16571],"2f73850d":[()=>n.e(2855).then(n.bind(n,93630)),"@site/docs/2022/ui/updates/samuel/2022-08-02.md",93630],"2fd5aa2e":[()=>n.e(2037).then(n.bind(n,58483)),"@site/docs/2023/rest/updates/samuel/2023-05-11.md",58483],"302dc6c1":[()=>n.e(9496).then(n.bind(n,4424)),"@site/docs/2022/atarashi/updates/2022-08-02.md",4424],"3065bd84":[()=>n.e(7616).then(n.bind(n,46542)),"@site/docs/2022/reuse/updates/2022-07-25.md",46542],"30d50cc3":[()=>n.e(6914).then(n.bind(n,51105)),"@site/docs/2021/ui/updates/shruti/2021-06-29.md",51105],"314d50dd":[()=>n.e(503).then(n.bind(n,14607)),"@site/docs/2024/spdx30/updates/2024-06-04.md",14607],"31f75598":[()=>n.e(6933).then(n.bind(n,97023)),"@site/docs/2021/ui/updates/shruti/2021-06-15.md",97023],"32232bbe":[()=>n.e(1752).then(n.bind(n,25659)),"@site/docs/2023/copyrights/updates/2023-09-27.md",25659],"32c02662":[()=>n.e(9103).then(n.bind(n,68013)),"@site/docs/2022/minutes/30-06-2022.md",68013],"3383980b":[()=>n.e(9331).then(n.bind(n,66437)),"@site/docs/2022/ui/updates/krishna/2022-08-07.md",66437],"33c1fda8":[()=>n.e(6303).then(n.bind(n,77615)),"@site/docs/2022/ui/updates/krishna/2022-08-14.md",77615],"33f65a48":[()=>n.e(2159).then(n.t.bind(n,34844,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-gsoc-22-37a.json",34844],"3423283a":[()=>n.e(7231).then(n.bind(n,41718)),"@site/docs/2022/ui/updates/soham/2022-06-02.md",41718],"345fcdca":[()=>n.e(4560).then(n.bind(n,96589)),"@site/docs/2023/minutes/2023-08-10.md",96589],"34f37eae":[()=>n.e(6217).then(n.bind(n,69881)),"@site/docs/2021/ui/updates/shruti/2021-08-03.md",69881],"3512fcc1":[()=>n.e(6549).then(n.bind(n,91952)),"@site/docs/2022/minutes/28-07-2022.md",91952],"366365ff":[()=>n.e(4989).then(n.bind(n,18493)),"@site/docs/2023/laas/updates/2023-06-23.md",18493],"36994c47":[()=>n.e(9208).then(n.t.bind(n,94468,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",94468],"3720c009":[()=>Promise.all([n.e(532),n.e(3751)]).then(n.bind(n,10727)),"@theme/DocTagsListPage",10727],"37ce31a4":[()=>n.e(5012).then(n.t.bind(n,42702,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-spdx-expression-ac2.json",42702],"38b01e93":[()=>n.e(6245).then(n.bind(n,37178)),"@site/docs/2024/rest/updates/Divij/2024-06-18.md",37178],"38e13263":[()=>n.e(4539).then(n.bind(n,15731)),"@site/docs/2021/ui/updates/shruti/2021-08-17.md",15731],"39196de0":[()=>n.e(3662).then(n.bind(n,39758)),"@site/docs/2024/spdx30/updates/2024-06-25.md",39758],"3997b891":[()=>n.e(4963).then(n.bind(n,66785)),"@site/docs/2024/rest/updates/valens/2024-06-20.md",66785],"3a01145e":[()=>n.e(516).then(n.bind(n,32667)),"@site/docs/2023/cyclonedx/index.md",32667],"3a3aa3f9":[()=>n.e(2532).then(n.bind(n,51308)),"@site/docs/2022/project/updates/2022-06-09.md",51308],"3a4ef734":[()=>n.e(4156).then(n.bind(n,14834)),"@site/docs/2024/rest/updates/Divij/2024-06-11.md",14834],"3a69aa9b":[()=>n.e(3381).then(n.bind(n,21997)),"@site/docs/2022/project/updates/2022-06-23.md",21997],"3ba56a83":[()=>n.e(6842).then(n.bind(n,36225)),"@site/docs/2021/scancode/updates/2021-06-22.md",36225],"3cb67e34":[()=>n.e(6544).then(n.bind(n,25777)),"@site/docs/2023/GSoC-projects.md",25777],"3d8d1b23":[()=>n.e(566).then(n.bind(n,49378)),"@site/docs/2022/ui/updates/samuel/2022-06-30.md",49378],"3dacff87":[()=>n.e(7651).then(n.bind(n,26871)),"@site/docs/2023/rest/updates/samuel/2023-08-10.md",26871],"3e191a68":[()=>n.e(1126).then(n.bind(n,90807)),"@site/docs/2023/copyrights/updates/2023-09-06.md",90807],"3f6754b1":[()=>n.e(5770).then(n.bind(n,48213)),"@site/docs/2023/copyrights/updates/2023-07-19.md",48213],"3fbbd0f4":[()=>n.e(3157).then(n.bind(n,59997)),"@site/docs/2024/pipeline/updates/2024-07-04.md",59997],"417aa6bf":[()=>n.e(271).then(n.bind(n,96834)),"@site/docs/2023/copyrights/updates/2023-06-14.md",96834],"41e635b0":[()=>n.e(7375).then(n.bind(n,29031)),"@site/docs/2023/cyclonedx/updates/2023-06-08.md",29031],"41f47303":[()=>n.e(5351).then(n.bind(n,68257)),"@site/docs/2023/copyrights/index.md",68257],"423d9b78":[()=>n.e(5259).then(n.bind(n,87110)),"@site/docs/2022/index.md",87110],"43b51baa":[()=>n.e(8413).then(n.bind(n,38647)),"@site/docs/2024/pipeline/updates/2024-06-27.md",38647],"43d0318c":[()=>n.e(1052).then(n.bind(n,39535)),"@site/docs/2022/reuse/updates/2022-06-02.md",39535],"46d3cdc1":[()=>n.e(1044).then(n.t.bind(n,52752,19)),"@generated/docusaurus-plugin-content-blog/default/p/gsoc-blog-archive-250.json",52752],"47e56d82":[()=>n.e(2574).then(n.bind(n,16025)),"@site/docs/2022/reuse/updates/2022-08-16.md",16025],49284236:[()=>n.e(467).then(n.bind(n,96006)),"@site/docs/2021/buildsystem/updates/2021-08-06.md",96006],"4986eea2":[()=>n.e(110).then(n.bind(n,70070)),"@site/docs/2023/rest/updates/samuel/2023-06-22.md",70070],"4b1a116b":[()=>n.e(2267).then(n.bind(n,52077)),"@site/docs/2021/scancode/installation.md",52077],"4ba0f0ad":[()=>n.e(2012).then(n.bind(n,71181)),"@site/docs/2023/laas/updates/2023-07-14.md",71181],"4c75aaac":[()=>n.e(2148).then(n.bind(n,60031)),"@site/docs/2022/reuse/updates/2022-06-27.md",60031],"4c81a1bc":[()=>n.e(2147).then(n.bind(n,29987)),"@site/docs/2024/scheduler/updates/General/2024-06-20.md",29987],"4c8d4bbb":[()=>n.e(3369).then(n.bind(n,5910)),"@site/docs/2021/ui/updates/shruti/2021-07-27.md",5910],"4ef6f78e":[()=>n.e(2200).then(n.bind(n,6438)),"@site/docs/2022/minutes/04-08-2022.md",6438],"4f00ca68":[()=>n.e(2489).then(n.bind(n,89452)),"@site/docs/2024/minutes/2024-06-06.md",89452],"4f0b91aa":[()=>n.e(3459).then(n.bind(n,6288)),"@site/docs/2024/minutes/2024-06-20.md",6288],"4f7200c3":[()=>n.e(7250).then(n.bind(n,96367)),"@site/docs/2022/reuse/updates/2022-08-23.md",96367],"51844f27":[()=>n.e(7899).then(n.bind(n,58692)),"@site/docs/2021/ui/index.md",58692],"519b30ff":[()=>n.e(8515).then(n.t.bind(n,94972,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-spdx-30-80b.json",94972],"5287211b":[()=>n.e(5754).then(n.bind(n,48339)),"@site/docs/2023/copyrights/updates/2023-06-07.md",48339],"52bd7b70":[()=>n.e(6482).then(n.bind(n,16455)),"@site/docs/2022/ui/updates/samuel/2022-08-11.md",16455],"5403b838":[()=>n.e(7282).then(n.bind(n,15694)),"@site/docs/2022/ui/updates/krishna/2022-08-21.md",15694],"5493c0e6":[()=>n.e(6552).then(n.bind(n,40545)),"@site/docs/2022/minutes/02-06-2022.md",40545],"54fdf17a":[()=>n.e(4064).then(n.bind(n,72862)),"@site/docs/2022/ui/updates/samuel/2022-09-08.md",72862],"552c3796":[()=>n.e(9291).then(n.t.bind(n,48515,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-reuse-963.json",48515],"55e1dc83":[()=>n.e(1519).then(n.bind(n,32816)),"@site/docs/2021/ui/updates/aman/2021-08-10.md",32816],"55f0866e":[()=>n.e(2759).then(n.bind(n,9174)),"@site/docs/2022/ui/updates/krishna/2022-06-02.md",9174],"578b1197":[()=>n.e(4821).then(n.bind(n,64404)),"@site/docs/2022/atarashi/updates/2022-06-27.md",64404],"5a8545f2":[()=>n.e(8245).then(n.bind(n,35540)),"@site/docs/2021/scancode/updates/2021-07-13.md",35540],"5aaea04f":[()=>n.e(5203).then(n.t.bind(n,94166,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-react-4b1.json",94166],"5bb82e60":[()=>n.e(6681).then(n.bind(n,24408)),"@site/docs/2023/rest/updates/samuel/2023-08-17.md",24408],"5e95c892":[()=>n.e(9661).then(n.bind(n,41892)),"@theme/DocsRoot",41892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"5efb33e7":[()=>n.e(2664).then(n.bind(n,46182)),"@site/docs/2024/scheduler/updates/2023-05-30.md",46182],"5f91dd84":[()=>n.e(1964).then(n.bind(n,73095)),"@site/docs/2023/minutes/2023-08-17.md",73095],"5fb82b8f":[()=>n.e(5376).then(n.bind(n,45850)),"@site/docs/2023/minutes/2023-07-06.md",45850],"5fe8cd37":[()=>n.e(7633).then(n.t.bind(n,82512,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-license-as-a-service-f09.json",82512],"60a71940":[()=>n.e(4516).then(n.bind(n,37265)),"@site/docs/2021/minerva/updates/2021-06-15.md",37265],"60d9b5fd":[()=>n.e(9113).then(n.bind(n,32985)),"@site/docs/2024/scheduler/updates/Discussion/2024-05-31.md",32985],"617ad78a":[()=>n.e(8595).then(n.bind(n,26868)),"@site/docs/2024/license-detection/updates/2024-07-04.md",26868],"61dfadde":[()=>n.e(5168).then(n.bind(n,18849)),"@site/docs/2024/scheduler/index.md",18849],"634ef2d6":[()=>n.e(7705).then(n.bind(n,33437)),"@site/docs/2023/copyrights/updates/2023-05-11.md",33437],"64da718d":[()=>n.e(9094).then(n.bind(n,72309)),"@site/docs/2021/minerva/updates/2021-08-17.md",72309],"6540906a":[()=>n.e(2597).then(n.bind(n,91271)),"@site/docs/2024/minutes/2024-07-11.md",91271],66259119:[()=>n.e(9956).then(n.bind(n,98935)),"@site/docs/2023/rest/updates/soham/2023-07-28.md",98935],"662f7d94":[()=>n.e(8593).then(n.bind(n,67618)),"@site/docs/2024/minutes/2024-06-27.md",67618],"66572fad":[()=>n.e(6635).then(n.bind(n,15388)),"@site/docs/2021/buildsystem/updates/2021-07-30.md",15388],"66defe51":[()=>n.e(7526).then(n.t.bind(n,19884,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-spasht-6d2.json",19884],"6875c492":[()=>Promise.all([n.e(532),n.e(146),n.e(8281),n.e(8610)]).then(n.bind(n,41714)),"@theme/BlogTagsPostsPage",41714],"6955c460":[()=>n.e(9817).then(n.bind(n,50589)),"@site/docs/2023/copyrights/updates/2023-06-21.md",50589],"69b10dc4":[()=>n.e(4399).then(n.t.bind(n,71232,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-3-4d2.json",71232],"6accd836":[()=>n.e(5854).then(n.bind(n,11945)),"@site/docs/2023/laas/updates/2023-06-16.md",11945],"6ae2d8c6":[()=>n.e(1415).then(n.bind(n,362)),"@site/docs/2024/index.md",362],"6b404b6c":[()=>n.e(3693).then(n.t.bind(n,24986,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-community-bonding-401.json",24986],"6b96ecc6":[()=>n.e(4044).then(n.bind(n,34578)),"@site/docs/2022/spasht/updates/2022-07-06.md",34578],"6dbcda96":[()=>n.e(4422).then(n.bind(n,66786)),"@site/docs/2022/spasht/updates/2022-06-22.md",66786],"6de855fa":[()=>n.e(19).then(n.bind(n,33086)),"@site/docs/2022/project/updates/2022-08-18.md",33086],"6e6f23f0":[()=>n.e(4807).then(n.bind(n,20556)),"@site/docs/2024/scheduler/updates/2024-06-06.md",20556],"6ef9a503":[()=>n.e(1507).then(n.bind(n,47900)),"@site/docs/2022/ui/updates/soham/2022-07-3.md",47900],"6f131a30":[()=>n.e(2723).then(n.bind(n,2329)),"@site/docs/2021/copyrights/setup.md",2329],"708890f5":[()=>n.e(8225).then(n.bind(n,97735)),"@site/docs/2024/spdx-expression/index.md",97735],"7121b741":[()=>n.e(8121).then(n.bind(n,75836)),"@site/docs/2021/scancode/updates/2021-07-20.md",75836],"720c9529":[()=>n.e(4472).then(n.bind(n,40843)),"@site/docs/2022/spasht/index.md",40843],72129108:[()=>n.e(6467).then(n.bind(n,72144)),"@site/docs/2023/cyclonedx/updates/2023-06-01.md",72144],"729b1647":[()=>n.e(5561).then(n.t.bind(n,10108,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-project-d8b.json",10108],"72e6a776":[()=>n.e(7061).then(n.bind(n,75254)),"@site/docs/2022/reuse/updates/2022-08-02.md",75254],"7352dcc5":[()=>n.e(1163).then(n.t.bind(n,45477,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-buildsystem-f28.json",45477],"738251cf":[()=>n.e(300).then(n.bind(n,33025)),"@site/docs/2021/copyrights/updates/2021-08-03.md",33025],"7391904a":[()=>n.e(7588).then(n.bind(n,26256)),"@site/docs/2023/cyclonedx/updates/2023-06-15.md",26256],"744e4968":[()=>n.e(7121).then(n.bind(n,33538)),"@site/docs/2022/reuse/updates/2022-06-13.md",33538],"746dc50c":[()=>n.e(6032).then(n.bind(n,36036)),"@site/docs/2022/project/updates/2022-08-11.md",36036],"7481d326":[()=>n.e(8845).then(n.bind(n,21515)),"@site/docs/2021/microservice/updates/2021-06-07.md",21515],"764b643c":[()=>n.e(8628).then(n.bind(n,71209)),"@site/docs/2023/copyrights/updates/2023-07-12.md",71209],"7656bcd9":[()=>n.e(7648).then(n.bind(n,28956)),"@site/docs/2023/rest/updates/samuel/2023-08-03.md",28956],"76f3e499":[()=>n.e(4330).then(n.bind(n,21620)),"@site/docs/2023/rest/updates/samuel/2023-06-01.md",21620],77565992:[()=>n.e(557).then(n.bind(n,76182)),"@site/docs/2021/copyrights/updates/2021-08-10.md",76182],"78054b94":[()=>n.e(9894).then(n.bind(n,78755)),"@site/docs/2024/scheduler/updates/Discussion/2024-07-12.md",78755],"799444a3":[()=>n.e(7527).then(n.t.bind(n,21456,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-1-d55.json",21456],"7afcff4c":[()=>n.e(5246).then(n.bind(n,99595)),"@site/docs/2024/scheduler/updates/General/2024-06-13.md",99595],"7bbb3d8c":[()=>n.e(1944).then(n.bind(n,66506)),"@site/docs/2023/rest/updates/soham/2023-06-27.md",66506],"7bf50317":[()=>n.e(4449).then(n.bind(n,30504)),"@site/docs/2021/ui/updates/shruti/2021-07-06.md",30504],"7c75bbc9":[()=>n.e(7501).then(n.bind(n,5917)),"@site/docs/2022/project/updates/2022-06-16.md",5917],"7cef544e":[()=>n.e(654).then(n.bind(n,31198)),"@site/docs/2024/text-phrases/index.md",31198],"7d7964ab":[()=>n.e(2894).then(n.bind(n,40489)),"@site/docs/2023/cyclonedx/updates/2023-07-20.md",40489],"7dd73571":[()=>n.e(1482).then(n.bind(n,92327)),"@site/docs/2021/buildsystem/updates/2021-06-11.md",92327],"7e926307":[()=>n.e(3282).then(n.bind(n,90546)),"@site/docs/2022/reuse/updates/2022-07-11.md",90546],"8093b439":[()=>n.e(7843).then(n.bind(n,60589)),"@site/docs/2024/ci-scanner/updates/2024-07-04.md",60589],"80da5d44":[()=>n.e(5254).then(n.bind(n,75308)),"@site/docs/2023/laas/updates/2023-06-30.md",75308],"80ff2f3b":[()=>n.e(7418).then(n.bind(n,99424)),"@site/docs/2022/minutes/11-08-2022.md",99424],"814f3328":[()=>n.e(2535).then(n.t.bind(n,45641,19)),"~blog/default/blog-post-list-prop-default.json",45641],"8164a1c9":[()=>n.e(1156).then(n.bind(n,99355)),"@site/docs/2022/atarashi/index.md",99355],"81cc93ed":[()=>n.e(5061).then(n.t.bind(n,52314,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-2-620.json",52314],"8218ea4c":[()=>n.e(8426).then(n.bind(n,87335)),"@site/docs/2022/atarashi/updates/2022-06-13.md",87335],"8231cc4a":[()=>n.e(9736).then(n.bind(n,41838)),"@site/docs/2022/ui/updates/krishna/2022-09-04.md",41838],"824bed64":[()=>n.e(628).then(n.bind(n,44174)),"@site/docs/2022/ui/index.md",44174],"8394d583":[()=>n.e(515).then(n.t.bind(n,65325,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-6-8cf.json",65325],"83ae4789":[()=>n.e(7586).then(n.bind(n,90435)),"@site/docs/2024/scheduler/updates/2024-06-07.md",90435],"83e35eb5":[()=>n.e(5205).then(n.bind(n,53456)),"@site/docs/2023/minutes/2023-05-18.md",53456],"8535af15":[()=>n.e(2523).then(n.bind(n,90595)),"@site/docs/2023/rest/updates/soham/2023-07-16.md",90595],"864a049b":[()=>n.e(9437).then(n.bind(n,39437)),"@site/docs/2022/reuse/updates/2022-08-09.md",39437],"8782ef71":[()=>n.e(5915).then(n.bind(n,89468)),"@site/docs/2022/ui/updates/krishna/2022-08-28.md",89468],"87bd4b70":[()=>n.e(2357).then(n.bind(n,50986)),"@site/docs/2021/ui/updates/aman/2021-08-17.md",50986],"88c389e0":[()=>n.e(2072).then(n.t.bind(n,88193,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-8-b9f.json",88193],"89831ac9":[()=>n.e(8586).then(n.bind(n,76095)),"@site/docs/2024/pipeline/updates/2024-06-06.md",76095],"8a76602d":[()=>n.e(477).then(n.bind(n,92841)),"@site/docs/2024/ci-scanner/updates/2024-06-13.md",92841],"8c9e2d39":[()=>n.e(1908).then(n.bind(n,20548)),"@site/docs/2021/copyrights/index.md",20548],"8d1f374f":[()=>n.e(5307).then(n.bind(n,29381)),"@site/docs/2022/minutes/21-07-2022.md",29381],"8d2724bf":[()=>n.e(6887).then(n.bind(n,93344)),"@site/docs/2021/microservice/dockerImages.md",93344],"8d4bf5b6":[()=>n.e(5197).then(n.bind(n,75204)),"@site/docs/2023/copyrights/updates/2023-06-28.md",75204],"8dfdbdf3":[()=>n.e(1696).then(n.bind(n,98555)),"@site/docs/2023/cyclonedx/updates/2023-07-27.md",98555],"8e0e4a7c":[()=>n.e(4114).then(n.bind(n,34289)),"@site/docs/2021/ui/updates/aman/2021-06-15.md",34289],"8e291ea1":[()=>n.e(5818).then(n.bind(n,79815)),"@site/docs/2022/ui/updates/soham/2022-07-9.md",79815],"8ece504f":[()=>n.e(9336).then(n.bind(n,55824)),"@site/docs/2023/copyrights/updates/2023-10-04.md",55824],"906c0998":[()=>n.e(1856).then(n.bind(n,12226)),"@site/docs/2024/ci-scanner/updates/2024-06-20.md",12226],"9078adee":[()=>n.e(1853).then(n.bind(n,26423)),"@site/docs/2021/ui/updates/aman/2021-07-27.md",26423],"9088ab58":[()=>n.e(3077).then(n.bind(n,62082)),"@site/docs/2023/copyrights/updates/2023-08-30.md",62082],"9257ef45":[()=>n.e(1836).then(n.bind(n,83590)),"@site/docs/2021/ui/updates/aman/2021-07-20.md",83590],"9308303c":[()=>n.e(3711).then(n.bind(n,7661)),"@site/docs/2024/minutes/2024-06-13.md",7661],"931055eb":[()=>n.e(4406).then(n.bind(n,21853)),"@site/docs/2024/pipeline/updates/2024-06-20.md",21853],"935a8806":[()=>n.e(1670).then(n.bind(n,31266)),"@site/docs/2021/ui/updates/shruti/2021-06-22.md",31266],"959dc270":[()=>n.e(4211).then(n.bind(n,94778)),"@site/docs/2021/buildsystem/build.md",94778],"959de7fa":[()=>n.e(9811).then(n.bind(n,64777)),"@site/docs/2024/minutes/2024-05-30.md",64777],"961aaf41":[()=>n.e(9547).then(n.bind(n,35416)),"@site/docs/2024/license-detection/updates/2024-07-11.md",35416],96273901:[()=>n.e(2351).then(n.bind(n,43070)),"@site/docs/2024/spdx-expression/updates/2024-06-25.md",43070],"97d08d26":[()=>n.e(5731).then(n.bind(n,10121)),"@site/docs/2022/atarashi/updates/2022-08-30.md",10121],"97fcf222":[()=>n.e(4101).then(n.bind(n,69388)),"@site/docs/2022/atarashi/updates/2022-07-11.md",69388],"987068a2":[()=>n.e(5765).then(n.t.bind(n,89564,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-clearlydefined-493.json",89564],"988d06c4":[()=>n.e(2448).then(n.bind(n,71201)),"@site/docs/2022/spasht/updates/2022-06-08.md",71201],"98bdcc53":[()=>n.e(7453).then(n.bind(n,94279)),"@site/docs/2023/rest/updates/soham/2023-07-05.md",94279],"99a3c1f5":[()=>n.e(2404).then(n.bind(n,24095)),"@site/docs/2024/rest/index.md",24095],"99c6882e":[()=>n.e(382).then(n.bind(n,81456)),"@site/docs/2023/index.md",81456],"9a78ab14":[()=>n.e(2876).then(n.bind(n,17095)),"@site/docs/2021/minerva/updates/2021-06-29.md",17095],"9be35a5c":[()=>n.e(7980).then(n.bind(n,98446)),"@site/docs/2024/rest/updates/Divij/2024-06-06.md",98446],"9bebd0d9":[()=>n.e(1550).then(n.bind(n,91918)),"@site/docs/2022/atarashi/updates/2022-07-19.md",91918],"9d90f292":[()=>n.e(1728).then(n.bind(n,74387)),"@site/docs/2023/minutes/2023-06-29.md",74387],"9dda5328":[()=>n.e(1146).then(n.t.bind(n,93367,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-953.json",93367],"9e4087bc":[()=>n.e(3608).then(n.bind(n,63169)),"@theme/BlogArchivePage",63169],"9ea496a9":[()=>n.e(1652).then(n.bind(n,47314)),"@site/docs/2022/reuse/updates/2022-07-04.md",47314],"9ecc6cb6":[()=>n.e(7810).then(n.bind(n,88253)),"@site/docs/2021/minerva/updates/2021-08-10.md",88253],"9f3eea2d":[()=>n.e(2322).then(n.bind(n,64602)),"@site/docs/2022/atarashi/updates/2022-07-26.md",64602],"9f48525f":[()=>n.e(4895).then(n.bind(n,32557)),"@site/docs/2022/ui/updates/krishna/2022-07-24.md",32557],"9f6800f0":[()=>n.e(8827).then(n.bind(n,27042)),"@site/docs/2022/ui/updates/samuel/2021-06-24.md",27042],"9fa1d9d8":[()=>n.e(3937).then(n.bind(n,90513)),"@site/docs/2021/copyrights/updates/2021-07-06.md",90513],a0b98cfa:[()=>n.e(6807).then(n.bind(n,36719)),"@site/docs/2022/ui/updates/krishna/2022-07-31.md",36719],a1bf526c:[()=>n.e(2396).then(n.bind(n,23034)),"@site/docs/2023/laas/updates/2023-06-09.md",23034],a2168394:[()=>n.e(8375).then(n.bind(n,90500)),"@site/docs/2024/text-phrases/updates/2024-05-7.md",90500],a28343ab:[()=>n.e(2429).then(n.bind(n,99254)),"@site/docs/2022/reuse/index.md",99254],a3727c48:[()=>n.e(1151).then(n.bind(n,43301)),"@site/docs/2023/copyrights/updates/2023-08-09.md",43301],a4428ea9:[()=>n.e(9154).then(n.bind(n,32686)),"@site/docs/2023/cyclonedx/updates/2023-06-29.md",32686],a451cadc:[()=>n.e(2373).then(n.bind(n,29799)),"@site/docs/2024/rest/updates/Divij/2024-05-07.md",29799],a49d0071:[()=>n.e(3349).then(n.bind(n,67120)),"@site/docs/2021/microservice/updates/2021-06-15.md",67120],a5379a4b:[()=>n.e(2358).then(n.bind(n,85238)),"@site/docs/2022/ui/updates/soham/2022-06-24.md",85238],a66288bb:[()=>n.e(7422).then(n.bind(n,62828)),"@site/docs/2023/rest/updates/samuel/2023-07-13.md",62828],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(146),n.e(8281),n.e(3089)]).then(n.bind(n,84351)),"@theme/BlogListPage",84351],a7456010:[()=>n.e(5980).then(n.t.bind(n,79365,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",79365],a7a07b17:[()=>n.e(1175).then(n.bind(n,67537)),"@site/docs/2024/scheduler/updates/General/2024-05-30.md",67537],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,12674)),"@theme/DocRoot",12674],a94b7453:[()=>n.e(8971).then(n.bind(n,34933)),"@site/docs/2021/buildsystem/updates/2021-06-29.md",34933],a96aad4c:[()=>n.e(1534).then(n.bind(n,90767)),"@site/docs/2024/rest/updates/valens/2024-05-07.md",90767],a9eff1ed:[()=>n.e(8187).then(n.bind(n,75183)),"@site/docs/2024/scheduler/updates/Discussion/2024-06-21.md",75183],aa55d53c:[()=>n.e(5413).then(n.bind(n,80482)),"@site/docs/2021/ui/updates/shruti/2021-08-10.md",80482],aa70e1cd:[()=>n.e(6118).then(n.bind(n,81065)),"@site/docs/2024/scheduler/updates/Discussion/2024-06-28.md",81065],aae3891b:[()=>n.e(8632).then(n.bind(n,2955)),"@site/docs/2021/microservice/setup.md",2955],ab61ba2a:[()=>n.e(1218).then(n.bind(n,13637)),"@site/docs/2021/minerva/updates/2021-08-03.md",13637],ab75e5ae:[()=>n.e(7279).then(n.bind(n,46672)),"@site/docs/2021/scancode/updates/2021-07-27.md",46672],aba21aa0:[()=>n.e(3629).then(n.t.bind(n,41765,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",41765],ac0d1e06:[()=>n.e(6200).then(n.bind(n,32857)),"@site/docs/2022/atarashi/updates/2022-08-09.md",32857],acecf23e:[()=>n.e(1454).then(n.t.bind(n,81838,19)),"~blog/default/blogMetadata-default.json",81838],ad41fe21:[()=>n.e(4604).then(n.bind(n,36569)),"@site/docs/2023/copyrights/updates/2023-09-13.md",36569],ae515947:[()=>n.e(976).then(n.bind(n,66398)),"@site/docs/2022/minutes/18-08-2022.md",66398],aea84821:[()=>n.e(9973).then(n.bind(n,89738)),"@site/docs/2022/ui/updates/ayush/2022-06-02.md",89738],aff6cca9:[()=>n.e(5584).then(n.bind(n,25628)),"@site/docs/2022/project/updates/2022-07-14.md",25628],b063e761:[()=>n.e(884).then(n.bind(n,81458)),"@site/docs/2024/spdx30/updates/2024-05-28.md",81458],b2810712:[()=>n.e(6817).then(n.bind(n,97618)),"@site/docs/2022/project/updates/2022-09-01.md",97618],b3353e9f:[()=>n.e(1632).then(n.bind(n,32282)),"@site/docs/2023/rest/updates/samuel/2023-06-15.md",32282],b45e70c2:[()=>n.e(2082).then(n.bind(n,39461)),"@site/docs/2022/atarashi/updates/2022-07-04.md",39461],b55f1bae:[()=>n.e(9648).then(n.bind(n,37649)),"@site/docs/2024/spdx30/updates/2024-06-18.md",37649],b574b54c:[()=>n.e(759).then(n.bind(n,85271)),"@site/docs/2021/minerva/installation.md",85271],b6185957:[()=>n.e(2353).then(n.bind(n,4549)),"@site/docs/2023/laas/updates/2023-07-07.md",4549],b6701d2e:[()=>n.e(8075).then(n.bind(n,27161)),"@site/docs/2021/microservice/updates/2021-06-22.md",27161],b7259baa:[()=>n.e(6107).then(n.bind(n,52585)),"@site/docs/2023/copyrights/updates/2023-09-20.md",52585],b76ea48f:[()=>n.e(8580).then(n.bind(n,6605)),"@site/docs/2024/pipeline/updates/2024-05-30.md",6605],b80ef7b8:[()=>n.e(6295).then(n.bind(n,37712)),"@site/docs/2023/copyrights/updates/2023-10-18.md",37712],b86a477d:[()=>n.e(3668).then(n.bind(n,70955)),"@site/docs/2023/cyclonedx/updates/2023-05-11.md",70955],b955e9ef:[()=>n.e(9275).then(n.bind(n,26204)),"@site/docs/2023/rest/updates/samuel/2023-06-29.md",26204],b971c4de:[()=>n.e(2495).then(n.bind(n,97053)),"@site/docs/2024/ci-scanner/index.md",97053],b9fabb40:[()=>n.e(329).then(n.bind(n,43345)),"@site/docs/2023/copyrights/updates/2023-08-16.md",43345],baad1fb3:[()=>n.e(4592).then(n.bind(n,5242)),"@site/docs/2022/reuse/updates/2022-09-06.md",5242],bacc57da:[()=>n.e(7016).then(n.bind(n,87151)),"@site/blog/2021-06-23-cmake-w3.md",87151],bb37066e:[()=>n.e(9904).then(n.bind(n,62448)),"@site/docs/2023/cyclonedx/updates/2023-06-22.md",62448],bc87ac89:[()=>n.e(1404).then(n.bind(n,50444)),"@site/docs/2023/cyclonedx/updates/2023-07-13.md",50444],bc8f2e92:[()=>n.e(8707).then(n.t.bind(n,36633,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-12-b8c.json",36633],bd3fab85:[()=>n.e(6291).then(n.bind(n,61766)),"@site/docs/2022/minutes/09-06-2022.md",61766],bebf970d:[()=>n.e(152).then(n.bind(n,82111)),"@site/docs/2023/rest/updates/samuel/2023-06-08.md",82111],bf753beb:[()=>n.e(7433).then(n.bind(n,56041)),"@site/docs/2024/rest/updates/valens/2024-06-27.md",56041],c07c256a:[()=>n.e(6163).then(n.bind(n,76545)),"@site/docs/2023/minutes/2023-08-24.md",76545],c0952c37:[()=>n.e(7574).then(n.t.bind(n,4276,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-api-f13.json",4276],c0b1f1ad:[()=>n.e(9613).then(n.bind(n,96043)),"@site/docs/2023/rest/updates/soham/2023-08-05.md",96043],c11a5439:[()=>n.e(4355).then(n.bind(n,79854)),"@site/docs/2024/rest/updates/Divij/2024-07-02.md",79854],c2c192ad:[()=>n.e(6370).then(n.t.bind(n,85302,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-pipeline-91b.json",85302],c3075d90:[()=>n.e(8812).then(n.bind(n,54376)),"@site/docs/2023/rest/updates/soham/2023-05-11.md",54376],c32e947c:[()=>n.e(9192).then(n.bind(n,63922)),"@site/docs/2021/index.md",63922],c33a6383:[()=>n.e(5920).then(n.bind(n,79387)),"@site/docs/2021/microservice/updates/2021-08-03.md",79387],c346eb76:[()=>n.e(7569).then(n.t.bind(n,99012,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-gsoc-24-862.json",99012],c3635ea8:[()=>n.e(535).then(n.bind(n,35038)),"@site/docs/2024/rest/updates/Divij/2024-06-25.md",35038],c377a04b:[()=>n.e(6971).then(n.bind(n,59925)),"@site/docs/index.md",59925],c3ddd746:[()=>n.e(3761).then(n.bind(n,48193)),"@site/docs/2022/project/updates/2022-09-08.md",48193],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(6950),n.e(4195)]).then(n.bind(n,85057)),"@site/src/pages/index.js",85057],c54eae64:[()=>n.e(2064).then(n.bind(n,91911)),"@site/docs/2022/spasht/updates/2022-06-15.md",91911],c55b67b4:[()=>n.e(9608).then(n.bind(n,26523)),"@site/docs/2022/reuse/updates/2022-08-30.md",26523],c69247d7:[()=>n.e(8668).then(n.bind(n,35671)),"@site/docs/2022/GSoC-projects.md",35671],c73c0369:[()=>n.e(4414).then(n.bind(n,12289)),"@site/docs/2021/microservice/updates/2021-07-20.md",12289],c891a8e6:[()=>n.e(7533).then(n.bind(n,7584)),"@site/docs/2021/ui/updates/aman/2021-07-06.md",7584],c928beef:[()=>n.e(946).then(n.bind(n,23539)),"@site/docs/2024/scheduler/updates/General/2024-07-04.md",23539],c96f5699:[()=>n.e(747).then(n.bind(n,49355)),"@site/docs/2023/minutes/2023-06-22.md",49355],ca774ecf:[()=>n.e(5022).then(n.bind(n,46877)),"@site/docs/2024/spdx30/updates/2024-05-07.md",46877],cb1a17e4:[()=>n.e(7595).then(n.bind(n,6973)),"@site/docs/2023/copyrights/updates/2023-05-31.md",6973],cb6d935a:[()=>n.e(6407).then(n.bind(n,35999)),"@site/docs/2023/laas/updates/2023-07-21.md",35999],cb93fa6f:[()=>n.e(2202).then(n.bind(n,15915)),"@site/docs/2022/atarashi/updates/2022-08-23.md",15915],cc6478c2:[()=>n.e(6204).then(n.bind(n,15524)),"@site/docs/2023/laas/updates/2023-07-28.md",15524],ccb19b74:[()=>n.e(2327).then(n.bind(n,77262)),"@site/docs/2023/laas/updates/2023-05-11.md",77262],ccbbc0e7:[()=>n.e(2777).then(n.bind(n,81589)),"@site/docs/2024/scheduler/updates/Discussion/2024-07-05.md",81589],ccc49370:[()=>Promise.all([n.e(532),n.e(146),n.e(8281),n.e(6103)]).then(n.bind(n,9209)),"@theme/BlogPostPage",9209],ce20785b:[()=>n.e(7096).then(n.bind(n,57e3)),"@site/docs/2021/minerva/updates/2021-07-05.md",57e3],cea8c87c:[()=>n.e(1099).then(n.t.bind(n,87022,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-10-e49.json",87022],ced86b15:[()=>n.e(9487).then(n.bind(n,60992)),"@site/docs/2024/rest/updates/Divij/2024-07-09.md",60992],ced8809e:[()=>n.e(4077).then(n.bind(n,17929)),"@site/docs/2024/minutes/2024-07-04.md",17929],cf0ccdf6:[()=>n.e(7579).then(n.bind(n,93553)),"@site/docs/2021/buildsystem/index.md",93553],cf8e8c6d:[()=>n.e(8909).then(n.bind(n,26558)),"@site/docs/2021/minerva/updates/2021-07-27.md",26558],d098244b:[()=>n.e(8620).then(n.bind(n,64218)),"@site/docs/2023/rest/index.md",64218],d0c53706:[()=>n.e(8349).then(n.bind(n,6384)),"@site/docs/2024/license-detection/index.md",6384],d2adff87:[()=>n.e(1676).then(n.bind(n,45034)),"@site/docs/2022/ui/updates/samuel/2022-09-1.md",45034],d3d51c24:[()=>n.e(1504).then(n.bind(n,61463)),"@site/docs/2021/buildsystem/updates/2021-07-09.md",61463],d3e40c0e:[()=>n.e(9250).then(n.bind(n,57809)),"@site/docs/2022/reuse/updates/2022-06-20.md",57809],d45f577f:[()=>n.e(639).then(n.bind(n,49534)),"@site/docs/2024/ci-scanner/updates/2024-07-18.md",49534],d4fb24e6:[()=>n.e(1471).then(n.bind(n,80020)),"@site/docs/2021/buildsystem/updates/2021-07-23.md",80020],d508c172:[()=>n.e(9611).then(n.bind(n,42082)),"@site/docs/2021/buildsystem/updates/2021-06-22.md",42082],d6a7f907:[()=>n.e(2684).then(n.t.bind(n,69060,19)),"@generated/docusaurus-plugin-content-blog/default/p/gsoc-blog-tags-cmake-acd.json",69060],d790d111:[()=>n.e(3872).then(n.bind(n,33309)),"@site/docs/2021/ui/updates/aman/2021-06-29.md",33309],d8299bcc:[()=>n.e(448).then(n.bind(n,25888)),"@site/docs/2024/spdx-expression/updates/2024-05-28.md",25888],d8d04ad4:[()=>n.e(5084).then(n.bind(n,63578)),"@site/docs/2021/ui/updates/aman/2021-06-22.md",63578],d8d678bc:[()=>n.e(9295).then(n.bind(n,55448)),"@site/docs/2024/spdx-expression/updates/2024-06-11.md",55448],d96c26a6:[()=>n.e(5902).then(n.bind(n,5365)),"@site/docs/2021/copyrights/updates/2021-06-22.md",5365],d9a66a3b:[()=>n.e(6441).then(n.bind(n,92198)),"@site/docs/2021/microservice/updates/2021-07-06.md",92198],da5968f3:[()=>n.e(4627).then(n.bind(n,79513)),"@site/docs/2022/spasht/updates/2022-06-02.md",79513],da9c51e5:[()=>n.e(2046).then(n.bind(n,73605)),"@site/docs/2022/ui/updates/krishna/2022-06-27.md",73605],dd17a75b:[()=>n.e(3246).then(n.bind(n,70729)),"@site/docs/2021/minerva/updates/2021-07-20.md",70729],dd569b67:[()=>n.e(8168).then(n.bind(n,53565)),"@site/docs/2024/license-detection/updates/2024-06-13.md",53565],de98e83e:[()=>n.e(5442).then(n.bind(n,18626)),"@site/docs/2024/ci-scanner/updates/2024-07-25.md",18626],df203c0f:[()=>Promise.all([n.e(532),n.e(9924)]).then(n.bind(n,40491)),"@theme/DocTagDocListPage",40491],df76972a:[()=>n.e(8932).then(n.bind(n,32115)),"@site/docs/2024/pipeline/updates/2024-06-13.md",32115],e152e44f:[()=>n.e(7161).then(n.bind(n,70466)),"@site/docs/2022/ui/updates/krishna/2022-07-17.md",70466],e172f0a4:[()=>n.e(1713).then(n.bind(n,92145)),"@site/docs/2024/scheduler/updates/Discussion/2024-06-14.md",92145],e1f55863:[()=>n.e(845).then(n.bind(n,16092)),"@site/docs/2021/buildsystem/updates/2021-06-18.md",16092],e26a7def:[()=>n.e(4530).then(n.bind(n,76420)),"@site/docs/2022/ui/updates/soham/2022-08-05.md",76420],e2791b5f:[()=>n.e(6220).then(n.bind(n,13236)),"@site/docs/2024/license-detection/updates/2024-06-06.md",13236],e2d7187d:[()=>n.e(8200).then(n.bind(n,59810)),"@site/docs/2021/buildsystem/updates/2021-08-13.md",59810],e31d5c21:[()=>n.e(3069).then(n.bind(n,44795)),"@site/docs/2022/ui/updates/samuel/2022-07-21.md",44795],e40930a3:[()=>n.e(5669).then(n.bind(n,98813)),"@site/docs/2022/ui/updates/samuel/2022-07-07.md",98813],e5846d8e:[()=>n.e(2515).then(n.bind(n,35438)),"@site/docs/2021/scancode/first_evaluation.md",35438],e5add6da:[()=>n.e(8436).then(n.bind(n,13712)),"@site/docs/2024/rest/updates/valens/2024-06-13.md",13712],e6208298:[()=>n.e(41).then(n.bind(n,41654)),"@site/docs/2021/microservice/updates/2021-07-13.md",41654],e790ab33:[()=>n.e(4749).then(n.bind(n,36181)),"@site/docs/2022/project/updates/2022-07-28.md",36181],e8009bb7:[()=>n.e(9798).then(n.bind(n,91757)),"@site/docs/2022/project/updates/2022-07-21.md",91757],e81b33ec:[()=>n.e(8201).then(n.t.bind(n,84240,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-5-f0e.json",84240],e89c0067:[()=>n.e(7839).then(n.bind(n,92514)),"@site/docs/2022/ui/updates/samuel/2022-06-02.md",92514],e8b2c6f3:[()=>n.e(6006).then(n.bind(n,35875)),"@site/docs/2021/ui/updates/shruti/2021-07-20.md",35875],ea7c83c3:[()=>n.e(873).then(n.bind(n,89281)),"@site/docs/2024/license-detection/updates/2024-05-30.md",89281],eaed3ec9:[()=>n.e(1068).then(n.bind(n,20307)),"@site/docs/2023/cyclonedx/updates/2023-07-06.md",20307],eafba1a1:[()=>n.e(518).then(n.bind(n,57187)),"@site/docs/2023/minutes/2023-06-01.md",57187],ec165cb5:[()=>n.e(1969).then(n.bind(n,70301)),"@site/docs/2021/minerva/updates/2021-06-22.md",70301],ed3f6656:[()=>n.e(5420).then(n.bind(n,60599)),"@site/docs/guidelines/index.md",60599],ed4d09e2:[()=>n.e(7284).then(n.bind(n,32265)),"@site/docs/2023/copyrights/updates/2023-10-11.md",32265],ef97733e:[()=>n.e(1864).then(n.t.bind(n,89331,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-open-source-licensing-300.json",89331],efa436d5:[()=>n.e(4576).then(n.bind(n,90055)),"@site/docs/2023/minutes/2023-06-15.md",90055],f0c8bc5a:[()=>n.e(4622).then(n.bind(n,8006)),"@site/docs/2023/laas/index.md",8006],f1bc92c5:[()=>n.e(3091).then(n.bind(n,6360)),"@site/docs/2023/minutes/2023-05-25.md",6360],f2106231:[()=>n.e(2709).then(n.bind(n,39460)),"@site/docs/2021/scancode/updates/2021-06-11.md",39460],f21dee58:[()=>n.e(8055).then(n.bind(n,3662)),"@site/docs/2021/ui/updates/aman/2021-08-03.md",3662],f245a7fb:[()=>n.e(6991).then(n.t.bind(n,9235,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-week-4-5b8.json",9235],f2d37c2d:[()=>n.e(2258).then(n.bind(n,16908)),"@site/docs/2022/atarashi/updates/2022-06-20.md",16908],f429ef64:[()=>n.e(3367).then(n.bind(n,47375)),"@site/docs/2022/project/updates/2022-08-04.md",47375],f52ce5cf:[()=>n.e(1199).then(n.bind(n,41047)),"@site/docs/2022/minutes/14-07-2022.md",41047],f56a1479:[()=>n.e(9933).then(n.bind(n,21785)),"@site/docs/2021/copyrights/updates/2021-06-15.md",21785],f5a24552:[()=>n.e(7955).then(n.bind(n,36530)),"@site/docs/2021/scancode/updates/2021-06-18.md",36530],f6effec3:[()=>n.e(6088).then(n.bind(n,85095)),"@site/docs/2023/copyrights/updates/2023-10-25.md",85095],f7a7bc28:[()=>n.e(4548).then(n.bind(n,74214)),"@site/docs/2021/microservice/updates/2021-08-17.md",74214],f7df880f:[()=>n.e(4958).then(n.bind(n,77403)),"@site/docs/2022/reuse/updates/2022-07-18.md",77403],f80c10fe:[()=>n.e(4334).then(n.t.bind(n,58928,19)),"@generated/docusaurus-plugin-content-docs/default/p/gsoc-docs-tags-ci-cd-ed4.json",58928],f8db2e1d:[()=>n.e(774).then(n.bind(n,41692)),"@site/docs/2023/rest/updates/soham/2023-06-08.md",41692],fa19280c:[()=>n.e(6869).then(n.bind(n,46906)),"@site/docs/2024/spdx30/index.md",46906],fa6aa0c2:[()=>n.e(5504).then(n.bind(n,41843)),"@site/docs/2023/rest/updates/samuel/2023-07-20.md",41843],fc400b87:[()=>n.e(4959).then(n.bind(n,51419)),"@site/docs/2024/license-detection/updates/2024-06-27.md",51419],fcdf28ae:[()=>n.e(1098).then(n.bind(n,20888)),"@site/docs/2022/ui/updates/samuel/2022-08-25.md",20888],fcea6667:[()=>n.e(9362).then(n.bind(n,32329)),"@site/docs/2022/ui/updates/samuel/2022-07-14.md",32329],fd55eaa5:[()=>n.e(5430).then(n.bind(n,61972)),"@site/docs/2023/rest/updates/samuel/2023-07-06.md",61972],fd8633b3:[()=>n.e(5264).then(n.bind(n,89937)),"@site/docs/2021/microservice/updates/2021-06-29.md",89937],fe019f80:[()=>n.e(6231).then(n.bind(n,9198)),"@site/docs/2022/minutes/25-08-2022.md",9198],fe4c9b3e:[()=>n.e(4804).then(n.bind(n,41587)),"@site/docs/2021/scancode/updates/2021-07-06.md",41587],fe9cdef2:[()=>n.e(3284).then(n.bind(n,26273)),"@site/blog/2021-06-23-cmake-w3.md?truncated=true",26273],ff7b630c:[()=>n.e(749).then(n.bind(n,23455)),"@site/docs/2024/rest/updates/Divij/2024-07-16.md",23455],ff825a2f:[()=>n.e(7594).then(n.bind(n,65599)),"@site/docs/2024/spdx-expression/updates/2024-05-07.md",65599],ffeff597:[()=>n.e(6085).then(n.bind(n,81997)),"@site/docs/2022/minutes/07-07-2022.md",81997]};var i=n(85893);function c(e){let{error:t,retry:n,pastDelay:s}=e;return t?(0,i.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,i.jsx)("p",{children:String(t)}),(0,i.jsx)("div",{children:(0,i.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):s?(0,i.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,i.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,i.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,i.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,i.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,i.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,i.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,i.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,i.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var d=n(99670),l=n(30226);function u(e,t){if("*"===e)return o()({loading:c,loader:()=>n.e(1772).then(n.bind(n,51772)),modules:["@theme/NotFound"],webpack:()=>[51772],render(e,t){const n=e.default;return(0,i.jsx)(l.z,{value:{plugin:{name:"native",id:"default"}},children:(0,i.jsx)(n,{...t})})}});const s=a[`${e}-${t}`],u={},p=[],f=[],g=(0,d.Z)(s);return Object.entries(g).forEach((e=>{let[t,n]=e;const s=r[n];s&&(u[t]=s[0],p.push(s[1]),f.push(s[2]))})),o().Map({loading:c,loader:u,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(s));Object.entries(t).forEach((t=>{let[n,s]=t;const a=s.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(s).filter((e=>"default"!==e)).forEach((e=>{a[e]=s[e]}));let r=o;const i=n.split(".");i.slice(0,-1).forEach((e=>{r=r[e]})),r[i[i.length-1]]=a}));const a=o.__comp;delete o.__comp;const r=o.__context;delete o.__context;const c=o.__props;return delete o.__props,(0,i.jsx)(l.z,{value:r,children:(0,i.jsx)(a,{...o,...c,...n})})}})}const p=[{path:"/gsoc/blog",component:u("/gsoc/blog","8ba"),exact:!0},{path:"/gsoc/blog/archive",component:u("/gsoc/blog/archive","156"),exact:!0},{path:"/gsoc/blog/cmake-cweek3",component:u("/gsoc/blog/cmake-cweek3","f9f"),exact:!0},{path:"/gsoc/blog/tags",component:u("/gsoc/blog/tags","940"),exact:!0},{path:"/gsoc/blog/tags/cmake",component:u("/gsoc/blog/tags/cmake","3b7"),exact:!0},{path:"/gsoc/blog/tags/coding-week",component:u("/gsoc/blog/tags/coding-week","07c"),exact:!0},{path:"/gsoc/docs",component:u("/gsoc/docs","940"),routes:[{path:"/gsoc/docs",component:u("/gsoc/docs","260"),routes:[{path:"/gsoc/docs/tags",component:u("/gsoc/docs/tags","fb5"),exact:!0},{path:"/gsoc/docs/tags/api",component:u("/gsoc/docs/tags/api","4a2"),exact:!0},{path:"/gsoc/docs/tags/atarashi",component:u("/gsoc/docs/tags/atarashi","b22"),exact:!0},{path:"/gsoc/docs/tags/buildsystem",component:u("/gsoc/docs/tags/buildsystem","1bc"),exact:!0},{path:"/gsoc/docs/tags/ci",component:u("/gsoc/docs/tags/ci","9c8"),exact:!0},{path:"/gsoc/docs/tags/ci-cd",component:u("/gsoc/docs/tags/ci-cd","c3a"),exact:!0},{path:"/gsoc/docs/tags/clearlydefined",component:u("/gsoc/docs/tags/clearlydefined","496"),exact:!0},{path:"/gsoc/docs/tags/cmake",component:u("/gsoc/docs/tags/cmake","5d2"),exact:!0},{path:"/gsoc/docs/tags/community-bonding",component:u("/gsoc/docs/tags/community-bonding","4d1"),exact:!0},{path:"/gsoc/docs/tags/gsoc-21",component:u("/gsoc/docs/tags/gsoc-21","7f3"),exact:!0},{path:"/gsoc/docs/tags/gsoc-22",component:u("/gsoc/docs/tags/gsoc-22","f9d"),exact:!0},{path:"/gsoc/docs/tags/gsoc-23",component:u("/gsoc/docs/tags/gsoc-23","3d6"),exact:!0},{path:"/gsoc/docs/tags/gsoc-24",component:u("/gsoc/docs/tags/gsoc-24","d7d"),exact:!0},{path:"/gsoc/docs/tags/license-as-a-service",component:u("/gsoc/docs/tags/license-as-a-service","618"),exact:!0},{path:"/gsoc/docs/tags/open-source-licensing",component:u("/gsoc/docs/tags/open-source-licensing","495"),exact:!0},{path:"/gsoc/docs/tags/pipeline",component:u("/gsoc/docs/tags/pipeline","427"),exact:!0},{path:"/gsoc/docs/tags/project",component:u("/gsoc/docs/tags/project","46e"),exact:!0},{path:"/gsoc/docs/tags/react",component:u("/gsoc/docs/tags/react","d8c"),exact:!0},{path:"/gsoc/docs/tags/rest",component:u("/gsoc/docs/tags/rest","ed6"),exact:!0},{path:"/gsoc/docs/tags/reuse",component:u("/gsoc/docs/tags/reuse","934"),exact:!0},{path:"/gsoc/docs/tags/spasht",component:u("/gsoc/docs/tags/spasht","02f"),exact:!0},{path:"/gsoc/docs/tags/spdx-30",component:u("/gsoc/docs/tags/spdx-30","eca"),exact:!0},{path:"/gsoc/docs/tags/spdx-expression",component:u("/gsoc/docs/tags/spdx-expression","119"),exact:!0},{path:"/gsoc/docs/tags/ui",component:u("/gsoc/docs/tags/ui","0fb"),exact:!0},{path:"/gsoc/docs/tags/week-1",component:u("/gsoc/docs/tags/week-1","337"),exact:!0},{path:"/gsoc/docs/tags/week-10",component:u("/gsoc/docs/tags/week-10","28d"),exact:!0},{path:"/gsoc/docs/tags/week-11",component:u("/gsoc/docs/tags/week-11","6bb"),exact:!0},{path:"/gsoc/docs/tags/week-12",component:u("/gsoc/docs/tags/week-12","469"),exact:!0},{path:"/gsoc/docs/tags/week-2",component:u("/gsoc/docs/tags/week-2","73b"),exact:!0},{path:"/gsoc/docs/tags/week-3",component:u("/gsoc/docs/tags/week-3","ede"),exact:!0},{path:"/gsoc/docs/tags/week-4",component:u("/gsoc/docs/tags/week-4","eb0"),exact:!0},{path:"/gsoc/docs/tags/week-5",component:u("/gsoc/docs/tags/week-5","a1d"),exact:!0},{path:"/gsoc/docs/tags/week-6",component:u("/gsoc/docs/tags/week-6","ac0"),exact:!0},{path:"/gsoc/docs/tags/week-7",component:u("/gsoc/docs/tags/week-7","80a"),exact:!0},{path:"/gsoc/docs/tags/week-8",component:u("/gsoc/docs/tags/week-8","7fa"),exact:!0},{path:"/gsoc/docs/tags/week-9",component:u("/gsoc/docs/tags/week-9","da6"),exact:!0},{path:"/gsoc/docs",component:u("/gsoc/docs","79a"),routes:[{path:"/gsoc/docs/",component:u("/gsoc/docs/","8bd"),exact:!0},{path:"/gsoc/docs/2021",component:u("/gsoc/docs/2021","69d"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/",component:u("/gsoc/docs/2021/buildsystem/","bc0"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/build",component:u("/gsoc/docs/2021/buildsystem/build","939"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/final-evaluation",component:u("/gsoc/docs/2021/buildsystem/final-evaluation","9d7"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/first-evaluation",component:u("/gsoc/docs/2021/buildsystem/first-evaluation","1c9"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-05-28",component:u("/gsoc/docs/2021/buildsystem/updates/2021-05-28","385"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-06-11",component:u("/gsoc/docs/2021/buildsystem/updates/2021-06-11","5fd"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-06-18",component:u("/gsoc/docs/2021/buildsystem/updates/2021-06-18","640"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-06-22",component:u("/gsoc/docs/2021/buildsystem/updates/2021-06-22","5f2"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-06-29",component:u("/gsoc/docs/2021/buildsystem/updates/2021-06-29","c29"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-07-09",component:u("/gsoc/docs/2021/buildsystem/updates/2021-07-09","204"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-07-23",component:u("/gsoc/docs/2021/buildsystem/updates/2021-07-23","7a7"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-07-30",component:u("/gsoc/docs/2021/buildsystem/updates/2021-07-30","626"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-08-06",component:u("/gsoc/docs/2021/buildsystem/updates/2021-08-06","52b"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/buildsystem/updates/2021-08-13",component:u("/gsoc/docs/2021/buildsystem/updates/2021-08-13","127"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/",component:u("/gsoc/docs/2021/copyrights/","dde"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/setup",component:u("/gsoc/docs/2021/copyrights/setup","a54"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-06-07",component:u("/gsoc/docs/2021/copyrights/updates/2021-06-07","0cb"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-06-15",component:u("/gsoc/docs/2021/copyrights/updates/2021-06-15","9a4"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-06-22",component:u("/gsoc/docs/2021/copyrights/updates/2021-06-22","b6e"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-07-06",component:u("/gsoc/docs/2021/copyrights/updates/2021-07-06","83c"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-07-13",component:u("/gsoc/docs/2021/copyrights/updates/2021-07-13","391"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-07-20",component:u("/gsoc/docs/2021/copyrights/updates/2021-07-20","1d0"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-08-03",component:u("/gsoc/docs/2021/copyrights/updates/2021-08-03","940"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/copyrights/updates/2021-08-10",component:u("/gsoc/docs/2021/copyrights/updates/2021-08-10","864"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/",component:u("/gsoc/docs/2021/microservice/","8b0"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/dockerImages",component:u("/gsoc/docs/2021/microservice/dockerImages","6d7"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/setup",component:u("/gsoc/docs/2021/microservice/setup","e13"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-06-07",component:u("/gsoc/docs/2021/microservice/updates/2021-06-07","767"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-06-15",component:u("/gsoc/docs/2021/microservice/updates/2021-06-15","1cc"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-06-22",component:u("/gsoc/docs/2021/microservice/updates/2021-06-22","ab2"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-06-29",component:u("/gsoc/docs/2021/microservice/updates/2021-06-29","b5e"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-07-06",component:u("/gsoc/docs/2021/microservice/updates/2021-07-06","f04"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-07-13",component:u("/gsoc/docs/2021/microservice/updates/2021-07-13","092"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-07-20",component:u("/gsoc/docs/2021/microservice/updates/2021-07-20","58b"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-07-27",component:u("/gsoc/docs/2021/microservice/updates/2021-07-27","087"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-08-03",component:u("/gsoc/docs/2021/microservice/updates/2021-08-03","413"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/microservice/updates/2021-08-17",component:u("/gsoc/docs/2021/microservice/updates/2021-08-17","a5c"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/",component:u("/gsoc/docs/2021/minerva/","112"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/installation",component:u("/gsoc/docs/2021/minerva/installation","7de"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-06-07",component:u("/gsoc/docs/2021/minerva/updates/2021-06-07","758"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-06-15",component:u("/gsoc/docs/2021/minerva/updates/2021-06-15","227"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-06-22",component:u("/gsoc/docs/2021/minerva/updates/2021-06-22","512"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-06-29",component:u("/gsoc/docs/2021/minerva/updates/2021-06-29","1ea"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-07-05",component:u("/gsoc/docs/2021/minerva/updates/2021-07-05","724"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-07-13",component:u("/gsoc/docs/2021/minerva/updates/2021-07-13","5a6"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-07-20",component:u("/gsoc/docs/2021/minerva/updates/2021-07-20","a70"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-07-27",component:u("/gsoc/docs/2021/minerva/updates/2021-07-27","3ee"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-08-03",component:u("/gsoc/docs/2021/minerva/updates/2021-08-03","1a2"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-08-10",component:u("/gsoc/docs/2021/minerva/updates/2021-08-10","412"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/minerva/updates/2021-08-17",component:u("/gsoc/docs/2021/minerva/updates/2021-08-17","194"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/",component:u("/gsoc/docs/2021/scancode/","326"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/copyright",component:u("/gsoc/docs/2021/scancode/copyright","9db"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/first_evaluation",component:u("/gsoc/docs/2021/scancode/first_evaluation","dd5"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/installation",component:u("/gsoc/docs/2021/scancode/installation","b87"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-05-28",component:u("/gsoc/docs/2021/scancode/updates/2021-05-28","c6b"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-06-11",component:u("/gsoc/docs/2021/scancode/updates/2021-06-11","059"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-06-18",component:u("/gsoc/docs/2021/scancode/updates/2021-06-18","abb"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-06-22",component:u("/gsoc/docs/2021/scancode/updates/2021-06-22","ba2"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-06-29",component:u("/gsoc/docs/2021/scancode/updates/2021-06-29","aeb"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-07-06",component:u("/gsoc/docs/2021/scancode/updates/2021-07-06","df2"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-07-13",component:u("/gsoc/docs/2021/scancode/updates/2021-07-13","a84"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-07-20",component:u("/gsoc/docs/2021/scancode/updates/2021-07-20","0b4"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/scancode/updates/2021-07-27",component:u("/gsoc/docs/2021/scancode/updates/2021-07-27","54b"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/",component:u("/gsoc/docs/2021/ui/","307"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/installation",component:u("/gsoc/docs/2021/ui/installation","3ac"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/styleGuide",component:u("/gsoc/docs/2021/ui/styleGuide","442"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-06-15",component:u("/gsoc/docs/2021/ui/updates/aman/2021-06-15","bfb"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-06-22",component:u("/gsoc/docs/2021/ui/updates/aman/2021-06-22","e80"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-06-29",component:u("/gsoc/docs/2021/ui/updates/aman/2021-06-29","730"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-07-06",component:u("/gsoc/docs/2021/ui/updates/aman/2021-07-06","0bc"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-07-13",component:u("/gsoc/docs/2021/ui/updates/aman/2021-07-13","a6c"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-07-20",component:u("/gsoc/docs/2021/ui/updates/aman/2021-07-20","e95"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-07-27",component:u("/gsoc/docs/2021/ui/updates/aman/2021-07-27","06c"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-08-03",component:u("/gsoc/docs/2021/ui/updates/aman/2021-08-03","54f"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-08-10",component:u("/gsoc/docs/2021/ui/updates/aman/2021-08-10","527"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/aman/2021-08-17",component:u("/gsoc/docs/2021/ui/updates/aman/2021-08-17","ba6"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-06-15",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-06-15","686"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-06-22",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-06-22","dbb"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-06-29",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-06-29","e3d"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-07-06",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-07-06","260"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-07-13",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-07-13","857"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-07-20",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-07-20","0f8"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-07-27",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-07-27","2b8"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-08-03",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-08-03","200"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-08-10",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-08-10","37f"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2021/ui/updates/shruti/2021-08-17",component:u("/gsoc/docs/2021/ui/updates/shruti/2021-08-17","82a"),exact:!0,sidebar:"2021"},{path:"/gsoc/docs/2022",component:u("/gsoc/docs/2022","3c9"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/",component:u("/gsoc/docs/2022/atarashi/","1f8"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-06-02",component:u("/gsoc/docs/2022/atarashi/updates/2022-06-02","4aa"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-06-13",component:u("/gsoc/docs/2022/atarashi/updates/2022-06-13","184"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-06-20",component:u("/gsoc/docs/2022/atarashi/updates/2022-06-20","9c4"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-06-27",component:u("/gsoc/docs/2022/atarashi/updates/2022-06-27","3b7"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-07-04",component:u("/gsoc/docs/2022/atarashi/updates/2022-07-04","ce2"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-07-11",component:u("/gsoc/docs/2022/atarashi/updates/2022-07-11","2fa"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-07-19",component:u("/gsoc/docs/2022/atarashi/updates/2022-07-19","8a1"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-07-26",component:u("/gsoc/docs/2022/atarashi/updates/2022-07-26","855"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-08-02",component:u("/gsoc/docs/2022/atarashi/updates/2022-08-02","7cf"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-08-09",component:u("/gsoc/docs/2022/atarashi/updates/2022-08-09","e2c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-08-16",component:u("/gsoc/docs/2022/atarashi/updates/2022-08-16","491"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-08-23",component:u("/gsoc/docs/2022/atarashi/updates/2022-08-23","a00"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/atarashi/updates/2022-08-30",component:u("/gsoc/docs/2022/atarashi/updates/2022-08-30","957"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/GSoC-projects",component:u("/gsoc/docs/2022/GSoC-projects","632"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/02-06-2022",component:u("/gsoc/docs/2022/minutes/02-06-2022","c9d"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/04-08-2022",component:u("/gsoc/docs/2022/minutes/04-08-2022","d9b"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/07-07-2022",component:u("/gsoc/docs/2022/minutes/07-07-2022","46a"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/09-06-2022",component:u("/gsoc/docs/2022/minutes/09-06-2022","49f"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/11-08-2022",component:u("/gsoc/docs/2022/minutes/11-08-2022","9d7"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/14-07-2022",component:u("/gsoc/docs/2022/minutes/14-07-2022","cbf"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/16-06-2022",component:u("/gsoc/docs/2022/minutes/16-06-2022","490"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/18-08-2022",component:u("/gsoc/docs/2022/minutes/18-08-2022","60b"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/21-07-2022",component:u("/gsoc/docs/2022/minutes/21-07-2022","8d6"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/23-06-2022",component:u("/gsoc/docs/2022/minutes/23-06-2022","657"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/25-08-2022",component:u("/gsoc/docs/2022/minutes/25-08-2022","922"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/28-07-2022",component:u("/gsoc/docs/2022/minutes/28-07-2022","dd4"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/minutes/30-06-2022",component:u("/gsoc/docs/2022/minutes/30-06-2022","951"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/",component:u("/gsoc/docs/2022/project/","f1b"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-06-02",component:u("/gsoc/docs/2022/project/updates/2022-06-02","0dc"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-06-09",component:u("/gsoc/docs/2022/project/updates/2022-06-09","11e"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-06-16",component:u("/gsoc/docs/2022/project/updates/2022-06-16","e8c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-06-23",component:u("/gsoc/docs/2022/project/updates/2022-06-23","5a9"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-06-30",component:u("/gsoc/docs/2022/project/updates/2022-06-30","9a1"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-07-07",component:u("/gsoc/docs/2022/project/updates/2022-07-07","97c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-07-14",component:u("/gsoc/docs/2022/project/updates/2022-07-14","c29"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-07-21",component:u("/gsoc/docs/2022/project/updates/2022-07-21","964"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-07-28",component:u("/gsoc/docs/2022/project/updates/2022-07-28","068"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-08-04",component:u("/gsoc/docs/2022/project/updates/2022-08-04","80c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-08-11",component:u("/gsoc/docs/2022/project/updates/2022-08-11","0fc"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-08-18",component:u("/gsoc/docs/2022/project/updates/2022-08-18","015"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-08-25",component:u("/gsoc/docs/2022/project/updates/2022-08-25","785"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-09-01",component:u("/gsoc/docs/2022/project/updates/2022-09-01","ad0"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/project/updates/2022-09-08",component:u("/gsoc/docs/2022/project/updates/2022-09-08","2d5"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/",component:u("/gsoc/docs/2022/reuse/","006"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-06-02",component:u("/gsoc/docs/2022/reuse/updates/2022-06-02","695"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-06-13",component:u("/gsoc/docs/2022/reuse/updates/2022-06-13","666"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-06-20",component:u("/gsoc/docs/2022/reuse/updates/2022-06-20","9a5"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-06-27",component:u("/gsoc/docs/2022/reuse/updates/2022-06-27","845"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-07-04",component:u("/gsoc/docs/2022/reuse/updates/2022-07-04","dfe"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-07-11",component:u("/gsoc/docs/2022/reuse/updates/2022-07-11","879"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-07-18",component:u("/gsoc/docs/2022/reuse/updates/2022-07-18","3b5"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-07-25",component:u("/gsoc/docs/2022/reuse/updates/2022-07-25","a6f"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-08-02",component:u("/gsoc/docs/2022/reuse/updates/2022-08-02","40a"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-08-09",component:u("/gsoc/docs/2022/reuse/updates/2022-08-09","711"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-08-16",component:u("/gsoc/docs/2022/reuse/updates/2022-08-16","53c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-08-23",component:u("/gsoc/docs/2022/reuse/updates/2022-08-23","cbc"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-08-30",component:u("/gsoc/docs/2022/reuse/updates/2022-08-30","8fb"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/reuse/updates/2022-09-06",component:u("/gsoc/docs/2022/reuse/updates/2022-09-06","dee"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/",component:u("/gsoc/docs/2022/spasht/","f22"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/updates/2022-06-02",component:u("/gsoc/docs/2022/spasht/updates/2022-06-02","2fc"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/updates/2022-06-08",component:u("/gsoc/docs/2022/spasht/updates/2022-06-08","480"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/updates/2022-06-15",component:u("/gsoc/docs/2022/spasht/updates/2022-06-15","7ae"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/updates/2022-06-22",component:u("/gsoc/docs/2022/spasht/updates/2022-06-22","d92"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/updates/2022-07-06",component:u("/gsoc/docs/2022/spasht/updates/2022-07-06","980"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/spasht/updates/2022-07-13",component:u("/gsoc/docs/2022/spasht/updates/2022-07-13","9ad"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/",component:u("/gsoc/docs/2022/ui/","bc7"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/installation",component:u("/gsoc/docs/2022/ui/installation","5e5"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/ayush/2022-06-02",component:u("/gsoc/docs/2022/ui/updates/ayush/2022-06-02","08d"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-06-02",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-06-02","158"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-06-20",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-06-20","9c4"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-06-27",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-06-27","004"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-07-04",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-07-04","fdb"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-07-11",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-07-11","b79"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-07-17",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-07-17","5dd"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-07-24",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-07-24","542"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-07-31",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-07-31","101"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-08-07",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-08-07","65c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-08-14",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-08-14","ce5"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-08-21",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-08-21","20c"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-08-28",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-08-28","a72"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/krishna/2022-09-04",component:u("/gsoc/docs/2022/ui/updates/krishna/2022-09-04","aa9"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2021-06-24",component:u("/gsoc/docs/2022/ui/updates/samuel/2021-06-24","57f"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-06-02",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-06-02","969"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-06-30",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-06-30","3d0"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-07-07",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-07-07","2fe"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-07-14",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-07-14","e9f"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-07-21",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-07-21","e80"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-08-02",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-08-02","acd"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-08-11",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-08-11","7f4"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-08-18",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-08-18","dd2"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-08-25",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-08-25","dda"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-09-08",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-09-08","3f9"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/samuel/2022-09-1",component:u("/gsoc/docs/2022/ui/updates/samuel/2022-09-1","627"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-06-02",component:u("/gsoc/docs/2022/ui/updates/soham/2022-06-02","53a"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-06-24",component:u("/gsoc/docs/2022/ui/updates/soham/2022-06-24","d05"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-07-3",component:u("/gsoc/docs/2022/ui/updates/soham/2022-07-3","6b8"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-07-7",component:u("/gsoc/docs/2022/ui/updates/soham/2022-07-7","46b"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-07-8",component:u("/gsoc/docs/2022/ui/updates/soham/2022-07-8","aac"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-07-9",component:u("/gsoc/docs/2022/ui/updates/soham/2022-07-9","4cc"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-08-01",component:u("/gsoc/docs/2022/ui/updates/soham/2022-08-01","a0a"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-08-05",component:u("/gsoc/docs/2022/ui/updates/soham/2022-08-05","5fd"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2022/ui/updates/soham/2022-08-08",component:u("/gsoc/docs/2022/ui/updates/soham/2022-08-08","6b1"),exact:!0,sidebar:"2022"},{path:"/gsoc/docs/2023",component:u("/gsoc/docs/2023","f5e"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/",component:u("/gsoc/docs/2023/copyrights/","949"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-05-11",component:u("/gsoc/docs/2023/copyrights/updates/2023-05-11","c41"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-05-31",component:u("/gsoc/docs/2023/copyrights/updates/2023-05-31","b3b"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-06-07",component:u("/gsoc/docs/2023/copyrights/updates/2023-06-07","3ee"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-06-14",component:u("/gsoc/docs/2023/copyrights/updates/2023-06-14","9cb"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-06-21",component:u("/gsoc/docs/2023/copyrights/updates/2023-06-21","2a7"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-06-28",component:u("/gsoc/docs/2023/copyrights/updates/2023-06-28","363"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-07-05",component:u("/gsoc/docs/2023/copyrights/updates/2023-07-05","716"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-07-12",component:u("/gsoc/docs/2023/copyrights/updates/2023-07-12","f50"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-07-19",component:u("/gsoc/docs/2023/copyrights/updates/2023-07-19","340"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-07-26",component:u("/gsoc/docs/2023/copyrights/updates/2023-07-26","e28"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-08-02",component:u("/gsoc/docs/2023/copyrights/updates/2023-08-02","e1e"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-08-09",component:u("/gsoc/docs/2023/copyrights/updates/2023-08-09","cf4"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-08-16",component:u("/gsoc/docs/2023/copyrights/updates/2023-08-16","ef2"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-08-23",component:u("/gsoc/docs/2023/copyrights/updates/2023-08-23","fb7"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-08-30",component:u("/gsoc/docs/2023/copyrights/updates/2023-08-30","cfc"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-09-06",component:u("/gsoc/docs/2023/copyrights/updates/2023-09-06","814"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-09-13",component:u("/gsoc/docs/2023/copyrights/updates/2023-09-13","5e3"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-09-20",component:u("/gsoc/docs/2023/copyrights/updates/2023-09-20","98a"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-09-27",component:u("/gsoc/docs/2023/copyrights/updates/2023-09-27","d2d"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-10-04",component:u("/gsoc/docs/2023/copyrights/updates/2023-10-04","ba5"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-10-11",component:u("/gsoc/docs/2023/copyrights/updates/2023-10-11","a6b"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-10-18",component:u("/gsoc/docs/2023/copyrights/updates/2023-10-18","1c9"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/copyrights/updates/2023-10-25",component:u("/gsoc/docs/2023/copyrights/updates/2023-10-25","ea2"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/",component:u("/gsoc/docs/2023/cyclonedx/","305"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-05-11",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-05-11","ad2"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-06-01",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-06-01","000"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-06-08",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-06-08","27f"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-06-15",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-06-15","eec"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-06-22",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-06-22","77b"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-06-29",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-06-29","189"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-07-06",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-07-06","fa2"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-07-13",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-07-13","10f"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-07-20",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-07-20","576"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-07-27",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-07-27","9ed"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-08-03",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-08-03","fff"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/cyclonedx/updates/2023-08-10",component:u("/gsoc/docs/2023/cyclonedx/updates/2023-08-10","c16"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/GSoC-projects",component:u("/gsoc/docs/2023/GSoC-projects","f47"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/",component:u("/gsoc/docs/2023/laas/","4a6"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/finalevaluation",component:u("/gsoc/docs/2023/laas/finalevaluation","be2"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-05-11",component:u("/gsoc/docs/2023/laas/updates/2023-05-11","a36"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-06-02",component:u("/gsoc/docs/2023/laas/updates/2023-06-02","8e3"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-06-09",component:u("/gsoc/docs/2023/laas/updates/2023-06-09","c34"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-06-16",component:u("/gsoc/docs/2023/laas/updates/2023-06-16","4b6"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-06-23",component:u("/gsoc/docs/2023/laas/updates/2023-06-23","a84"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-06-30",component:u("/gsoc/docs/2023/laas/updates/2023-06-30","767"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-07-07",component:u("/gsoc/docs/2023/laas/updates/2023-07-07","a49"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-07-14",component:u("/gsoc/docs/2023/laas/updates/2023-07-14","709"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-07-21",component:u("/gsoc/docs/2023/laas/updates/2023-07-21","57c"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-07-28",component:u("/gsoc/docs/2023/laas/updates/2023-07-28","754"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/laas/updates/2023-08-04",component:u("/gsoc/docs/2023/laas/updates/2023-08-04","b89"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-05-11",component:u("/gsoc/docs/2023/minutes/2023-05-11","58b"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-05-18",component:u("/gsoc/docs/2023/minutes/2023-05-18","95f"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-05-25",component:u("/gsoc/docs/2023/minutes/2023-05-25","615"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-06-01",component:u("/gsoc/docs/2023/minutes/2023-06-01","570"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-06-08",component:u("/gsoc/docs/2023/minutes/2023-06-08","34c"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-06-15",component:u("/gsoc/docs/2023/minutes/2023-06-15","47d"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-06-22",component:u("/gsoc/docs/2023/minutes/2023-06-22","74e"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-06-29",component:u("/gsoc/docs/2023/minutes/2023-06-29","102"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-07-06",component:u("/gsoc/docs/2023/minutes/2023-07-06","c25"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-07-20",component:u("/gsoc/docs/2023/minutes/2023-07-20","bcd"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-08-10",component:u("/gsoc/docs/2023/minutes/2023-08-10","434"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-08-17",component:u("/gsoc/docs/2023/minutes/2023-08-17","e4d"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/minutes/2023-08-24",component:u("/gsoc/docs/2023/minutes/2023-08-24","cef"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/",component:u("/gsoc/docs/2023/rest/","be7"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-05-11",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-05-11","0df"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-06-01",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-06-01","e3b"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-06-08",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-06-08","fea"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-06-15",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-06-15","f23"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-06-22",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-06-22","b36"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-06-29",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-06-29","955"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-07-06",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-07-06","e07"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-07-13",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-07-13","aa5"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-07-20",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-07-20","49b"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-07-27",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-07-27","a5e"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-08-03",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-08-03","79f"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-08-10",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-08-10","590"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/samuel/2023-08-17",component:u("/gsoc/docs/2023/rest/updates/samuel/2023-08-17","11f"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-05-11",component:u("/gsoc/docs/2023/rest/updates/soham/2023-05-11","0e5"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-06-01",component:u("/gsoc/docs/2023/rest/updates/soham/2023-06-01","f2f"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-06-08",component:u("/gsoc/docs/2023/rest/updates/soham/2023-06-08","148"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-06-27",component:u("/gsoc/docs/2023/rest/updates/soham/2023-06-27","5b6"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-07-05",component:u("/gsoc/docs/2023/rest/updates/soham/2023-07-05","54a"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-07-16",component:u("/gsoc/docs/2023/rest/updates/soham/2023-07-16","495"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-07-28",component:u("/gsoc/docs/2023/rest/updates/soham/2023-07-28","18e"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2023/rest/updates/soham/2023-08-05",component:u("/gsoc/docs/2023/rest/updates/soham/2023-08-05","867"),exact:!0,sidebar:"2023"},{path:"/gsoc/docs/2024",component:u("/gsoc/docs/2024","166"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/",component:u("/gsoc/docs/2024/ci-scanner/","14b"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-05-07",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-05-07","394"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-06-06",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-06-06","d32"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-06-13",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-06-13","084"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-06-20",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-06-20","265"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-06-27",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-06-27","dce"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-07-04",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-07-04","da7"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-07-11",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-07-11","637"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-07-18",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-07-18","211"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/ci-scanner/updates/2024-07-25",component:u("/gsoc/docs/2024/ci-scanner/updates/2024-07-25","8fd"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/GSoC-projects",component:u("/gsoc/docs/2024/GSoC-projects","b7c"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/",component:u("/gsoc/docs/2024/license-detection/","ce1"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-05-30",component:u("/gsoc/docs/2024/license-detection/updates/2024-05-30","bf0"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-06-06",component:u("/gsoc/docs/2024/license-detection/updates/2024-06-06","052"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-06-13",component:u("/gsoc/docs/2024/license-detection/updates/2024-06-13","d1c"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-06-20",component:u("/gsoc/docs/2024/license-detection/updates/2024-06-20","263"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-06-27",component:u("/gsoc/docs/2024/license-detection/updates/2024-06-27","c46"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-07-04",component:u("/gsoc/docs/2024/license-detection/updates/2024-07-04","476"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/license-detection/updates/2024-07-11",component:u("/gsoc/docs/2024/license-detection/updates/2024-07-11","613"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-05-30",component:u("/gsoc/docs/2024/minutes/2024-05-30","bc2"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-06-06",component:u("/gsoc/docs/2024/minutes/2024-06-06","4b0"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-06-13",component:u("/gsoc/docs/2024/minutes/2024-06-13","c68"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-06-20",component:u("/gsoc/docs/2024/minutes/2024-06-20","f97"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-06-27",component:u("/gsoc/docs/2024/minutes/2024-06-27","6c7"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-07-04",component:u("/gsoc/docs/2024/minutes/2024-07-04","0a7"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/minutes/2024-07-11",component:u("/gsoc/docs/2024/minutes/2024-07-11","f74"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/",component:u("/gsoc/docs/2024/pipeline/","f15"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-05-07",component:u("/gsoc/docs/2024/pipeline/updates/2024-05-07","a2a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-05-30",component:u("/gsoc/docs/2024/pipeline/updates/2024-05-30","c5f"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-06-06",component:u("/gsoc/docs/2024/pipeline/updates/2024-06-06","9fb"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-06-13",component:u("/gsoc/docs/2024/pipeline/updates/2024-06-13","cdd"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-06-20",component:u("/gsoc/docs/2024/pipeline/updates/2024-06-20","9af"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-06-27",component:u("/gsoc/docs/2024/pipeline/updates/2024-06-27","1c4"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/pipeline/updates/2024-07-04",component:u("/gsoc/docs/2024/pipeline/updates/2024-07-04","ba2"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/",component:u("/gsoc/docs/2024/rest/","038"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/API-guidelines",component:u("/gsoc/docs/2024/rest/API-guidelines","a31"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-05-07",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-05-07","33d"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-05-30",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-05-30","dbe"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-06-06",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-06-06","db5"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-06-11",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-06-11","299"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-06-18",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-06-18","5c3"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-06-25",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-06-25","5fc"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-07-02",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-07-02","c7c"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-07-09",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-07-09","0e5"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/Divij/2024-07-16",component:u("/gsoc/docs/2024/rest/updates/Divij/2024-07-16","898"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/valens/2024-05-07",component:u("/gsoc/docs/2024/rest/updates/valens/2024-05-07","a95"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/valens/2024-05-30",component:u("/gsoc/docs/2024/rest/updates/valens/2024-05-30","d4a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/valens/2024-06-13",component:u("/gsoc/docs/2024/rest/updates/valens/2024-06-13","e38"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/valens/2024-06-20",component:u("/gsoc/docs/2024/rest/updates/valens/2024-06-20","8e0"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/valens/2024-06-27",component:u("/gsoc/docs/2024/rest/updates/valens/2024-06-27","bd0"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/rest/updates/valens/2024-07-04",component:u("/gsoc/docs/2024/rest/updates/valens/2024-07-04","f06"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/",component:u("/gsoc/docs/2024/scheduler/","10a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/2023-05-30",component:u("/gsoc/docs/2024/scheduler/updates/2023-05-30","6e9"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/2024-05-09",component:u("/gsoc/docs/2024/scheduler/updates/2024-05-09","c74"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/2024-05-23",component:u("/gsoc/docs/2024/scheduler/updates/2024-05-23","069"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/2024-06-06",component:u("/gsoc/docs/2024/scheduler/updates/2024-06-06","868"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/2024-06-07",component:u("/gsoc/docs/2024/scheduler/updates/2024-06-07","2ee"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31",component:u("/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31","d65"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14",component:u("/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14","1e0"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21",component:u("/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21","05e"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28",component:u("/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28","b04"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05",component:u("/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05","80a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12",component:u("/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12","e35"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/General/2024-05-30",component:u("/gsoc/docs/2024/scheduler/updates/General/2024-05-30","2ac"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/General/2024-06-13",component:u("/gsoc/docs/2024/scheduler/updates/General/2024-06-13","846"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/General/2024-06-20",component:u("/gsoc/docs/2024/scheduler/updates/General/2024-06-20","e8b"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/General/2024-06-27",component:u("/gsoc/docs/2024/scheduler/updates/General/2024-06-27","f25"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/General/2024-07-04",component:u("/gsoc/docs/2024/scheduler/updates/General/2024-07-04","e2e"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/scheduler/updates/General/2024-07-11",component:u("/gsoc/docs/2024/scheduler/updates/General/2024-07-11","75d"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/",component:u("/gsoc/docs/2024/spdx-expression/","08d"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/updates/2024-05-07",component:u("/gsoc/docs/2024/spdx-expression/updates/2024-05-07","e68"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/updates/2024-05-28",component:u("/gsoc/docs/2024/spdx-expression/updates/2024-05-28","9a6"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/updates/2024-06-04",component:u("/gsoc/docs/2024/spdx-expression/updates/2024-06-04","25a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/updates/2024-06-11",component:u("/gsoc/docs/2024/spdx-expression/updates/2024-06-11","a81"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/updates/2024-06-18",component:u("/gsoc/docs/2024/spdx-expression/updates/2024-06-18","595"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx-expression/updates/2024-06-25",component:u("/gsoc/docs/2024/spdx-expression/updates/2024-06-25","4ba"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/",component:u("/gsoc/docs/2024/spdx30/","094"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/updates/2024-05-07",component:u("/gsoc/docs/2024/spdx30/updates/2024-05-07","942"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/updates/2024-05-28",component:u("/gsoc/docs/2024/spdx30/updates/2024-05-28","a57"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/updates/2024-06-04",component:u("/gsoc/docs/2024/spdx30/updates/2024-06-04","bea"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/updates/2024-06-11",component:u("/gsoc/docs/2024/spdx30/updates/2024-06-11","f1a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/updates/2024-06-18",component:u("/gsoc/docs/2024/spdx30/updates/2024-06-18","81d"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/spdx30/updates/2024-06-25",component:u("/gsoc/docs/2024/spdx30/updates/2024-06-25","7a4"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/text-phrases/",component:u("/gsoc/docs/2024/text-phrases/","6ef"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/2024/text-phrases/updates/2024-05-7",component:u("/gsoc/docs/2024/text-phrases/updates/2024-05-7","c0a"),exact:!0,sidebar:"2024"},{path:"/gsoc/docs/guidelines/",component:u("/gsoc/docs/guidelines/","8cc"),exact:!0}]}]}]},{path:"/gsoc/",component:u("/gsoc/","2f0"),exact:!0},{path:"*",component:u("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>r});var s=n(67294),o=n(85893);const a=s.createContext(!1);function r(e){let{children:t}=e;const[n,r]=(0,s.useState)(!1);return(0,s.useEffect)((()=>{r(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},97221:(e,t,n)=>{"use strict";var s=n(67294),o=n(20745),a=n(73727),r=n(70405),i=n(10412);const c=[n(32497),n(3310),n(18320),n(52295)];var d=n(723),l=n(16550),u=n(18790),p=n(85893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var g=n(35742),m=n(52263),h=n(44996),b=n(86668),y=n(8264),v=n(94711),x=n(19727),w=n(43320),k=n(18780),_=n(90197);function S(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),s=(0,v.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(g.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:s.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:s.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),s=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:s}=(0,l.TH)();return e+(0,k.applyTrailingSlash)((0,h.Z)(s),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:s;return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:x.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(S,{}),(0,p.jsx)(_.Z,{tag:w.HX,locale:e}),(0,p.jsx)(g.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const j=new Map;var T=n(98934),A=n(58940),L=n(20469);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),s=1;s<t;s++)n[s-1]=arguments[s];const o=c.map((t=>{const s=t.default?.[e]??t[e];return s?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:s}=e;return(0,L.Z)((()=>{s!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const s=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(s&&o&&!a)return;const{hash:r}=t;if(r){const e=decodeURIComponent(r.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:s}),P("onRouteDidUpdate",{previousLocation:s,location:n}))}),[s,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,u.f)(d.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends s.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=i.Z.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(N,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(l.AW,{location:t,render:()=>e})})}}const O=D,I="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${I}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function B(){const{siteConfig:{baseUrl:e}}=(0,m.Z)();return(0,p.jsx)(p.Fragment,{children:!i.Z.canUseDOM&&(0,p.jsx)(g.Z,{children:(0,p.jsx)("script",{children:z(e)})})})}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.Z)(),{pathname:n}=(0,l.TH)();return t&&n===e?(0,p.jsx)(B,{}):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:s,localeConfigs:o}}=(0,m.Z)(),a=(0,h.Z)(e),{htmlLang:r,direction:i}=o[s];return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("html",{lang:r,dir:i}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:a})]})}var G=n(44763),q=n(72389);function H(){const e=(0,q.Z)();return(0,p.jsx)(g.Z,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}const Z=(0,u.H)(d.Z);function V(){const e=function(e){if(j.has(e.pathname))return{...e,pathname:j.get(e.pathname)};if((0,u.f)(d.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return j.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return j.set(e.pathname,t),{...e,pathname:t}}((0,l.TH)());return(0,p.jsx)(O,{location:e,children:Z})}function W(){return(0,p.jsx)(G.Z,{children:(0,p.jsx)(A.M,{children:(0,p.jsxs)(T.t,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(U,{}),(0,p.jsx)(C,{}),(0,p.jsx)($,{}),(0,p.jsx)(V,{})]}),(0,p.jsx)(H,{})]})})})}var Q=n(16887);const Y=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const s=document.createElement("link");s.setAttribute("rel","prefetch"),s.setAttribute("href",e),s.onload=()=>t(),s.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(s)}))}:function(e){return new Promise(((t,n)=>{const s=new XMLHttpRequest;s.open("GET",e,!0),s.withCredentials=!0,s.onload=()=>{200===s.status?t():n()},s.send(null)}))};var K=n(99670);const X=new Set,J=new Set,ee=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,te={prefetch:e=>{if(!(e=>!ee()&&!J.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=(0,u.f)(d.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!ee()&&!J.has(e))(e)&&(J.add(e),R(e))},ne=Object.freeze(te),se=Boolean(!0);if(i.Z.canUseDOM){window.docusaurus=ne;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(r.B6,{children:(0,p.jsx)(a.VK,{children:(0,p.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(se)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const s=o.createRoot(e,{onRecoverableError:n});s.render(t),window.docusaurusRoot=s}};R(window.location.pathname).then((()=>{(0,s.startTransition)(i)}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>p});var s=n(67294),o=n(36809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/gsoc/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/gsoc/docs","mainDocId":"index","docs":[{"id":"2021/buildsystem/build","path":"/gsoc/docs/2021/buildsystem/build","sidebar":"2021"},{"id":"2021/buildsystem/final-evaluation","path":"/gsoc/docs/2021/buildsystem/final-evaluation","sidebar":"2021"},{"id":"2021/buildsystem/first-evaluation","path":"/gsoc/docs/2021/buildsystem/first-evaluation","sidebar":"2021"},{"id":"2021/buildsystem/index","path":"/gsoc/docs/2021/buildsystem/","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-05-28","path":"/gsoc/docs/2021/buildsystem/updates/2021-05-28","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-06-11","path":"/gsoc/docs/2021/buildsystem/updates/2021-06-11","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-06-18","path":"/gsoc/docs/2021/buildsystem/updates/2021-06-18","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-06-22","path":"/gsoc/docs/2021/buildsystem/updates/2021-06-22","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-06-29","path":"/gsoc/docs/2021/buildsystem/updates/2021-06-29","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-07-09","path":"/gsoc/docs/2021/buildsystem/updates/2021-07-09","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-07-23","path":"/gsoc/docs/2021/buildsystem/updates/2021-07-23","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-07-30","path":"/gsoc/docs/2021/buildsystem/updates/2021-07-30","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-08-06","path":"/gsoc/docs/2021/buildsystem/updates/2021-08-06","sidebar":"2021"},{"id":"2021/buildsystem/updates/2021-08-13","path":"/gsoc/docs/2021/buildsystem/updates/2021-08-13","sidebar":"2021"},{"id":"2021/copyrights/index","path":"/gsoc/docs/2021/copyrights/","sidebar":"2021"},{"id":"2021/copyrights/setup","path":"/gsoc/docs/2021/copyrights/setup","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-06-07","path":"/gsoc/docs/2021/copyrights/updates/2021-06-07","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-06-15","path":"/gsoc/docs/2021/copyrights/updates/2021-06-15","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-06-22","path":"/gsoc/docs/2021/copyrights/updates/2021-06-22","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-07-06","path":"/gsoc/docs/2021/copyrights/updates/2021-07-06","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-07-13","path":"/gsoc/docs/2021/copyrights/updates/2021-07-13","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-07-20","path":"/gsoc/docs/2021/copyrights/updates/2021-07-20","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-08-03","path":"/gsoc/docs/2021/copyrights/updates/2021-08-03","sidebar":"2021"},{"id":"2021/copyrights/updates/2021-08-10","path":"/gsoc/docs/2021/copyrights/updates/2021-08-10","sidebar":"2021"},{"id":"2021/index","path":"/gsoc/docs/2021","sidebar":"2021"},{"id":"2021/microservice/dockerImages","path":"/gsoc/docs/2021/microservice/dockerImages","sidebar":"2021"},{"id":"2021/microservice/index","path":"/gsoc/docs/2021/microservice/","sidebar":"2021"},{"id":"2021/microservice/setup","path":"/gsoc/docs/2021/microservice/setup","sidebar":"2021"},{"id":"2021/microservice/updates/2021-06-07","path":"/gsoc/docs/2021/microservice/updates/2021-06-07","sidebar":"2021"},{"id":"2021/microservice/updates/2021-06-15","path":"/gsoc/docs/2021/microservice/updates/2021-06-15","sidebar":"2021"},{"id":"2021/microservice/updates/2021-06-22","path":"/gsoc/docs/2021/microservice/updates/2021-06-22","sidebar":"2021"},{"id":"2021/microservice/updates/2021-06-29","path":"/gsoc/docs/2021/microservice/updates/2021-06-29","sidebar":"2021"},{"id":"2021/microservice/updates/2021-07-06","path":"/gsoc/docs/2021/microservice/updates/2021-07-06","sidebar":"2021"},{"id":"2021/microservice/updates/2021-07-13","path":"/gsoc/docs/2021/microservice/updates/2021-07-13","sidebar":"2021"},{"id":"2021/microservice/updates/2021-07-20","path":"/gsoc/docs/2021/microservice/updates/2021-07-20","sidebar":"2021"},{"id":"2021/microservice/updates/2021-07-27","path":"/gsoc/docs/2021/microservice/updates/2021-07-27","sidebar":"2021"},{"id":"2021/microservice/updates/2021-08-03","path":"/gsoc/docs/2021/microservice/updates/2021-08-03","sidebar":"2021"},{"id":"2021/microservice/updates/2021-08-17","path":"/gsoc/docs/2021/microservice/updates/2021-08-17","sidebar":"2021"},{"id":"2021/minerva/index","path":"/gsoc/docs/2021/minerva/","sidebar":"2021"},{"id":"2021/minerva/installation","path":"/gsoc/docs/2021/minerva/installation","sidebar":"2021"},{"id":"2021/minerva/updates/2021-06-07","path":"/gsoc/docs/2021/minerva/updates/2021-06-07","sidebar":"2021"},{"id":"2021/minerva/updates/2021-06-15","path":"/gsoc/docs/2021/minerva/updates/2021-06-15","sidebar":"2021"},{"id":"2021/minerva/updates/2021-06-22","path":"/gsoc/docs/2021/minerva/updates/2021-06-22","sidebar":"2021"},{"id":"2021/minerva/updates/2021-06-29","path":"/gsoc/docs/2021/minerva/updates/2021-06-29","sidebar":"2021"},{"id":"2021/minerva/updates/2021-07-05","path":"/gsoc/docs/2021/minerva/updates/2021-07-05","sidebar":"2021"},{"id":"2021/minerva/updates/2021-07-13","path":"/gsoc/docs/2021/minerva/updates/2021-07-13","sidebar":"2021"},{"id":"2021/minerva/updates/2021-07-20","path":"/gsoc/docs/2021/minerva/updates/2021-07-20","sidebar":"2021"},{"id":"2021/minerva/updates/2021-07-27","path":"/gsoc/docs/2021/minerva/updates/2021-07-27","sidebar":"2021"},{"id":"2021/minerva/updates/2021-08-03","path":"/gsoc/docs/2021/minerva/updates/2021-08-03","sidebar":"2021"},{"id":"2021/minerva/updates/2021-08-10","path":"/gsoc/docs/2021/minerva/updates/2021-08-10","sidebar":"2021"},{"id":"2021/minerva/updates/2021-08-17","path":"/gsoc/docs/2021/minerva/updates/2021-08-17","sidebar":"2021"},{"id":"2021/scancode/copyright","path":"/gsoc/docs/2021/scancode/copyright","sidebar":"2021"},{"id":"2021/scancode/first_evaluation","path":"/gsoc/docs/2021/scancode/first_evaluation","sidebar":"2021"},{"id":"2021/scancode/installation","path":"/gsoc/docs/2021/scancode/installation","sidebar":"2021"},{"id":"2021/scancode/introduction","path":"/gsoc/docs/2021/scancode/","sidebar":"2021"},{"id":"2021/scancode/updates/2021-05-28","path":"/gsoc/docs/2021/scancode/updates/2021-05-28","sidebar":"2021"},{"id":"2021/scancode/updates/2021-06-11","path":"/gsoc/docs/2021/scancode/updates/2021-06-11","sidebar":"2021"},{"id":"2021/scancode/updates/2021-06-18","path":"/gsoc/docs/2021/scancode/updates/2021-06-18","sidebar":"2021"},{"id":"2021/scancode/updates/2021-06-22","path":"/gsoc/docs/2021/scancode/updates/2021-06-22","sidebar":"2021"},{"id":"2021/scancode/updates/2021-06-29","path":"/gsoc/docs/2021/scancode/updates/2021-06-29","sidebar":"2021"},{"id":"2021/scancode/updates/2021-07-06","path":"/gsoc/docs/2021/scancode/updates/2021-07-06","sidebar":"2021"},{"id":"2021/scancode/updates/2021-07-13","path":"/gsoc/docs/2021/scancode/updates/2021-07-13","sidebar":"2021"},{"id":"2021/scancode/updates/2021-07-20","path":"/gsoc/docs/2021/scancode/updates/2021-07-20","sidebar":"2021"},{"id":"2021/scancode/updates/2021-07-27","path":"/gsoc/docs/2021/scancode/updates/2021-07-27","sidebar":"2021"},{"id":"2021/ui/index","path":"/gsoc/docs/2021/ui/","sidebar":"2021"},{"id":"2021/ui/installation","path":"/gsoc/docs/2021/ui/installation","sidebar":"2021"},{"id":"2021/ui/styleGuide","path":"/gsoc/docs/2021/ui/styleGuide","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-06-15","path":"/gsoc/docs/2021/ui/updates/aman/2021-06-15","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-06-22","path":"/gsoc/docs/2021/ui/updates/aman/2021-06-22","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-06-29","path":"/gsoc/docs/2021/ui/updates/aman/2021-06-29","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-07-06","path":"/gsoc/docs/2021/ui/updates/aman/2021-07-06","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-07-13","path":"/gsoc/docs/2021/ui/updates/aman/2021-07-13","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-07-20","path":"/gsoc/docs/2021/ui/updates/aman/2021-07-20","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-07-27","path":"/gsoc/docs/2021/ui/updates/aman/2021-07-27","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-08-03","path":"/gsoc/docs/2021/ui/updates/aman/2021-08-03","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-08-10","path":"/gsoc/docs/2021/ui/updates/aman/2021-08-10","sidebar":"2021"},{"id":"2021/ui/updates/aman/2021-08-17","path":"/gsoc/docs/2021/ui/updates/aman/2021-08-17","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-06-15","path":"/gsoc/docs/2021/ui/updates/shruti/2021-06-15","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-06-22","path":"/gsoc/docs/2021/ui/updates/shruti/2021-06-22","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-06-29","path":"/gsoc/docs/2021/ui/updates/shruti/2021-06-29","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-07-06","path":"/gsoc/docs/2021/ui/updates/shruti/2021-07-06","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-07-13","path":"/gsoc/docs/2021/ui/updates/shruti/2021-07-13","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-07-20","path":"/gsoc/docs/2021/ui/updates/shruti/2021-07-20","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-07-27","path":"/gsoc/docs/2021/ui/updates/shruti/2021-07-27","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-08-03","path":"/gsoc/docs/2021/ui/updates/shruti/2021-08-03","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-08-10","path":"/gsoc/docs/2021/ui/updates/shruti/2021-08-10","sidebar":"2021"},{"id":"2021/ui/updates/shruti/2021-08-17","path":"/gsoc/docs/2021/ui/updates/shruti/2021-08-17","sidebar":"2021"},{"id":"2022/atarashi/index","path":"/gsoc/docs/2022/atarashi/","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-06-02","path":"/gsoc/docs/2022/atarashi/updates/2022-06-02","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-06-13","path":"/gsoc/docs/2022/atarashi/updates/2022-06-13","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-06-20","path":"/gsoc/docs/2022/atarashi/updates/2022-06-20","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-06-27","path":"/gsoc/docs/2022/atarashi/updates/2022-06-27","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-07-04","path":"/gsoc/docs/2022/atarashi/updates/2022-07-04","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-07-11","path":"/gsoc/docs/2022/atarashi/updates/2022-07-11","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-07-19","path":"/gsoc/docs/2022/atarashi/updates/2022-07-19","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-07-26","path":"/gsoc/docs/2022/atarashi/updates/2022-07-26","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-08-02","path":"/gsoc/docs/2022/atarashi/updates/2022-08-02","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-08-09","path":"/gsoc/docs/2022/atarashi/updates/2022-08-09","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-08-16","path":"/gsoc/docs/2022/atarashi/updates/2022-08-16","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-08-23","path":"/gsoc/docs/2022/atarashi/updates/2022-08-23","sidebar":"2022"},{"id":"2022/atarashi/updates/2022-08-30","path":"/gsoc/docs/2022/atarashi/updates/2022-08-30","sidebar":"2022"},{"id":"2022/GSoC-projects","path":"/gsoc/docs/2022/GSoC-projects","sidebar":"2022"},{"id":"2022/index","path":"/gsoc/docs/2022","sidebar":"2022"},{"id":"2022/minutes/02-06-2022","path":"/gsoc/docs/2022/minutes/02-06-2022","sidebar":"2022"},{"id":"2022/minutes/04-08-2022","path":"/gsoc/docs/2022/minutes/04-08-2022","sidebar":"2022"},{"id":"2022/minutes/07-07-2022","path":"/gsoc/docs/2022/minutes/07-07-2022","sidebar":"2022"},{"id":"2022/minutes/09-06-2022","path":"/gsoc/docs/2022/minutes/09-06-2022","sidebar":"2022"},{"id":"2022/minutes/11-08-2022","path":"/gsoc/docs/2022/minutes/11-08-2022","sidebar":"2022"},{"id":"2022/minutes/14-07-2022","path":"/gsoc/docs/2022/minutes/14-07-2022","sidebar":"2022"},{"id":"2022/minutes/16-06-2022","path":"/gsoc/docs/2022/minutes/16-06-2022","sidebar":"2022"},{"id":"2022/minutes/18-08-2022","path":"/gsoc/docs/2022/minutes/18-08-2022","sidebar":"2022"},{"id":"2022/minutes/21-07-2022","path":"/gsoc/docs/2022/minutes/21-07-2022","sidebar":"2022"},{"id":"2022/minutes/23-06-2022","path":"/gsoc/docs/2022/minutes/23-06-2022","sidebar":"2022"},{"id":"2022/minutes/25-08-2022","path":"/gsoc/docs/2022/minutes/25-08-2022","sidebar":"2022"},{"id":"2022/minutes/28-07-2022","path":"/gsoc/docs/2022/minutes/28-07-2022","sidebar":"2022"},{"id":"2022/minutes/30-06-2022","path":"/gsoc/docs/2022/minutes/30-06-2022","sidebar":"2022"},{"id":"2022/project/index","path":"/gsoc/docs/2022/project/","sidebar":"2022"},{"id":"2022/project/updates/2022-06-02","path":"/gsoc/docs/2022/project/updates/2022-06-02","sidebar":"2022"},{"id":"2022/project/updates/2022-06-09","path":"/gsoc/docs/2022/project/updates/2022-06-09","sidebar":"2022"},{"id":"2022/project/updates/2022-06-16","path":"/gsoc/docs/2022/project/updates/2022-06-16","sidebar":"2022"},{"id":"2022/project/updates/2022-06-23","path":"/gsoc/docs/2022/project/updates/2022-06-23","sidebar":"2022"},{"id":"2022/project/updates/2022-06-30","path":"/gsoc/docs/2022/project/updates/2022-06-30","sidebar":"2022"},{"id":"2022/project/updates/2022-07-07","path":"/gsoc/docs/2022/project/updates/2022-07-07","sidebar":"2022"},{"id":"2022/project/updates/2022-07-14","path":"/gsoc/docs/2022/project/updates/2022-07-14","sidebar":"2022"},{"id":"2022/project/updates/2022-07-21","path":"/gsoc/docs/2022/project/updates/2022-07-21","sidebar":"2022"},{"id":"2022/project/updates/2022-07-28","path":"/gsoc/docs/2022/project/updates/2022-07-28","sidebar":"2022"},{"id":"2022/project/updates/2022-08-04","path":"/gsoc/docs/2022/project/updates/2022-08-04","sidebar":"2022"},{"id":"2022/project/updates/2022-08-11","path":"/gsoc/docs/2022/project/updates/2022-08-11","sidebar":"2022"},{"id":"2022/project/updates/2022-08-18","path":"/gsoc/docs/2022/project/updates/2022-08-18","sidebar":"2022"},{"id":"2022/project/updates/2022-08-25","path":"/gsoc/docs/2022/project/updates/2022-08-25","sidebar":"2022"},{"id":"2022/project/updates/2022-09-01","path":"/gsoc/docs/2022/project/updates/2022-09-01","sidebar":"2022"},{"id":"2022/project/updates/2022-09-08","path":"/gsoc/docs/2022/project/updates/2022-09-08","sidebar":"2022"},{"id":"2022/reuse/index","path":"/gsoc/docs/2022/reuse/","sidebar":"2022"},{"id":"2022/reuse/updates/2022-06-02","path":"/gsoc/docs/2022/reuse/updates/2022-06-02","sidebar":"2022"},{"id":"2022/reuse/updates/2022-06-13","path":"/gsoc/docs/2022/reuse/updates/2022-06-13","sidebar":"2022"},{"id":"2022/reuse/updates/2022-06-20","path":"/gsoc/docs/2022/reuse/updates/2022-06-20","sidebar":"2022"},{"id":"2022/reuse/updates/2022-06-27","path":"/gsoc/docs/2022/reuse/updates/2022-06-27","sidebar":"2022"},{"id":"2022/reuse/updates/2022-07-04","path":"/gsoc/docs/2022/reuse/updates/2022-07-04","sidebar":"2022"},{"id":"2022/reuse/updates/2022-07-11","path":"/gsoc/docs/2022/reuse/updates/2022-07-11","sidebar":"2022"},{"id":"2022/reuse/updates/2022-07-18","path":"/gsoc/docs/2022/reuse/updates/2022-07-18","sidebar":"2022"},{"id":"2022/reuse/updates/2022-07-25","path":"/gsoc/docs/2022/reuse/updates/2022-07-25","sidebar":"2022"},{"id":"2022/reuse/updates/2022-08-02","path":"/gsoc/docs/2022/reuse/updates/2022-08-02","sidebar":"2022"},{"id":"2022/reuse/updates/2022-08-09","path":"/gsoc/docs/2022/reuse/updates/2022-08-09","sidebar":"2022"},{"id":"2022/reuse/updates/2022-08-16","path":"/gsoc/docs/2022/reuse/updates/2022-08-16","sidebar":"2022"},{"id":"2022/reuse/updates/2022-08-23","path":"/gsoc/docs/2022/reuse/updates/2022-08-23","sidebar":"2022"},{"id":"2022/reuse/updates/2022-08-30","path":"/gsoc/docs/2022/reuse/updates/2022-08-30","sidebar":"2022"},{"id":"2022/reuse/updates/2022-09-06","path":"/gsoc/docs/2022/reuse/updates/2022-09-06","sidebar":"2022"},{"id":"2022/spasht/index","path":"/gsoc/docs/2022/spasht/","sidebar":"2022"},{"id":"2022/spasht/updates/2022-06-02","path":"/gsoc/docs/2022/spasht/updates/2022-06-02","sidebar":"2022"},{"id":"2022/spasht/updates/2022-06-08","path":"/gsoc/docs/2022/spasht/updates/2022-06-08","sidebar":"2022"},{"id":"2022/spasht/updates/2022-06-15","path":"/gsoc/docs/2022/spasht/updates/2022-06-15","sidebar":"2022"},{"id":"2022/spasht/updates/2022-06-22","path":"/gsoc/docs/2022/spasht/updates/2022-06-22","sidebar":"2022"},{"id":"2022/spasht/updates/2022-07-06","path":"/gsoc/docs/2022/spasht/updates/2022-07-06","sidebar":"2022"},{"id":"2022/spasht/updates/2022-07-13","path":"/gsoc/docs/2022/spasht/updates/2022-07-13","sidebar":"2022"},{"id":"2022/ui/index","path":"/gsoc/docs/2022/ui/","sidebar":"2022"},{"id":"2022/ui/installation","path":"/gsoc/docs/2022/ui/installation","sidebar":"2022"},{"id":"2022/ui/updates/ayush/2022-06-02","path":"/gsoc/docs/2022/ui/updates/ayush/2022-06-02","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-06-02","path":"/gsoc/docs/2022/ui/updates/krishna/2022-06-02","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-06-20","path":"/gsoc/docs/2022/ui/updates/krishna/2022-06-20","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-06-27","path":"/gsoc/docs/2022/ui/updates/krishna/2022-06-27","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-07-04","path":"/gsoc/docs/2022/ui/updates/krishna/2022-07-04","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-07-11","path":"/gsoc/docs/2022/ui/updates/krishna/2022-07-11","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-07-17","path":"/gsoc/docs/2022/ui/updates/krishna/2022-07-17","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-07-24","path":"/gsoc/docs/2022/ui/updates/krishna/2022-07-24","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-07-31","path":"/gsoc/docs/2022/ui/updates/krishna/2022-07-31","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-08-07","path":"/gsoc/docs/2022/ui/updates/krishna/2022-08-07","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-08-14","path":"/gsoc/docs/2022/ui/updates/krishna/2022-08-14","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-08-21","path":"/gsoc/docs/2022/ui/updates/krishna/2022-08-21","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-08-28","path":"/gsoc/docs/2022/ui/updates/krishna/2022-08-28","sidebar":"2022"},{"id":"2022/ui/updates/krishna/2022-09-04","path":"/gsoc/docs/2022/ui/updates/krishna/2022-09-04","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2021-06-24","path":"/gsoc/docs/2022/ui/updates/samuel/2021-06-24","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-06-02","path":"/gsoc/docs/2022/ui/updates/samuel/2022-06-02","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-06-30","path":"/gsoc/docs/2022/ui/updates/samuel/2022-06-30","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-07-07","path":"/gsoc/docs/2022/ui/updates/samuel/2022-07-07","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-07-14","path":"/gsoc/docs/2022/ui/updates/samuel/2022-07-14","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-07-21","path":"/gsoc/docs/2022/ui/updates/samuel/2022-07-21","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-08-02","path":"/gsoc/docs/2022/ui/updates/samuel/2022-08-02","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-08-11","path":"/gsoc/docs/2022/ui/updates/samuel/2022-08-11","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-08-18","path":"/gsoc/docs/2022/ui/updates/samuel/2022-08-18","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-08-25","path":"/gsoc/docs/2022/ui/updates/samuel/2022-08-25","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-09-08","path":"/gsoc/docs/2022/ui/updates/samuel/2022-09-08","sidebar":"2022"},{"id":"2022/ui/updates/samuel/2022-09-1","path":"/gsoc/docs/2022/ui/updates/samuel/2022-09-1","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-06-02","path":"/gsoc/docs/2022/ui/updates/soham/2022-06-02","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-06-24","path":"/gsoc/docs/2022/ui/updates/soham/2022-06-24","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-07-3","path":"/gsoc/docs/2022/ui/updates/soham/2022-07-3","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-07-7","path":"/gsoc/docs/2022/ui/updates/soham/2022-07-7","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-07-8","path":"/gsoc/docs/2022/ui/updates/soham/2022-07-8","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-07-9","path":"/gsoc/docs/2022/ui/updates/soham/2022-07-9","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-08-01","path":"/gsoc/docs/2022/ui/updates/soham/2022-08-01","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-08-05","path":"/gsoc/docs/2022/ui/updates/soham/2022-08-05","sidebar":"2022"},{"id":"2022/ui/updates/soham/2022-08-08","path":"/gsoc/docs/2022/ui/updates/soham/2022-08-08","sidebar":"2022"},{"id":"2023/copyrights/index","path":"/gsoc/docs/2023/copyrights/","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-05-11","path":"/gsoc/docs/2023/copyrights/updates/2023-05-11","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-05-31","path":"/gsoc/docs/2023/copyrights/updates/2023-05-31","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-06-07","path":"/gsoc/docs/2023/copyrights/updates/2023-06-07","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-06-14","path":"/gsoc/docs/2023/copyrights/updates/2023-06-14","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-06-21","path":"/gsoc/docs/2023/copyrights/updates/2023-06-21","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-06-28","path":"/gsoc/docs/2023/copyrights/updates/2023-06-28","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-07-05","path":"/gsoc/docs/2023/copyrights/updates/2023-07-05","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-07-12","path":"/gsoc/docs/2023/copyrights/updates/2023-07-12","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-07-19","path":"/gsoc/docs/2023/copyrights/updates/2023-07-19","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-07-26","path":"/gsoc/docs/2023/copyrights/updates/2023-07-26","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-08-02","path":"/gsoc/docs/2023/copyrights/updates/2023-08-02","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-08-09","path":"/gsoc/docs/2023/copyrights/updates/2023-08-09","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-08-16","path":"/gsoc/docs/2023/copyrights/updates/2023-08-16","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-08-23","path":"/gsoc/docs/2023/copyrights/updates/2023-08-23","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-08-30","path":"/gsoc/docs/2023/copyrights/updates/2023-08-30","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-09-06","path":"/gsoc/docs/2023/copyrights/updates/2023-09-06","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-09-13","path":"/gsoc/docs/2023/copyrights/updates/2023-09-13","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-09-20","path":"/gsoc/docs/2023/copyrights/updates/2023-09-20","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-09-27","path":"/gsoc/docs/2023/copyrights/updates/2023-09-27","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-10-04","path":"/gsoc/docs/2023/copyrights/updates/2023-10-04","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-10-11","path":"/gsoc/docs/2023/copyrights/updates/2023-10-11","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-10-18","path":"/gsoc/docs/2023/copyrights/updates/2023-10-18","sidebar":"2023"},{"id":"2023/copyrights/updates/2023-10-25","path":"/gsoc/docs/2023/copyrights/updates/2023-10-25","sidebar":"2023"},{"id":"2023/cyclonedx/index","path":"/gsoc/docs/2023/cyclonedx/","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-05-11","path":"/gsoc/docs/2023/cyclonedx/updates/2023-05-11","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-06-01","path":"/gsoc/docs/2023/cyclonedx/updates/2023-06-01","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-06-08","path":"/gsoc/docs/2023/cyclonedx/updates/2023-06-08","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-06-15","path":"/gsoc/docs/2023/cyclonedx/updates/2023-06-15","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-06-22","path":"/gsoc/docs/2023/cyclonedx/updates/2023-06-22","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-06-29","path":"/gsoc/docs/2023/cyclonedx/updates/2023-06-29","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-07-06","path":"/gsoc/docs/2023/cyclonedx/updates/2023-07-06","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-07-13","path":"/gsoc/docs/2023/cyclonedx/updates/2023-07-13","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-07-20","path":"/gsoc/docs/2023/cyclonedx/updates/2023-07-20","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-07-27","path":"/gsoc/docs/2023/cyclonedx/updates/2023-07-27","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-08-03","path":"/gsoc/docs/2023/cyclonedx/updates/2023-08-03","sidebar":"2023"},{"id":"2023/cyclonedx/updates/2023-08-10","path":"/gsoc/docs/2023/cyclonedx/updates/2023-08-10","sidebar":"2023"},{"id":"2023/GSoC-projects","path":"/gsoc/docs/2023/GSoC-projects","sidebar":"2023"},{"id":"2023/index","path":"/gsoc/docs/2023","sidebar":"2023"},{"id":"2023/laas/finalevaluation","path":"/gsoc/docs/2023/laas/finalevaluation","sidebar":"2023"},{"id":"2023/laas/index","path":"/gsoc/docs/2023/laas/","sidebar":"2023"},{"id":"2023/laas/updates/2023-05-11","path":"/gsoc/docs/2023/laas/updates/2023-05-11","sidebar":"2023"},{"id":"2023/laas/updates/2023-06-02","path":"/gsoc/docs/2023/laas/updates/2023-06-02","sidebar":"2023"},{"id":"2023/laas/updates/2023-06-09","path":"/gsoc/docs/2023/laas/updates/2023-06-09","sidebar":"2023"},{"id":"2023/laas/updates/2023-06-16","path":"/gsoc/docs/2023/laas/updates/2023-06-16","sidebar":"2023"},{"id":"2023/laas/updates/2023-06-23","path":"/gsoc/docs/2023/laas/updates/2023-06-23","sidebar":"2023"},{"id":"2023/laas/updates/2023-06-30","path":"/gsoc/docs/2023/laas/updates/2023-06-30","sidebar":"2023"},{"id":"2023/laas/updates/2023-07-07","path":"/gsoc/docs/2023/laas/updates/2023-07-07","sidebar":"2023"},{"id":"2023/laas/updates/2023-07-14","path":"/gsoc/docs/2023/laas/updates/2023-07-14","sidebar":"2023"},{"id":"2023/laas/updates/2023-07-21","path":"/gsoc/docs/2023/laas/updates/2023-07-21","sidebar":"2023"},{"id":"2023/laas/updates/2023-07-28","path":"/gsoc/docs/2023/laas/updates/2023-07-28","sidebar":"2023"},{"id":"2023/laas/updates/2023-08-04","path":"/gsoc/docs/2023/laas/updates/2023-08-04","sidebar":"2023"},{"id":"2023/minutes/2023-05-11","path":"/gsoc/docs/2023/minutes/2023-05-11","sidebar":"2023"},{"id":"2023/minutes/2023-05-18","path":"/gsoc/docs/2023/minutes/2023-05-18","sidebar":"2023"},{"id":"2023/minutes/2023-05-25","path":"/gsoc/docs/2023/minutes/2023-05-25","sidebar":"2023"},{"id":"2023/minutes/2023-06-01","path":"/gsoc/docs/2023/minutes/2023-06-01","sidebar":"2023"},{"id":"2023/minutes/2023-06-08","path":"/gsoc/docs/2023/minutes/2023-06-08","sidebar":"2023"},{"id":"2023/minutes/2023-06-15","path":"/gsoc/docs/2023/minutes/2023-06-15","sidebar":"2023"},{"id":"2023/minutes/2023-06-22","path":"/gsoc/docs/2023/minutes/2023-06-22","sidebar":"2023"},{"id":"2023/minutes/2023-06-29","path":"/gsoc/docs/2023/minutes/2023-06-29","sidebar":"2023"},{"id":"2023/minutes/2023-07-06","path":"/gsoc/docs/2023/minutes/2023-07-06","sidebar":"2023"},{"id":"2023/minutes/2023-07-20","path":"/gsoc/docs/2023/minutes/2023-07-20","sidebar":"2023"},{"id":"2023/minutes/2023-08-10","path":"/gsoc/docs/2023/minutes/2023-08-10","sidebar":"2023"},{"id":"2023/minutes/2023-08-17","path":"/gsoc/docs/2023/minutes/2023-08-17","sidebar":"2023"},{"id":"2023/minutes/2023-08-24","path":"/gsoc/docs/2023/minutes/2023-08-24","sidebar":"2023"},{"id":"2023/rest/index","path":"/gsoc/docs/2023/rest/","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-05-11","path":"/gsoc/docs/2023/rest/updates/samuel/2023-05-11","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-06-01","path":"/gsoc/docs/2023/rest/updates/samuel/2023-06-01","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-06-08","path":"/gsoc/docs/2023/rest/updates/samuel/2023-06-08","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-06-15","path":"/gsoc/docs/2023/rest/updates/samuel/2023-06-15","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-06-22","path":"/gsoc/docs/2023/rest/updates/samuel/2023-06-22","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-06-29","path":"/gsoc/docs/2023/rest/updates/samuel/2023-06-29","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-07-06","path":"/gsoc/docs/2023/rest/updates/samuel/2023-07-06","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-07-13","path":"/gsoc/docs/2023/rest/updates/samuel/2023-07-13","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-07-20","path":"/gsoc/docs/2023/rest/updates/samuel/2023-07-20","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-07-27","path":"/gsoc/docs/2023/rest/updates/samuel/2023-07-27","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-08-03","path":"/gsoc/docs/2023/rest/updates/samuel/2023-08-03","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-08-10","path":"/gsoc/docs/2023/rest/updates/samuel/2023-08-10","sidebar":"2023"},{"id":"2023/rest/updates/samuel/2023-08-17","path":"/gsoc/docs/2023/rest/updates/samuel/2023-08-17","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-05-11","path":"/gsoc/docs/2023/rest/updates/soham/2023-05-11","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-06-01","path":"/gsoc/docs/2023/rest/updates/soham/2023-06-01","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-06-08","path":"/gsoc/docs/2023/rest/updates/soham/2023-06-08","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-06-27","path":"/gsoc/docs/2023/rest/updates/soham/2023-06-27","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-07-05","path":"/gsoc/docs/2023/rest/updates/soham/2023-07-05","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-07-16","path":"/gsoc/docs/2023/rest/updates/soham/2023-07-16","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-07-28","path":"/gsoc/docs/2023/rest/updates/soham/2023-07-28","sidebar":"2023"},{"id":"2023/rest/updates/soham/2023-08-05","path":"/gsoc/docs/2023/rest/updates/soham/2023-08-05","sidebar":"2023"},{"id":"2024/ci-scanner/index","path":"/gsoc/docs/2024/ci-scanner/","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-05-07","path":"/gsoc/docs/2024/ci-scanner/updates/2024-05-07","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-06-06","path":"/gsoc/docs/2024/ci-scanner/updates/2024-06-06","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-06-13","path":"/gsoc/docs/2024/ci-scanner/updates/2024-06-13","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-06-20","path":"/gsoc/docs/2024/ci-scanner/updates/2024-06-20","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-06-27","path":"/gsoc/docs/2024/ci-scanner/updates/2024-06-27","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-07-04","path":"/gsoc/docs/2024/ci-scanner/updates/2024-07-04","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-07-11","path":"/gsoc/docs/2024/ci-scanner/updates/2024-07-11","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-07-18","path":"/gsoc/docs/2024/ci-scanner/updates/2024-07-18","sidebar":"2024"},{"id":"2024/ci-scanner/updates/2024-07-25","path":"/gsoc/docs/2024/ci-scanner/updates/2024-07-25","sidebar":"2024"},{"id":"2024/GSoC-projects","path":"/gsoc/docs/2024/GSoC-projects","sidebar":"2024"},{"id":"2024/index","path":"/gsoc/docs/2024","sidebar":"2024"},{"id":"2024/license-detection/index","path":"/gsoc/docs/2024/license-detection/","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-05-30","path":"/gsoc/docs/2024/license-detection/updates/2024-05-30","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-06-06","path":"/gsoc/docs/2024/license-detection/updates/2024-06-06","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-06-13","path":"/gsoc/docs/2024/license-detection/updates/2024-06-13","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-06-20","path":"/gsoc/docs/2024/license-detection/updates/2024-06-20","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-06-27","path":"/gsoc/docs/2024/license-detection/updates/2024-06-27","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-07-04","path":"/gsoc/docs/2024/license-detection/updates/2024-07-04","sidebar":"2024"},{"id":"2024/license-detection/updates/2024-07-11","path":"/gsoc/docs/2024/license-detection/updates/2024-07-11","sidebar":"2024"},{"id":"2024/minutes/2024-05-30","path":"/gsoc/docs/2024/minutes/2024-05-30","sidebar":"2024"},{"id":"2024/minutes/2024-06-06","path":"/gsoc/docs/2024/minutes/2024-06-06","sidebar":"2024"},{"id":"2024/minutes/2024-06-13","path":"/gsoc/docs/2024/minutes/2024-06-13","sidebar":"2024"},{"id":"2024/minutes/2024-06-20","path":"/gsoc/docs/2024/minutes/2024-06-20","sidebar":"2024"},{"id":"2024/minutes/2024-06-27","path":"/gsoc/docs/2024/minutes/2024-06-27","sidebar":"2024"},{"id":"2024/minutes/2024-07-04","path":"/gsoc/docs/2024/minutes/2024-07-04","sidebar":"2024"},{"id":"2024/minutes/2024-07-11","path":"/gsoc/docs/2024/minutes/2024-07-11","sidebar":"2024"},{"id":"2024/pipeline/index","path":"/gsoc/docs/2024/pipeline/","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-05-07","path":"/gsoc/docs/2024/pipeline/updates/2024-05-07","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-05-30","path":"/gsoc/docs/2024/pipeline/updates/2024-05-30","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-06-06","path":"/gsoc/docs/2024/pipeline/updates/2024-06-06","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-06-13","path":"/gsoc/docs/2024/pipeline/updates/2024-06-13","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-06-20","path":"/gsoc/docs/2024/pipeline/updates/2024-06-20","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-06-27","path":"/gsoc/docs/2024/pipeline/updates/2024-06-27","sidebar":"2024"},{"id":"2024/pipeline/updates/2024-07-04","path":"/gsoc/docs/2024/pipeline/updates/2024-07-04","sidebar":"2024"},{"id":"2024/rest/API-guidelines","path":"/gsoc/docs/2024/rest/API-guidelines","sidebar":"2024"},{"id":"2024/rest/index","path":"/gsoc/docs/2024/rest/","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-05-07","path":"/gsoc/docs/2024/rest/updates/Divij/2024-05-07","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-05-30","path":"/gsoc/docs/2024/rest/updates/Divij/2024-05-30","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-06-06","path":"/gsoc/docs/2024/rest/updates/Divij/2024-06-06","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-06-11","path":"/gsoc/docs/2024/rest/updates/Divij/2024-06-11","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-06-18","path":"/gsoc/docs/2024/rest/updates/Divij/2024-06-18","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-06-25","path":"/gsoc/docs/2024/rest/updates/Divij/2024-06-25","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-07-02","path":"/gsoc/docs/2024/rest/updates/Divij/2024-07-02","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-07-09","path":"/gsoc/docs/2024/rest/updates/Divij/2024-07-09","sidebar":"2024"},{"id":"2024/rest/updates/Divij/2024-07-16","path":"/gsoc/docs/2024/rest/updates/Divij/2024-07-16","sidebar":"2024"},{"id":"2024/rest/updates/valens/2024-05-07","path":"/gsoc/docs/2024/rest/updates/valens/2024-05-07","sidebar":"2024"},{"id":"2024/rest/updates/valens/2024-05-30","path":"/gsoc/docs/2024/rest/updates/valens/2024-05-30","sidebar":"2024"},{"id":"2024/rest/updates/valens/2024-06-13","path":"/gsoc/docs/2024/rest/updates/valens/2024-06-13","sidebar":"2024"},{"id":"2024/rest/updates/valens/2024-06-20","path":"/gsoc/docs/2024/rest/updates/valens/2024-06-20","sidebar":"2024"},{"id":"2024/rest/updates/valens/2024-06-27","path":"/gsoc/docs/2024/rest/updates/valens/2024-06-27","sidebar":"2024"},{"id":"2024/rest/updates/valens/2024-07-04","path":"/gsoc/docs/2024/rest/updates/valens/2024-07-04","sidebar":"2024"},{"id":"2024/scheduler/index","path":"/gsoc/docs/2024/scheduler/","sidebar":"2024"},{"id":"2024/scheduler/updates/2023-05-30","path":"/gsoc/docs/2024/scheduler/updates/2023-05-30","sidebar":"2024"},{"id":"2024/scheduler/updates/2024-05-09","path":"/gsoc/docs/2024/scheduler/updates/2024-05-09","sidebar":"2024"},{"id":"2024/scheduler/updates/2024-05-23","path":"/gsoc/docs/2024/scheduler/updates/2024-05-23","sidebar":"2024"},{"id":"2024/scheduler/updates/2024-06-06","path":"/gsoc/docs/2024/scheduler/updates/2024-06-06","sidebar":"2024"},{"id":"2024/scheduler/updates/2024-06-07","path":"/gsoc/docs/2024/scheduler/updates/2024-06-07","sidebar":"2024"},{"id":"2024/scheduler/updates/Discussion/2024-05-31","path":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31","sidebar":"2024"},{"id":"2024/scheduler/updates/Discussion/2024-06-14","path":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14","sidebar":"2024"},{"id":"2024/scheduler/updates/Discussion/2024-06-21","path":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21","sidebar":"2024"},{"id":"2024/scheduler/updates/Discussion/2024-06-28","path":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28","sidebar":"2024"},{"id":"2024/scheduler/updates/Discussion/2024-07-05","path":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05","sidebar":"2024"},{"id":"2024/scheduler/updates/Discussion/2024-07-12","path":"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12","sidebar":"2024"},{"id":"2024/scheduler/updates/General/2024-05-30","path":"/gsoc/docs/2024/scheduler/updates/General/2024-05-30","sidebar":"2024"},{"id":"2024/scheduler/updates/General/2024-06-13","path":"/gsoc/docs/2024/scheduler/updates/General/2024-06-13","sidebar":"2024"},{"id":"2024/scheduler/updates/General/2024-06-20","path":"/gsoc/docs/2024/scheduler/updates/General/2024-06-20","sidebar":"2024"},{"id":"2024/scheduler/updates/General/2024-06-27","path":"/gsoc/docs/2024/scheduler/updates/General/2024-06-27","sidebar":"2024"},{"id":"2024/scheduler/updates/General/2024-07-04","path":"/gsoc/docs/2024/scheduler/updates/General/2024-07-04","sidebar":"2024"},{"id":"2024/scheduler/updates/General/2024-07-11","path":"/gsoc/docs/2024/scheduler/updates/General/2024-07-11","sidebar":"2024"},{"id":"2024/spdx-expression/index","path":"/gsoc/docs/2024/spdx-expression/","sidebar":"2024"},{"id":"2024/spdx-expression/updates/2024-05-07","path":"/gsoc/docs/2024/spdx-expression/updates/2024-05-07","sidebar":"2024"},{"id":"2024/spdx-expression/updates/2024-05-28","path":"/gsoc/docs/2024/spdx-expression/updates/2024-05-28","sidebar":"2024"},{"id":"2024/spdx-expression/updates/2024-06-04","path":"/gsoc/docs/2024/spdx-expression/updates/2024-06-04","sidebar":"2024"},{"id":"2024/spdx-expression/updates/2024-06-11","path":"/gsoc/docs/2024/spdx-expression/updates/2024-06-11","sidebar":"2024"},{"id":"2024/spdx-expression/updates/2024-06-18","path":"/gsoc/docs/2024/spdx-expression/updates/2024-06-18","sidebar":"2024"},{"id":"2024/spdx-expression/updates/2024-06-25","path":"/gsoc/docs/2024/spdx-expression/updates/2024-06-25","sidebar":"2024"},{"id":"2024/spdx30/index","path":"/gsoc/docs/2024/spdx30/","sidebar":"2024"},{"id":"2024/spdx30/updates/2024-05-07","path":"/gsoc/docs/2024/spdx30/updates/2024-05-07","sidebar":"2024"},{"id":"2024/spdx30/updates/2024-05-28","path":"/gsoc/docs/2024/spdx30/updates/2024-05-28","sidebar":"2024"},{"id":"2024/spdx30/updates/2024-06-04","path":"/gsoc/docs/2024/spdx30/updates/2024-06-04","sidebar":"2024"},{"id":"2024/spdx30/updates/2024-06-11","path":"/gsoc/docs/2024/spdx30/updates/2024-06-11","sidebar":"2024"},{"id":"2024/spdx30/updates/2024-06-18","path":"/gsoc/docs/2024/spdx30/updates/2024-06-18","sidebar":"2024"},{"id":"2024/spdx30/updates/2024-06-25","path":"/gsoc/docs/2024/spdx30/updates/2024-06-25","sidebar":"2024"},{"id":"2024/text-phrases/index","path":"/gsoc/docs/2024/text-phrases/","sidebar":"2024"},{"id":"2024/text-phrases/updates/2024-05-7","path":"/gsoc/docs/2024/text-phrases/updates/2024-05-7","sidebar":"2024"},{"id":"guidelines/index","path":"/gsoc/docs/guidelines/"},{"id":"index","path":"/gsoc/docs/"}],"draftIds":[],"sidebars":{"2021":{"link":{"path":"/gsoc/docs/2021","label":"2021/index"}},"2022":{"link":{"path":"/gsoc/docs/2022","label":"2022/index"}},"2023":{"link":{"path":"/gsoc/docs/2023","label":"2023/index"}},"2024":{"link":{"path":"/gsoc/docs/2024","label":"2024/index"}}}}],"breadcrumbs":true}}}'),r=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var i=n(57529);const c=JSON.parse('{"docusaurusVersion":"3.3.2","siteVersion":"0.0.4","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.3.2"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.3.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.3.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.3.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.3.2"}}}');var d=n(85893);const l={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:r,codeTranslations:i},u=s.createContext(l);function p(e){let{children:t}=e;return(0,d.jsx)(u.Provider,{value:l,children:t})}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var s=n(67294),o=n(10412),a=n(35742),r=n(18780),i=n(46040),c=n(30226),d=n(85893);function l(e){let{error:t,tryAgain:n}=e;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,d.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,d.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,d.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,r.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,d.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,d.jsx)(c.z,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,d.jsx)(p,{children:(0,d.jsxs)(m,{fallback:()=>(0,d.jsx)(l,{error:t,tryAgain:n}),children:[(0,d.jsx)(a.Z,{children:(0,d.jsx)("title",{children:"Page Error"})}),(0,d.jsx)(i.Z,{children:(0,d.jsx)(l,{error:t,tryAgain:n})})]})})}const g=e=>(0,d.jsx)(f,{...e});class m extends s.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??g)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const s="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:s,canUseEventListeners:s&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:s&&"IntersectionObserver"in window,canUseViewport:s&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(67294);var s=n(70405),o=n(85893);function a(e){return(0,o.jsx)(s.ql,{...e})}},33692:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var s=n(67294),o=n(73727),a=n(18780),r=n(52263),i=n(13919),c=n(10412),d=n(28138),l=n(44996),u=n(85893);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:m,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:x}}=(0,r.Z)(),{withBaseUrl:w}=(0,l.C)(),k=(0,d.Z)(),_=(0,s.useRef)(null);(0,s.useImperativeHandle)(t,(()=>_.current));const S=p||f;const E=(0,i.Z)(S),C=S?.replace("pathname://","");let j=void 0!==C?(T=C,b&&(e=>e.startsWith("/"))(T)?w(T):T):void 0;var T;j&&E&&(j=(0,a.applyTrailingSlash)(j,{trailingSlash:v,baseUrl:x}));const A=(0,s.useRef)(!1),L=n?o.OL:o.rU,P=c.Z.canUseIntersectionObserver,N=(0,s.useRef)(),R=()=>{A.current||null==j||(window.docusaurus.preload(j),A.current=!0)};(0,s.useEffect)((()=>(!P&&E&&null!=j&&window.docusaurus.prefetch(j),()=>{P&&N.current&&N.current.disconnect()})),[N,j,P,E]);const D=j?.startsWith("#")??!1,O=!y.target||"_self"===y.target,I=!j||!E||!O||D;return h||!D&&I||k.collectLink(j),y.id&&k.collectAnchor(y.id),I?(0,u.jsx)("a",{ref:_,href:j,...S&&!E&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,u.jsx)(L,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,P&&e&&E&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),N.current.observe(e))},to:j,...n&&{isActive:m,activeClassName:g}})}const f=s.forwardRef(p)},11875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const s=()=>null},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d,I:()=>c});var s=n(67294),o=n(85893);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,s.isValidElement)(e)))?n.map(((e,t)=>(0,s.isValidElement)(e)?s.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var r=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return r[t??n]??n??t}function c(e,t){let{message:n,id:s}=e;return a(i({message:n,id:s}),t)}function d(e){let{children:t,id:n,values:s}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const r=i({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(r,s)})}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>s});const s="default"},13919:(e,t,n)=>{"use strict";function s(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!s(e)}n.d(t,{Z:()=>o,b:()=>s})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>r,Z:()=>i});var s=n(67294),o=n(52263),a=n(13919);function r(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,s.useCallback)(((n,s)=>function(e,t,n,s){let{forcePrependBaseUrl:o=!1,absolute:r=!1}=void 0===s?{}:s;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const i=n.startsWith(t)?n:t+n.replace(/^\//,"");return r?e+i:i}(t,e,n,s)),[t,e]);return{withBaseUrl:n}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=r();return n(e,t)}},28138:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var s=n(67294);n(85893);const o=s.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,s.useContext)(o);function r(){return a()}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var s=n(67294),o=n(58940);function a(){return(0,s.useContext)(o._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var s=n(67294),o=n(98934);function a(){return(0,s.useContext)(o._)}},20469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var s=n(67294);const o=n(10412).Z.canUseDOM?s.useLayoutEffect:s.useEffect},65102:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var s=n(67294),o=n(30226);function a(){const e=s.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const s=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,r]=n;const i=o?`${o}.${a}`:a;s(r)?e(r,i):t[i]=r}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>r});var s=n(67294),o=n(85893);const a=s.createContext(null);function r(e){let{children:t,value:n}=e;const r=s.useContext(a),i=(0,s.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const s={...t.data,...n?.data};return{plugin:t.plugin,data:s}}({parent:r,value:n})),[r,n]);return(0,o.jsx)(a.Provider,{value:i,children:t})}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>p,_r:()=>l,Jo:()=>h,zh:()=>u,yW:()=>g,gB:()=>f});var s=n(16550),o=n(52263),a=n(29935);function r(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const i=e=>e.versions.find((e=>e.isLast));function c(e,t){const n=function(e,t){const n=i(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,s.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,s.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((s=>{s.id===t&&(n[e.name]=s)}))})),n}(o.id):{}}}const d={},l=()=>r("docusaurus-plugin-content-docs")??d,u=e=>{try{return function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const s=r(e),o=s?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,s.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,s.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return u(e).versions}function g(e){const t=u(e);return i(t)}function m(e){const t=u(e),{pathname:n}=(0,s.TH)();return c(t,n)}function h(e){const t=u(e),{pathname:n}=(0,s.TH)();return function(e,t){const n=i(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var s=n(74865),o=n.n(s);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var s=n(14965),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:s}=t;globalThis.Prism=e,s.forEach((e=>{"php"===e&&n(96854),n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(s.p1)},92503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});n(67294);var s=n(36905),o=n(95999),a=n(86668),r=n(33692),i=n(28138);const c={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var d=n(85893);function l(e){let{as:t,id:n,...l}=e;const u=(0,i.Z)(),{navbar:{hideOnScroll:p}}=(0,a.L)();if("h1"===t||!n)return(0,d.jsx)(t,{...l,id:void 0});u.collectAnchor(n);const f=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof l.children?l.children:n});return(0,d.jsxs)(t,{...l,className:(0,s.Z)("anchor",p?c.anchorWithHideOnScrollNavbar:c.anchorWithStickyNavbar,l.className),id:n,children:[l.children,(0,d.jsx)(r.Z,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(67294);const s={iconExternalLink:"iconExternalLink_nPIU"};var o=n(85893);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:s.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},46040:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ft});var s=n(67294),o=n(36905),a=n(44763),r=n(8264),i=n(16550),c=n(95999),d=n(85936),l=n(85893);const u="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,s.useRef)(null),{action:t}=(0,i.k6)(),n=(0,s.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(u);t&&p(t)}),[]);return(0,d.S)((n=>{let{location:s}=n;e.current&&!s.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??g,{containerRef:n,onClick:s}=f();return(0,l.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,l.jsx)("a",{...e,href:`#${u}`,onClick:s,children:t})})}var h=n(35281),b=n(19727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,l.jsx)(m,{className:y.skipToContent})}var x=n(86668),w=n(59689);function k(e){let{width:t=21,height:n=21,color:s="currentColor",strokeWidth:o=1.2,className:a,...r}=e;return(0,l.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...r,children:(0,l.jsx)("g",{stroke:s,strokeWidth:o,children:(0,l.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const _={closeButton:"closeButton_CVFx"};function S(e){return(0,l.jsx)("button",{type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",_.closeButton,e.className),children:(0,l.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,x.L)(),{content:n}=t;return(0,l.jsx)("div",{...e,className:(0,o.Z)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const j={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,x.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:s,textColor:o,isCloseable:a}=e;return(0,l.jsxs)("div",{className:j.announcementBar,style:{backgroundColor:s,color:o},role:"banner",children:[a&&(0,l.jsx)("div",{className:j.announcementBarPlaceholder}),(0,l.jsx)(C,{className:j.announcementBarContent}),a&&(0,l.jsx)(S,{onClick:n,className:j.announcementBarClose})]})}var A=n(72961),L=n(12466);var P=n(902),N=n(13102);const R=s.createContext(null);function D(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,N.HY)(),[n,o]=(0,s.useState)(!1),a=null!==t.component,r=(0,P.D9)(a);return(0,s.useEffect)((()=>{a&&!r&&o(!0)}),[a,r]),(0,s.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,s.useMemo)((()=>[n,o]),[n])}();return(0,l.jsx)(R.Provider,{value:n,children:t})}function O(e){if(e.component){const t=e.component;return(0,l.jsx)(t,{...e.props})}}function I(){const e=(0,s.useContext)(R);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,s.useCallback)((()=>n(!1)),[n]),a=(0,N.HY)();return(0,s.useMemo)((()=>({shown:t,hide:o,content:O(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:s}=e;const{shown:a}=I();return(0,l.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,l.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,l.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,l.jsx)("div",{className:"navbar-sidebar__item menu",children:s})]})]})}var M=n(92949),z=n(72389);function B(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,l.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,l.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function G(e){let{className:t,buttonClassName:n,value:s,onChange:a}=e;const r=(0,z.Z)(),i=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===s?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,l.jsx)("div",{className:(0,o.Z)(U.toggle,t),children:(0,l.jsxs)("button",{className:(0,o.Z)("clean-btn",U.toggleButton,!r&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===s?"light":"dark"),disabled:!r,title:i,"aria-label":i,"aria-live":"polite",children:[(0,l.jsx)(B,{className:(0,o.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,l.jsx)($,{className:(0,o.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const q=s.memo(G),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,x.L)().navbar.style,s=(0,x.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.I)();return s?null:(0,l.jsx)(q,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var V=n(21327);function W(){return(0,l.jsx)(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,A.e)();return(0,l.jsx)("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,l.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,l.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,l.jsx)(W,{}),(0,l.jsx)(Z,{className:"margin-right--md"}),(0,l.jsx)(Q,{})]})}var K=n(33692),X=n(44996),J=n(13919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(39471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:s,href:o,label:a,html:r,isDropdownLink:i,prependBaseUrlToHref:c,...d}=e;const u=(0,X.Z)(s),p=(0,X.Z)(t),f=(0,X.Z)(o,{forcePrependBaseUrl:!0}),g=a&&o&&!(0,J.Z)(o),m=r?{dangerouslySetInnerHTML:{__html:r}}:{children:(0,l.jsxs)(l.Fragment,{children:[a,g&&(0,l.jsx)(te.Z,{...i&&{width:12,height:12}})]})};return o?(0,l.jsx)(K.Z,{href:c?f:o,...d,...m}):(0,l.jsx)(K.Z,{to:u,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...d,...m})}function se(e){let{className:t,isDropdownItem:n=!1,...s}=e;const a=(0,l.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...s});return n?(0,l.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...s}=e;return(0,l.jsx)("li",{className:"menu__list-item",children:(0,l.jsx)(ne,{className:(0,o.Z)("menu__link",t),...s})})}function ae(e){let{mobile:t=!1,position:n,...s}=e;const o=t?oe:se;return(0,l.jsx)(o,{...s,activeClassName:s.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var re=n(86043),ie=n(48596),ce=n(52263);const de={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function le(e,t){return e.some((e=>function(e,t){return!!(0,ie.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:a,onClick:r,...i}=e;const c=(0,s.useRef)(null),[d,u]=(0,s.useState)(!1);return(0,s.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),(0,l.jsxs)("div",{ref:c,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":d}),children:[(0,l.jsx)(ne,{"aria-haspopup":"true","aria-expanded":d,role:"button",href:i.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!d))},children:i.children??i.label}),(0,l.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,s.createElement)(Ee,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:r,...c}=e;const d=function(){const{siteConfig:{baseUrl:e}}=(0,ce.Z)(),{pathname:t}=(0,i.TH)();return t.replace(e,"/")}(),u=le(t,d),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,re.u)({initialState:()=>!u});return(0,s.useEffect)((()=>{u&&g(!u)}),[d,u,g]),(0,l.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,l.jsx)(ne,{role:"button",className:(0,o.Z)(de.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...c,onClick:e=>{e.preventDefault(),f()},children:c.children??c.label}),(0,l.jsx)(re.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,s.createElement)(Ee,{mobile:!0,isDropdownItem:!0,onClick:r,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const s=t?pe:ue;return(0,l.jsx)(s,{...n})}var ge=n(94711);function me(e){let{width:t=20,height:n=20,...s}=e;return(0,l.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...s,children:(0,l.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var be=n(11875);const ye={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,l.jsx)("div",{className:(0,o.Z)(n,ye.navbarSearchContainer),children:t})}var xe=n(80143),we=n(52802);var ke=n(60373);const _e=e=>e.docs.find((t=>t.id===e.mainDocId));const Se={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:s,queryString:o="",...a}=e;const{i18n:{currentLocale:r,locales:d,localeConfigs:u}}=(0,ce.Z)(),p=(0,ge.l)(),{search:f,hash:g}=(0,i.TH)(),m=[...n,...d.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${o}`;return{label:u[e].label,lang:u[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===r?t?"menu__link--active":"dropdown__link--active":""}})),...s],h=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):u[r].label;return(0,l.jsx)(fe,{...a,mobile:t,label:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(me,{className:he}),h]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,l.jsx)(ve,{className:n,children:(0,l.jsx)(be.Z,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:s=!1,isDropdownItem:a=!1}=e;const r=a?"li":"div";return(0,l.jsx)(r,{className:(0,o.Z)({navbar__item:!s&&!a,"menu__list-item":s},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:s,...o}=e;const{activeDoc:a}=(0,xe.Iw)(s),r=(0,we.vY)(t,s),i=a?.path===r?.path;return null===r||r.unlisted&&!i?null:(0,l.jsx)(ae,{exact:!0,...o,isActive:()=>i||!!a?.sidebar&&a.sidebar===r.sidebar,label:n??r.id,to:r.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:s,...o}=e;const{activeDoc:a}=(0,xe.Iw)(s),r=(0,we.oz)(t,s).link;if(!r)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,l.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??r.label,to:r.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:s,...o}=e;const a=(0,we.lO)(s)[0],r=t??a.label,i=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,l.jsx)(ae,{...o,label:r,to:i})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:s,dropdownItemsBefore:o,dropdownItemsAfter:a,...r}=e;const{search:d,hash:u}=(0,i.TH)(),p=(0,xe.Iw)(n),f=(0,xe.gB)(n),{savePreferredVersionName:g}=(0,ke.J)(n),m=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??_e(e);return{label:e.label,to:`${t.path}${d}${u}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...a],h=(0,we.lO)(n)[0],b=t&&m.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&m.length>1?void 0:_e(h).path;return m.length<=1?(0,l.jsx)(ae,{...r,mobile:t,label:b,to:y,isActive:s?()=>!1:void 0}):(0,l.jsx)(fe,{...r,mobile:t,label:b,to:y,items:m,isActive:s?()=>!1:void 0})}};function Ee(e){let{type:t,...n}=e;const s=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Se[s];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,l.jsx)(o,{...n})}function Ce(){const e=(0,A.e)(),t=(0,x.L)().navbar.items;return(0,l.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,s.createElement)(Ee,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function je(e){return(0,l.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,l.jsx)(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,x.L)().navbar.items.length,t=I();return(0,l.jsxs)(l.Fragment,{children:[!e&&(0,l.jsx)(je,{onClick:()=>t.hide()}),t.content]})}function Ae(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,s.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,l.jsx)(F,{header:(0,l.jsx)(Y,{}),primaryMenu:(0,l.jsx)(Ce,{}),secondaryMenu:(0,l.jsx)(Te,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Pe(e){return(0,l.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function Ne(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,x.L)(),r=(0,A.e)(),{navbarRef:i,isNavbarVisible:u}=function(e){const[t,n]=(0,s.useState)(e),o=(0,s.useRef)(!1),a=(0,s.useRef)(0),r=(0,s.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,s)=>{let{scrollY:r}=t;if(!e)return;if(r<a.current)return void n(!0);if(o.current)return void(o.current=!1);const i=s?.scrollY,c=document.documentElement.scrollHeight-a.current,d=window.innerHeight;i&&r>=i?n(!1):r+d<c&&n(!0)})),(0,d.S)((t=>{if(!e)return;const s=t.location.hash;if(s?document.getElementById(s.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:r,isNavbarVisible:t}}(n);return(0,l.jsxs)("nav",{ref:i,"aria-label":(0,c.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!u&&Le.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":r.shown}),children:[t,(0,l.jsx)(Pe,{onClick:r.toggle}),(0,l.jsx)(Ae,{})]})}var Re=n(18780);const De={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Oe(e){return(0,l.jsx)("button",{type:"button",...e,children:(0,l.jsx)(c.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ie(e){let{error:t}=e;const n=(0,Re.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{className:De.errorBoundaryError,children:n})}class Fe extends s.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function ze(e){let{width:t=30,height:n=30,className:s,...o}=e;return(0,l.jsx)("svg",{className:s,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,l.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,A.e)();return(0,l.jsx)("button",{onClick:e,"aria-label":(0,c.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,l.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,l.jsx)(l.Fragment,{children:t.map(((e,t)=>(0,l.jsx)(Fe,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,l.jsx)(Ee,{...e})},t)))})}function Ge(e){let{left:t,right:n}=e;return(0,l.jsxs)("div",{className:"navbar__inner",children:[(0,l.jsx)("div",{className:"navbar__items",children:t}),(0,l.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function qe(){const e=(0,A.e)(),t=(0,x.L)().navbar.items,[n,s]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,l.jsx)(Ge,{left:(0,l.jsxs)(l.Fragment,{children:[!e.disabled&&(0,l.jsx)(Be,{}),(0,l.jsx)(W,{}),(0,l.jsx)(Ue,{items:n})]}),right:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(Ue,{items:s}),(0,l.jsx)(Z,{className:$e.colorModeToggle}),!o&&(0,l.jsx)(ve,{children:(0,l.jsx)(be.Z,{})})]})})}function He(){return(0,l.jsx)(Ne,{children:(0,l.jsx)(qe,{})})}function Ze(e){let{item:t}=e;const{to:n,href:s,label:o,prependBaseUrlToHref:a,...r}=t,i=(0,X.Z)(n),c=(0,X.Z)(s,{forcePrependBaseUrl:!0});return(0,l.jsxs)(K.Z,{className:"footer__link-item",...s?{href:a?c:s}:{to:i},...r,children:[o,s&&!(0,J.Z)(s)&&(0,l.jsx)(te.Z,{})]})}function Ve(e){let{item:t}=e;return t.html?(0,l.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,l.jsx)("li",{className:"footer__item",children:(0,l.jsx)(Ze,{item:t})},t.href??t.to)}function We(e){let{column:t}=e;return(0,l.jsxs)("div",{className:"col footer__col",children:[(0,l.jsx)("div",{className:"footer__title",children:t.title}),(0,l.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,l.jsx)(Ve,{item:e},t)))})]})}function Qe(e){let{columns:t}=e;return(0,l.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,l.jsx)(We,{column:e},t)))})}function Ye(){return(0,l.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ke(e){let{item:t}=e;return t.html?(0,l.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,l.jsx)(Ze,{item:t})}function Xe(e){let{links:t}=e;return(0,l.jsx)("div",{className:"footer__links text--center",children:(0,l.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,l.jsxs)(s.Fragment,{children:[(0,l.jsx)(Ke,{item:e}),t.length!==n+1&&(0,l.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,l.jsx)(Qe,{columns:t}):(0,l.jsx)(Xe,{links:t})}var et=n(19965);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),s={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,l.jsx)(et.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:s,width:t.width,height:t.height,style:t.style})}function st(e){let{logo:t}=e;return t.href?(0,l.jsx)(K.Z,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,l.jsx)(nt,{logo:t})}):(0,l.jsx)(nt,{logo:t})}function ot(e){let{copyright:t}=e;return(0,l.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function at(e){let{style:t,links:n,logo:s,copyright:a}=e;return(0,l.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,l.jsxs)("div",{className:"container container-fluid",children:[n,(s||a)&&(0,l.jsxs)("div",{className:"footer__bottom text--center",children:[s&&(0,l.jsx)("div",{className:"margin-bottom--sm",children:s}),a]})]})})}function rt(){const{footer:e}=(0,x.L)();if(!e)return null;const{copyright:t,links:n,logo:s,style:o}=e;return(0,l.jsx)(at,{style:o,links:n&&n.length>0&&(0,l.jsx)(Je,{links:n}),logo:s&&(0,l.jsx)(st,{logo:s}),copyright:t&&(0,l.jsx)(ot,{copyright:t})})}const it=s.memo(rt),ct=(0,P.Qc)([M.S,w.pl,L.OC,ke.L5,r.VC,function(e){let{children:t}=e;return(0,l.jsx)(N.n2,{children:(0,l.jsx)(A.M,{children:(0,l.jsx)(D,{children:t})})})}]);function dt(e){let{children:t}=e;return(0,l.jsx)(ct,{children:t})}var lt=n(92503);function ut(e){let{error:t,tryAgain:n}=e;return(0,l.jsx)("main",{className:"container margin-vert--xl",children:(0,l.jsx)("div",{className:"row",children:(0,l.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,l.jsx)(lt.Z,{as:"h1",className:"hero__title",children:(0,l.jsx)(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,l.jsx)("div",{className:"margin-vert--lg",children:(0,l.jsx)(Oe,{onClick:n,className:"button button--primary shadow--lw"})}),(0,l.jsx)("hr",{}),(0,l.jsx)("div",{className:"margin-vert--md",children:(0,l.jsx)(Ie,{error:t})})]})})})}const pt={mainWrapper:"mainWrapper_z2l0"};function ft(e){const{children:t,noFooter:n,wrapperClassName:s,title:i,description:c}=e;return(0,b.t)(),(0,l.jsxs)(dt,{children:[(0,l.jsx)(r.d,{title:i,description:c}),(0,l.jsx)(v,{}),(0,l.jsx)(T,{}),(0,l.jsx)(He,{}),(0,l.jsx)("div",{id:u,className:(0,o.Z)(h.k.wrapper.main,pt.mainWrapper,s),children:(0,l.jsx)(a.Z,{fallback:e=>(0,l.jsx)(ut,{...e}),children:t})}),!n&&(0,l.jsx)(it,{})]})}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});n(67294);var s=n(33692),o=n(44996),a=n(52263),r=n(86668),i=n(19965),c=n(85893);function d(e){let{logo:t,alt:n,imageClassName:s}=e;const a={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},r=(0,c.jsx)(i.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return s?(0,c.jsx)("div",{className:s,children:r}):r}function l(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:i}}=(0,r.L)(),{imageClassName:l,titleClassName:u,...p}=e,f=(0,o.Z)(i?.href||"/"),g=n?"":t,m=i?.alt??g;return(0,c.jsxs)(s.Z,{to:f,...p,...i?.target&&{target:i.target},children:[i&&(0,c.jsx)(d,{logo:i,alt:m,imageClassName:l}),null!=n&&(0,c.jsx)("b",{className:u,children:n})]})}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(67294);var s=n(35742),o=n(85893);function a(e){let{locale:t,version:n,tag:a}=e;const r=t;return(0,o.jsxs)(s.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),r&&(0,o.jsx)("meta",{name:"docsearch:language",content:r}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},19965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var s=n(67294),o=n(788),a=n(72389),r=n(92949);const i={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var c=n(85893);function d(e){let{className:t,children:n}=e;const d=(0,a.Z)(),{colorMode:l}=(0,r.I)();return(0,c.jsx)(c.Fragment,{children:(d?"dark"===l?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,i.themedComponent,i[`themedComponent--${e}`])});return(0,c.jsx)(s.Fragment,{children:a},e)}))})}function l(e){const{sources:t,className:n,alt:s,...o}=e;return(0,c.jsx)(d,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,c.jsx)("img",{src:t[n],alt:s,className:a,...o})}})}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>d,z:()=>b});var s=n(67294),o=n(10412),a=n(20469),r=n(91442),i=n(85893);const c="ease-in-out";function d(e){let{initialState:t}=e;const[n,o]=(0,s.useState)(t??!1),a=(0,s.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const l={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?l:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,s.useRef)(!1);(0,s.useEffect)((()=>{const e=t.current;function s(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,r.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??c}`,height:`${t}px`}}function i(){const t=s();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function g(e){if(!o.Z.canUseDOM)return e?l:u}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:r,className:c,disableSSRStyle:d}=e;const l=(0,s.useRef)(null);return f({collapsibleRef:l,collapsed:n,animation:a}),(0,i.jsx)(t,{ref:l,style:d?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(l.current,n),r?.(n))},className:c,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,r]=(0,s.useState)(!t),[c,d]=(0,s.useState)(t);return(0,a.Z)((()=>{t||r(!0)}),[t]),(0,a.Z)((()=>{o&&d(t)}),[o,t]),o?(0,i.jsx)(m,{...n,collapsed:c}):null}function b(e){let{lazy:t,...n}=e;const s=t?h:m;return(0,i.jsx)(s,{...n})}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>g});var s=n(67294),o=n(72389),a=n(50012),r=n(902),i=n(86668),c=n(85893);const d=(0,a.WA)("docusaurus.announcement.dismiss"),l=(0,a.WA)("docusaurus.announcement.id"),u=()=>"true"===d.get(),p=e=>d.set(String(e)),f=s.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,i.L)(),t=(0,o.Z)(),[n,a]=(0,s.useState)((()=>!!t&&u()));(0,s.useEffect)((()=>{a(u())}),[]);const r=(0,s.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,s.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=l.get();"annoucement-bar"===n&&(n="announcement-bar");const s=t!==n;l.set(t),s&&p(!1),!s&&u()||a(!1)}),[e]),(0,s.useMemo)((()=>({isActive:!!e&&!n,close:r})),[e,n,r])}();return(0,c.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,s.useContext)(f);if(!e)throw new r.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var s=n(67294),o=n(10412),a=n(902),r=n(50012),i=n(86668),c=n(85893);const d=s.createContext(void 0),l="theme",u=(0,r.WA)(l),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{u.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,i.L)(),[o,a]=(0,s.useState)(g(e));(0,s.useEffect)((()=>{t&&u.del()}),[t]);const r=(0,s.useCallback)((function(t,s){void 0===s&&(s={});const{persist:o=!0}=s;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),u.del())}),[n,e]);(0,s.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,s.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==l)return;const t=u.get();null!==t&&r(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,r]);const c=(0,s.useRef)(!1);return(0,s.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>{window.matchMedia("print").matches||c.current?c.current=window.matchMedia("print").matches:r(null)};return e.addListener(s),()=>e.removeListener(s)}),[r,t,n]),(0,s.useMemo)((()=>({colorMode:o,setColorMode:r,get isDarkTheme(){return o===p.dark},setLightTheme(){r(p.light)},setDarkTheme(){r(p.dark)}})),[o,r])}();return(0,c.jsx)(d.Provider,{value:n,children:t})}function b(){const e=(0,s.useContext)(d);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b});var s=n(67294),o=n(80143),a=n(29935),r=n(86668),i=n(52802),c=n(902),d=n(50012),l=n(85893);const u=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,d.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,d.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,d.WA)(u(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const g=s.createContext(null);function m(){const e=(0,o._r)(),t=(0,r.L)().docs.versionPersistence,n=(0,s.useMemo)((()=>Object.keys(e)),[e]),[a,i]=(0,s.useState)((()=>f(n)));(0,s.useEffect)((()=>{i(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:s}=e;function o(e){const t=p.read(e,n);return s[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,s.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),i((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return(0,l.jsx)(g.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return i.cE?(0,l.jsx)(h,{children:t}):(0,l.jsx)(l.Fragment,{children:t})}function y(){const e=(0,s.useContext)(g);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,r]=y(),{preferredVersionName:i}=n[e];return{preferredVersion:t.versions.find((e=>e.name===i))??null,savePreferredVersionName:(0,s.useCallback)((t=>{r.savePreferredVersion(e,t)}),[r,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>d,b:()=>c});var s=n(67294),o=n(902),a=n(85893);const r=Symbol("EmptyContext"),i=s.createContext(r);function c(e){let{children:t,name:n,items:o}=e;const r=(0,s.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(i.Provider,{value:r,children:t})}function d(){const e=(0,s.useContext)(i);if(e===r)throw new o.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,q:()=>i});var s=n(67294),o=n(902),a=n(85893);const r=s.createContext(null);function i(e){let{children:t,version:n}=e;return(0,a.jsx)(r.Provider,{value:n,children:t})}function c(){const e=(0,s.useContext)(r);if(null===e)throw new o.i6("DocsVersionProvider");return e}},72961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>g});var s=n(67294),o=n(13102),a=n(87524),r=n(16550),i=n(902);function c(e){!function(e){const t=(0,r.k6)(),n=(0,i.zX)(e);(0,s.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var d=n(86668),l=n(85893);const u=s.createContext(void 0);function p(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,d.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[r,i]=(0,s.useState)(!1);c((()=>{if(r)return i(!1),!1}));const l=(0,s.useCallback)((()=>{i((e=>!e))}),[]);return(0,s.useEffect)((()=>{"desktop"===t&&i(!1)}),[t]),(0,s.useMemo)((()=>({disabled:e,shouldRender:n,toggle:l,shown:r})),[e,n,l,r])}function f(e){let{children:t}=e;const n=p();return(0,l.jsx)(u.Provider,{value:n,children:t})}function g(){const e=s.useContext(u);if(void 0===e)throw new i.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>c,Zo:()=>d,n2:()=>i});var s=n(67294),o=n(902),a=n(85893);const r=s.createContext(null);function i(e){let{children:t}=e;const n=(0,s.useState)({component:null,props:null});return(0,a.jsx)(r.Provider,{value:n,children:t})}function c(){const e=(0,s.useContext)(r);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function d(e){let{component:t,props:n}=e;const a=(0,s.useContext)(r);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,i]=a,c=(0,o.Ql)(n);return(0,s.useEffect)((()=>{i({component:t,props:c})}),[i,t,c]),(0,s.useEffect)((()=>()=>i({component:null,props:null})),[i]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var s=n(67294);const o="navigation-with-keyboard";function a(){(0,s.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>i});var s=n(67294),o=n(10412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},r=996;function i(e){let{desktopBreakpoint:t=r}=void 0===e?{}:e;const[n,i]=(0,s.useState)((()=>"ssr"));return(0,s.useEffect)((()=>{function e(){i(function(e){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>s});const s={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},91442:(e,t,n)=>{"use strict";function s(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>s})},52802:(e,t,n)=>{"use strict";n.d(t,{LM:()=>f,_F:()=>h,cE:()=>p,SN:()=>S,lO:()=>w,vY:()=>_,oz:()=>k,s1:()=>x,f:()=>y});var s=n(67294),o=n(16550),a=n(18790),r=n(80143),i=n(60373),c=n(74477),d=n(1116);function l(e){return Array.from(new Set(e))}var u=n(48596);const p=!!r._r;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const g=(e,t)=>void 0!==e&&(0,u.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||m(e.items,t))}function b(e,t){switch(e.type){case"category":return h(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||h(e,t);default:return!0}}function y(e,t){return(0,s.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:s=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,u.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,u.Mg)(a.href,n)){return s&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,d.V)(),{pathname:t}=(0,o.TH)(),n=(0,r.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function w(e){const{activeVersion:t}=(0,r.Iw)(e),{preferredVersion:n}=(0,i.J)(e),o=(0,r.yW)(e);return(0,s.useMemo)((()=>l([t,n,o].filter(Boolean))),[t,n,o])}function k(e,t){const n=w(t);return(0,s.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),s=t.find((t=>t[0]===e));if(!s)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return s[1]}),[e,n])}function _(e,t){const n=w(t);return(0,s.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),s=t.find((t=>t.id===e));if(!s){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${l(t.map((e=>e.id))).join("\n- ")}`)}return s}),[e,n])}function S(e){let{route:t}=e;const n=(0,o.TH)(),s=(0,c.E)(),r=t.routes,i=r.find((e=>(0,o.LX)(n.pathname,e)));if(!i)return null;const d=i.sidebar,l=d?s.docsSidebars[d]:void 0;return{docElement:(0,a.H)(r),sidebarName:d,sidebarItems:l}}},8264:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>l,VC:()=>f});var s=n(67294),o=n(788),a=n(35742),r=n(65102),i=n(44996),c=n(52263);var d=n(85893);function l(e){let{title:t,description:n,keywords:s,image:o,children:r}=e;const l=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:s}=t;return e?.trim().length?`${e.trim()} ${s} ${n}`:n}(t),{withBaseUrl:u}=(0,i.C)(),p=o?u(o,{absolute:!0}):void 0;return(0,d.jsxs)(a.Z,{children:[t&&(0,d.jsx)("title",{children:l}),t&&(0,d.jsx)("meta",{property:"og:title",content:l}),n&&(0,d.jsx)("meta",{name:"description",content:n}),n&&(0,d.jsx)("meta",{property:"og:description",content:n}),s&&(0,d.jsx)("meta",{name:"keywords",content:Array.isArray(s)?s.join(","):s}),p&&(0,d.jsx)("meta",{property:"og:image",content:p}),p&&(0,d.jsx)("meta",{name:"twitter:image",content:p}),r]})}const u=s.createContext(void 0);function p(e){let{className:t,children:n}=e;const r=s.useContext(u),i=(0,o.Z)(r,t);return(0,d.jsxs)(u.Provider,{value:i,children:[(0,d.jsx)(a.Z,{children:(0,d.jsx)("html",{className:i})}),n]})}function f(e){let{children:t}=e;const n=(0,r.Z)(),s=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,d.jsx)(p,{className:(0,o.Z)(s,a),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>l,Ql:()=>d,i6:()=>c,zX:()=>r});var s=n(67294),o=n(20469),a=n(85893);function r(e){const t=(0,s.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,s.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,s.useRef)();return(0,o.Z)((()=>{t.current=e})),t.current}class c extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function d(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,s.useMemo)((()=>e),t.flat())}function l(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>r,Ns:()=>i});var s=n(67294),o=n(723),a=n(52263);function r(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function i(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,s.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function s(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(s)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>d,RF:()=>p});var s=n(67294),o=n(10412),a=n(72389),r=(n(20469),n(902)),i=n(85893);const c=s.createContext(void 0);function d(e){let{children:t}=e;const n=function(){const e=(0,s.useRef)(!0);return(0,s.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,i.jsx)(c.Provider,{value:n,children:t})}function l(){const e=(0,s.useContext)(c);if(null==e)throw new r.i6("ScrollControllerProvider");return e}const u=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=l(),o=(0,s.useRef)(u()),a=(0,r.zX)(e);(0,s.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,s.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function s(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(s),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>s,os:()=>o});n(52263);const s="default";function o(e,t){return`docs-${e}-${t}`}},50012:(e,t,n)=>{"use strict";n.d(t,{WA:()=>c});n(67294);const s="localStorage";function o(e){let{key:t,oldValue:n,newValue:s,storage:o}=e;if(n===s)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,s,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=s),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,r||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),r=!0),null}var t}let r=!1;const i={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const s=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:s,newValue:t,storage:n})}catch(s){console.error(`Docusaurus storage error, can't set ${e}=${t}`,s)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const s=s=>{s.storageArea===n&&s.key===e&&t(s)};return window.addEventListener("storage",s),()=>window.removeEventListener("storage",s)}catch(s){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,s),()=>{}}}}}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>r});var s=n(52263),o=n(16550),a=n(18780);function r(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:r,currentLocale:i}}=(0,s.Z)(),{pathname:c}=(0,o.TH)(),d=(0,a.applyTrailingSlash)(c,{trailingSlash:n,baseUrl:e}),l=i===r?e:e.replace(`/${i}/`,"/"),u=d.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:s}=e;return`${s?t:""}${function(e){return e===r?`${l}`:`${l}${e}/`}(n)}${u}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>r});var s=n(67294),o=n(16550),a=n(902);function r(e){const t=(0,o.TH)(),n=(0,a.D9)(t),r=(0,a.zX)(e);(0,s.useEffect)((()=>{n&&t!==n&&r({location:t,previousLocation:n})}),[r,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var s=n(52263);function o(){return(0,s.Z)().siteConfig.themeConfig}},8802:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const s=n(55913);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,s.removeSuffix)(e,"/")}t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:s}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[r]=e.split(/[#?]/),i="/"===r||r===s?r:(c=r,n?o(c):a(c));var c;return e.replace(r,i)},t.addLeadingSlash=function(e){return(0,s.addPrefix)(e,"/")},t.removeTrailingSlash=a},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return s(o).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return o.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return o.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return o.removeTrailingSlash}});var a=n(55913);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return a.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return a.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return a.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return a.removePrefix}});var r=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return r.getErrorCausalChain}})},55913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},99318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>x,q_:()=>C,ob:()=>f,PP:()=>T,Ep:()=>p});var s=n(83117);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,s=n+1,o=e.length;s<o;n+=1,s+=1)e[n]=e[s];e.pop()}const r=function(e,t){void 0===t&&(t="");var n,s=e&&e.split("/")||[],r=t&&t.split("/")||[],i=e&&o(e),c=t&&o(t),d=i||c;if(e&&o(e)?r=s:s.length&&(r.pop(),r=r.concat(s)),!r.length)return"/";if(r.length){var l=r[r.length-1];n="."===l||".."===l||""===l}else n=!1;for(var u=0,p=r.length;p>=0;p--){var f=r[p];"."===f?a(r,p):".."===f?(a(r,p),u++):u&&(a(r,p),u--)}if(!d)for(;u--;u)r.unshift("..");!d||""===r[0]||r[0]&&o(r[0])||r.unshift("");var g=r.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var i=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function l(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function u(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,s=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),s&&"#"!==s&&(o+="#"===s.charAt(0)?s:"#"+s),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",s="",o=t.indexOf("#");-1!==o&&(s=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===s?"":s}}(e),a.state=t):(void 0===(a=(0,s.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=r(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,s,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof s?s(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function s(){n&&e.apply(void 0,arguments)}return t.push(s),function(){n=!1,t=t.filter((function(e){return e!==s}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];t.forEach((function(e){return e.apply(void 0,n)}))}}}var m=!("undefined"==typeof window||!window.document||!window.document.createElement);function h(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function x(e){void 0===e&&(e={}),m||(0,i.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),r=e,d=r.forceRefresh,x=void 0!==d&&d,w=r.getUserConfirmation,k=void 0===w?h:w,_=r.keyLength,S=void 0===_?6:_,E=e.basename?u(c(e.basename)):"";function C(e){var t=e||{},n=t.key,s=t.state,o=window.location,a=o.pathname+o.search+o.hash;return E&&(a=l(a,E)),f(a,s,n)}function j(){return Math.random().toString(36).substr(2,S)}var T=g();function A(e){(0,s.Z)($,e),$.length=n.length,T.notifyListeners($.location,$.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||R(C(e.state))}function P(){R(C(v()))}var N=!1;function R(e){if(N)N=!1,A();else{T.confirmTransitionTo(e,"POP",k,(function(t){t?A({action:"POP",location:e}):function(e){var t=$.location,n=O.indexOf(t.key);-1===n&&(n=0);var s=O.indexOf(e.key);-1===s&&(s=0);var o=n-s;o&&(N=!0,F(o))}(e)}))}}var D=C(v()),O=[D.key];function I(e){return E+p(e)}function F(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(b,L),a&&window.addEventListener(y,P)):0===M&&(window.removeEventListener(b,L),a&&window.removeEventListener(y,P))}var B=!1;var $={length:n.length,action:"POP",location:D,createHref:I,push:function(e,t){var s="PUSH",a=f(e,t,j(),$.location);T.confirmTransitionTo(a,s,k,(function(e){if(e){var t=I(a),r=a.key,i=a.state;if(o)if(n.pushState({key:r,state:i},null,t),x)window.location.href=t;else{var c=O.indexOf($.location.key),d=O.slice(0,c+1);d.push(a.key),O=d,A({action:s,location:a})}else window.location.href=t}}))},replace:function(e,t){var s="REPLACE",a=f(e,t,j(),$.location);T.confirmTransitionTo(a,s,k,(function(e){if(e){var t=I(a),r=a.key,i=a.state;if(o)if(n.replaceState({key:r,state:i},null,t),x)window.location.replace(t);else{var c=O.indexOf($.location.key);-1!==c&&(O[c]=a.key),A({action:s,location:a})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=T.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var w="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:c},slash:{encodePath:c,decodePath:c}};function _(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function S(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(_(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),m||(0,i.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?h:o,r=n.hashType,d=void 0===r?"slash":r,b=e.basename?u(c(e.basename)):"",y=k[d],v=y.encodePath,x=y.decodePath;function C(){var e=x(S());return b&&(e=l(e,b)),f(e)}var j=g();function T(e){(0,s.Z)(B,e),B.length=t.length,j.notifyListeners(B.location,B.action)}var A=!1,L=null;function P(){var e,t,n=S(),s=v(n);if(n!==s)E(s);else{var o=C(),r=B.location;if(!A&&(t=o,(e=r).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(o))return;L=null,function(e){if(A)A=!1,T();else{var t="POP";j.confirmTransitionTo(e,t,a,(function(n){n?T({action:t,location:e}):function(e){var t=B.location,n=O.lastIndexOf(p(t));-1===n&&(n=0);var s=O.lastIndexOf(p(e));-1===s&&(s=0);var o=n-s;o&&(A=!0,I(o))}(e)}))}}(o)}}var N=S(),R=v(N);N!==R&&E(R);var D=C(),O=[p(D)];function I(e){t.go(e)}var F=0;function M(e){1===(F+=e)&&1===e?window.addEventListener(w,P):0===F&&window.removeEventListener(w,P)}var z=!1;var B={length:t.length,action:"POP",location:D,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=_(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",s=f(e,void 0,void 0,B.location);j.confirmTransitionTo(s,n,a,(function(e){if(e){var t=p(s),o=v(b+t);if(S()!==o){L=t,function(e){window.location.hash=e}(o);var a=O.lastIndexOf(p(B.location)),r=O.slice(0,a+1);r.push(t),O=r,T({action:n,location:s})}else T()}}))},replace:function(e,t){var n="REPLACE",s=f(e,void 0,void 0,B.location);j.confirmTransitionTo(s,n,a,(function(e){if(e){var t=p(s),o=v(b+t);S()!==o&&(L=t,E(o));var a=O.indexOf(p(B.location));-1!==a&&(O[a]=t),T({action:n,location:s})}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=j.setPrompt(e);return z||(M(1),z=!0),function(){return z&&(z=!1,M(-1)),t()}},listen:function(e){var t=j.appendListener(e);return M(1),function(){M(-1),t()}}};return B}function j(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,r=t.initialIndex,i=void 0===r?0:r,c=t.keyLength,d=void 0===c?6:c,l=g();function u(e){(0,s.Z)(x,e),x.length=x.entries.length,l.notifyListeners(x.location,x.action)}function m(){return Math.random().toString(36).substr(2,d)}var h=j(i,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?m():e.key||m())})),y=p;function v(e){var t=j(x.index+e,0,x.entries.length-1),s=x.entries[t];l.confirmTransitionTo(s,"POP",n,(function(e){e?u({action:"POP",location:s,index:t}):u()}))}var x={length:b.length,action:"POP",location:b[h],index:h,entries:b,createHref:y,push:function(e,t){var s="PUSH",o=f(e,t,m(),x.location);l.confirmTransitionTo(o,s,n,(function(e){if(e){var t=x.index+1,n=x.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),u({action:s,location:o,index:t,entries:n})}}))},replace:function(e,t){var s="REPLACE",o=f(e,t,m(),x.location);l.confirmTransitionTo(o,s,n,(function(e){e&&(x.entries[x.index]=o,u({action:s,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=x.index+e;return t>=0&&t<x.entries.length},block:function(e){return void 0===e&&(e=!1),l.setPrompt(e)},listen:function(e){return l.appendListener(e)}};return x}},8679:(e,t,n)=>{"use strict";var s=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},r={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function c(e){return s.isMemo(e)?r:i[e.$$typeof]||o}i[s.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[s.Memo]=r;var d=Object.defineProperty,l=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,s){if("string"!=typeof n){if(g){var o=f(n);o&&o!==g&&e(t,o,s)}var r=l(n);u&&(r=r.concat(u(n)));for(var i=c(t),m=c(n),h=0;h<r.length;++h){var b=r[h];if(!(a[b]||s&&s[b]||m&&m[b]||i&&i[b])){var y=p(n,b);try{d(t,b,y)}catch(v){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,s,o,a,r,i){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var d=[n,s,o,a,r,i],l=0;(c=new Error(t.replace(/%s/g,(function(){return d[l++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var s,o;s=function(){var e,t,n={version:"0.2.0"},s=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function r(e,t,n){var o;return(o="translate3d"===s.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===s.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(s[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,s.minimum,1),n.status=1===e?null:e;var a=n.render(!t),d=a.querySelector(s.barSelector),l=s.speed,u=s.easing;return a.offsetWidth,i((function(t){""===s.positionUsing&&(s.positionUsing=n.getPositioningCSS()),c(d,r(e,l,u)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+l+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),l)}),l)):setTimeout(t,l)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),s.trickleSpeed)};return s.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*s.trickleRate)},e=0,t=0,n.promise=function(s){return s&&"resolved"!==s.state()?(0===t&&n.start(),e++,t++,s.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=s.template;var o,r=t.querySelector(s.barSelector),i=e?"-100":a(n.status||0),d=document.querySelector(s.parent);return c(r,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),s.showSpinner||(o=t.querySelector(s.spinnerSelector))&&f(o),d!=document.body&&l(d,"nprogress-custom-parent"),d.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(s.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function s(t){var n=document.body.style;if(t in n)return t;for(var s,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((s=e[o]+a)in n)return s;return t}function o(e){return e=n(e),t[e]||(t[e]=s(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,s,o=arguments;if(2==o.length)for(n in t)void 0!==(s=t[n])&&t.hasOwnProperty(n)&&a(e,n,s);else a(e,o[1],o[2])}}();function d(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function l(e,t){var n=p(e),s=n+t;d(n,t)||(e.className=s.substring(1))}function u(e,t){var n,s=p(e);d(e,t)&&(n=s.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof s?s.call(t,n,t,e):s)||(e.exports=o)},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const s=n(29901),o=n(39642),a=new Set;function r(e){void 0===e?e=Object.keys(s.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(s,e,t).load((e=>{if(!(e in s.languages))return void(r.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),a.add(e)}))}r.silent=!1,e.exports=r},96854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,s,o,a){if(n.language===s){var r=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,i=r.length;-1!==n.code.indexOf(o=t(s,i));)++i;return r[i]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,s){if(n.language===s&&n.tokenStack){n.grammar=e.languages[s];var o=0,a=Object.keys(n.tokenStack);!function r(i){for(var c=0;c<i.length&&!(o>=a.length);c++){var d=i[c];if("string"==typeof d||d.content&&"string"==typeof d.content){var l=a[o],u=n.tokenStack[l],p="string"==typeof d?d:d.content,f=t(s,l),g=p.indexOf(f);if(g>-1){++o;var m=p.substring(0,g),h=new e.Token(s,e.tokenize(u,n.grammar),"language-"+s,u),b=p.substring(g+f.length),y=[];m&&y.push.apply(y,r([m])),y.push(h),b&&y.push.apply(y,r([b])),"string"==typeof d?i.splice.apply(i,[c,1].concat(y)):d.content=y}}else d.content&&r(d.content)}return i}(n.tokens)}}}})}(Prism)},6726:(e,t,n)=>{var s={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}o.keys=function(){return Object.keys(s)},o.resolve=a,e.exports=o,o.id=6726},16500:(e,t,n)=>{var s={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}o.keys=function(){return Object.keys(s)},o.resolve=a,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,s=e.length;n<s;n++)t[e[n]]=!0;return t}function s(e){var n={},s=[];function o(s,a){if(!(s in n)){a.push(s);var r=a.indexOf(s);if(r<a.length-1)throw new Error("Circular dependency: "+a.slice(r).join(" -> "));var i={},c=e[s];if(c){function d(t){if(!(t in e))throw new Error(s+" depends on an unknown component "+t);if(!(t in i))for(var r in o(t,a),i[t]=!0,n[t])i[r]=!0}t(c.require,d),t(c.optional,d),t(c.modify,d)}n[s]=i,a.pop()}}return function(e){var t=n[e];return t||(o(e,s),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,r,i){var c=function(e){var t={};for(var n in e){var s=e[n];for(var o in s)if("meta"!=o){var a=s[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),d=function(e){var n;return function(s){if(s in e)return s;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[s]||s}}(c);r=r.map(d),i=(i||[]).map(d);var l=n(r),u=n(i);r.forEach((function e(n){var s=c[n];t(s&&s.require,(function(t){t in u||(l[t]=!0,e(t))}))}));for(var p,f=s(c),g=l;o(g);){for(var m in p={},g){var h=c[m];t(h&&h.modify,(function(e){e in u&&(p[e]=!0)}))}for(var b in u)if(!(b in l))for(var y in f(b))if(y in l){p[b]=!0;break}for(var v in g=p)l[v]=!0}var x={getIds:function(){var e=[];return x.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,s,o){var a=o?o.series:void 0,r=o?o.parallel:e,i={},c={};function d(e){if(e in i)return i[e];c[e]=!0;var o,l=[];for(var u in t(e))u in n&&l.push(u);if(0===l.length)o=s(e);else{var p=r(l.map((function(e){var t=d(e);return delete c[e],t})));a?o=a(p,(function(){return s(e)})):s(e)}return i[e]=o}for(var l in n)d(l);var u=[];for(var p in c)u.push(i[p]);return r(u)}(f,l,t,n)}};return x}}();e.exports=t},92703:(e,t,n)=>{"use strict";var s=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,r){if(r!==s){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var s=n(67294),o=n(63840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var r=new Set,i={};function c(e,t){d(e,t),d(e+"Capture",t)}function d(e,t){for(i[e]=t,e=0;e<t.length;e++)r.add(t[e])}var l=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),u=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},g={};function m(e,t,n,s,o,a,r){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=s,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=r}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){h[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];h[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){h[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){h[e]=new m(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){h[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){h[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){h[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){h[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){h[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,s){var o=h.hasOwnProperty(t)?h[t]:null;(null!==o?0!==o.type:s||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,s){if(null==t||function(e,t,n,s){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!s&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,s))return!0;if(s)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,s)&&(n=null),s||null===o?function(e){return!!u.call(g,e)||!u.call(f,e)&&(p.test(e)?g[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,s=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,s?e.setAttributeNS(s,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);h[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);h[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);h[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){h[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),h.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){h[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),k=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),j=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),N=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var D=Symbol.iterator;function O(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=D&&e[D]||e["@@iterator"])?e:null}var I,F=Object.assign;function M(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var s=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){s=d}e.call(t.prototype)}else{try{throw Error()}catch(d){s=d}e()}}catch(d){if(d&&s&&"string"==typeof d.stack){for(var o=d.stack.split("\n"),a=s.stack.split("\n"),r=o.length-1,i=a.length-1;1<=r&&0<=i&&o[r]!==a[i];)i--;for(;1<=r&&0<=i;r--,i--)if(o[r]!==a[i]){if(1!==r||1!==i)do{if(r--,0>--i||o[r]!==a[i]){var c="\n"+o[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}}while(1<=r&&0<=i);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case _:return"Fragment";case k:return"Portal";case E:return"Profiler";case S:return"StrictMode";case A:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case j:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case N:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function G(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===S?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function q(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function H(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Z(e){e._valueTracker||(e._valueTracker=function(e){var t=H(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){s=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(e){s=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function V(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=H(e)?e.checked?"true":"false":e.value),(e=s)!==n&&(t.setValue(e),!0)}function W(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return F({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,s=null!=t.checked?t.checked:t.defaultChecked;n=q(null!=t.value?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function K(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){K(e,t);var n=q(t.value),s=t.type;if(null!=n)"number"===s?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===s||"reset"===s)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!("submit"!==s&&"reset"!==s||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&W(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,s){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&s&&(e[n].defaultSelected=!0)}else{for(n=""+q(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(s&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return F({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:q(n)}}function ae(e,t){var n=q(t.value),s=q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=s&&(e.defaultValue=""+s)}function re(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function ie(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ce(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?ie(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var de,le,ue=(le=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((de=de||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=de.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,s){MSApp.execUnsafeLocalFunction((function(){return le(e,t)}))}:le);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ge=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function he(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var s=0===n.indexOf("--"),o=me(n,t[n],s);"float"===n&&(n="cssFloat"),s?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var xe=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,_e=null,Se=null;function Ee(e){if(e=xo(e)){if("function"!=typeof ke)throw Error(a(280));var t=e.stateNode;t&&(t=ko(t),ke(e.stateNode,e.type,t))}}function Ce(e){_e?Se?Se.push(e):Se=[e]:_e=e}function je(){if(_e){var e=_e,t=Se;if(Se=_e=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Te(e,t){return e(t)}function Ae(){}var Le=!1;function Pe(e,t,n){if(Le)return e(t,n);Le=!0;try{return Te(e,t,n)}finally{Le=!1,(null!==_e||null!==Se)&&(Ae(),je())}}function Ne(e,t){var n=e.stateNode;if(null===n)return null;var s=ko(n);if(null===s)return null;n=s[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(s=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!s;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Re=!1;if(l)try{var De={};Object.defineProperty(De,"passive",{get:function(){Re=!0}}),window.addEventListener("test",De,De),window.removeEventListener("test",De,De)}catch(le){Re=!1}function Oe(e,t,n,s,o,a,r,i,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(n,d)}catch(l){this.onError(l)}}var Ie=!1,Fe=null,Me=!1,ze=null,Be={onError:function(e){Ie=!0,Fe=e}};function $e(e,t,n,s,o,a,r,i,c){Ie=!1,Fe=null,Oe.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ge(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function qe(e){if(Ue(e)!==e)throw Error(a(188))}function He(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,s=t;;){var o=n.return;if(null===o)break;var r=o.alternate;if(null===r){if(null!==(s=o.return)){n=s;continue}break}if(o.child===r.child){for(r=o.child;r;){if(r===n)return qe(o),e;if(r===s)return qe(o),t;r=r.sibling}throw Error(a(188))}if(n.return!==s.return)n=o,s=r;else{for(var i=!1,c=o.child;c;){if(c===n){i=!0,n=o,s=r;break}if(c===s){i=!0,s=o,n=r;break}c=c.sibling}if(!i){for(c=r.child;c;){if(c===n){i=!0,n=r,s=o;break}if(c===s){i=!0,s=r,n=o;break}c=c.sibling}if(!i)throw Error(a(189))}}if(n.alternate!==s)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ze(e):null}function Ze(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ze(e);if(null!==t)return t;e=e.sibling}return null}var Ve=o.unstable_scheduleCallback,We=o.unstable_cancelCallback,Qe=o.unstable_shouldYield,Ye=o.unstable_requestPaint,Ke=o.unstable_now,Xe=o.unstable_getCurrentPriorityLevel,Je=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,st=o.unstable_IdlePriority,ot=null,at=null;var rt=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(it(e)/ct|0)|0},it=Math.log,ct=Math.LN2;var dt=64,lt=4194304;function ut(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var s=0,o=e.suspendedLanes,a=e.pingedLanes,r=268435455&n;if(0!==r){var i=r&~o;0!==i?s=ut(i):0!==(a&=r)&&(s=ut(a))}else 0!==(r=n&~o)?s=ut(r):0!==a&&(s=ut(a));if(0===s)return 0;if(0!==t&&t!==s&&0==(t&o)&&((o=s&-s)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(0!=(4&s)&&(s|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=s;0<t;)o=1<<(n=31-rt(t)),s|=e[n],t&=~o;return s}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=dt;return 0==(4194240&(dt<<=1))&&(dt=64),e}function ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-rt(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var s=31-rt(n),o=1<<s;o&t|e[s]&t&&(e[s]|=t),n&=~o}}var vt=0;function xt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var wt,kt,_t,St,Et,Ct=!1,jt=[],Tt=null,At=null,Lt=null,Pt=new Map,Nt=new Map,Rt=[],Dt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Ot(e,t){switch(e){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Nt.delete(t.pointerId)}}function It(e,t,n,s,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:s,nativeEvent:a,targetContainers:[o]},null!==t&&(null!==(t=xo(t))&&kt(t)),e):(e.eventSystemFlags|=s,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Ft(e){var t=vo(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ge(n)))return e.blockedOn=t,void Et(e.priority,(function(){_t(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=xo(n))&&kt(t),e.blockedOn=n,!1;var s=new(n=e.nativeEvent).constructor(n.type,n);xe=s,n.target.dispatchEvent(s),xe=null,t.shift()}return!0}function zt(e,t,n){Mt(e)&&n.delete(t)}function Bt(){Ct=!1,null!==Tt&&Mt(Tt)&&(Tt=null),null!==At&&Mt(At)&&(At=null),null!==Lt&&Mt(Lt)&&(Lt=null),Pt.forEach(zt),Nt.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<jt.length){$t(jt[0],e);for(var n=1;n<jt.length;n++){var s=jt[n];s.blockedOn===e&&(s.blockedOn=null)}}for(null!==Tt&&$t(Tt,e),null!==At&&$t(At,e),null!==Lt&&$t(Lt,e),Pt.forEach(t),Nt.forEach(t),n=0;n<Rt.length;n++)(s=Rt[n]).blockedOn===e&&(s.blockedOn=null);for(;0<Rt.length&&null===(n=Rt[0]).blockedOn;)Ft(n),null===n.blockedOn&&Rt.shift()}var Gt=x.ReactCurrentBatchConfig,qt=!0;function Ht(e,t,n,s){var o=vt,a=Gt.transition;Gt.transition=null;try{vt=1,Vt(e,t,n,s)}finally{vt=o,Gt.transition=a}}function Zt(e,t,n,s){var o=vt,a=Gt.transition;Gt.transition=null;try{vt=4,Vt(e,t,n,s)}finally{vt=o,Gt.transition=a}}function Vt(e,t,n,s){if(qt){var o=Qt(e,t,n,s);if(null===o)qs(e,t,s,Wt,n),Ot(e,s);else if(function(e,t,n,s,o){switch(t){case"focusin":return Tt=It(Tt,e,t,n,s,o),!0;case"dragenter":return At=It(At,e,t,n,s,o),!0;case"mouseover":return Lt=It(Lt,e,t,n,s,o),!0;case"pointerover":var a=o.pointerId;return Pt.set(a,It(Pt.get(a)||null,e,t,n,s,o)),!0;case"gotpointercapture":return a=o.pointerId,Nt.set(a,It(Nt.get(a)||null,e,t,n,s,o)),!0}return!1}(o,e,t,n,s))s.stopPropagation();else if(Ot(e,s),4&t&&-1<Dt.indexOf(e)){for(;null!==o;){var a=xo(o);if(null!==a&&wt(a),null===(a=Qt(e,t,n,s))&&qs(e,t,s,Wt,n),a===o)break;o=a}null!==o&&s.stopPropagation()}else qs(e,t,s,null,n)}}var Wt=null;function Qt(e,t,n,s){if(Wt=null,null!==(e=vo(e=we(s))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Ge(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Wt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case st:return 536870912;default:return 16}default:return 16}}var Kt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,s=n.length,o="value"in Kt?Kt.value:Kt.textContent,a=o.length;for(e=0;e<s&&n[e]===o[e];e++);var r=s-e;for(t=1;t<=r&&n[s-t]===o[a-t];t++);return Jt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function sn(){return!1}function on(e){function t(t,n,s,o,a){for(var r in this._reactName=t,this._targetInst=s,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(r)&&(t=e[r],this[r]=t?t(o):o[r]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:sn,this.isPropagationStopped=sn,this}return F(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,rn,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ln=on(dn),un=F({},dn,{view:0,detail:0}),pn=on(un),fn=F({},un,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(an=e.screenX-cn.screenX,rn=e.screenY-cn.screenY):rn=an=0,cn=e),an)},movementY:function(e){return"movementY"in e?e.movementY:rn}}),gn=on(fn),mn=on(F({},fn,{dataTransfer:0})),hn=on(F({},un,{relatedTarget:0})),bn=on(F({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=F({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=on(yn),xn=on(F({},dn,{data:0})),wn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function En(){return Sn}var Cn=F({},un,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:En,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),jn=on(Cn),Tn=on(F({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),An=on(F({},un,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),Ln=on(F({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=F({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Nn=on(Pn),Rn=[9,13,27,32],Dn=l&&"CompositionEvent"in window,On=null;l&&"documentMode"in document&&(On=document.documentMode);var In=l&&"TextEvent"in window&&!On,Fn=l&&(!Dn||On&&8<On&&11>=On),Mn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var Gn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Gn[e.type]:"textarea"===t}function Hn(e,t,n,s){Ce(s),0<(t=Zs(t,"onChange")).length&&(n=new ln("onChange","change",null,n,s),e.push({event:n,listeners:t}))}var Zn=null,Vn=null;function Wn(e){Ms(e,0)}function Qn(e){if(V(wo(e)))return e}function Yn(e,t){if("change"===e)return t}var Kn=!1;if(l){var Xn;if(l){var Jn="oninput"in document;if(!Jn){var es=document.createElement("div");es.setAttribute("oninput","return;"),Jn="function"==typeof es.oninput}Xn=Jn}else Xn=!1;Kn=Xn&&(!document.documentMode||9<document.documentMode)}function ts(){Zn&&(Zn.detachEvent("onpropertychange",ns),Vn=Zn=null)}function ns(e){if("value"===e.propertyName&&Qn(Vn)){var t=[];Hn(t,Vn,e,we(e)),Pe(Wn,t)}}function ss(e,t,n){"focusin"===e?(ts(),Vn=n,(Zn=t).attachEvent("onpropertychange",ns)):"focusout"===e&&ts()}function os(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Vn)}function as(e,t){if("click"===e)return Qn(t)}function rs(e,t){if("input"===e||"change"===e)return Qn(t)}var is="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function cs(e,t){if(is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(s=0;s<n.length;s++){var o=n[s];if(!u.call(t,o)||!is(e[o],t[o]))return!1}return!0}function ds(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ls(e,t){var n,s=ds(e);for(e=0;s;){if(3===s.nodeType){if(n=e+s.textContent.length,e<=t&&n>=t)return{node:s,offset:t-e};e=n}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=ds(s)}}function us(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?us(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function ps(){for(var e=window,t=W();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(s){n=!1}if(!n)break;t=W((e=t.contentWindow).document)}return t}function fs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function gs(e){var t=ps(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&us(n.ownerDocument.documentElement,n)){if(null!==s&&fs(n))if(t=s.start,void 0===(e=s.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(s.start,o);s=void 0===s.end?a:Math.min(s.end,o),!e.extend&&a>s&&(o=s,s=a,a=o),o=ls(n,a);var r=ls(n,s);o&&r&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==r.node||e.focusOffset!==r.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>s?(e.addRange(t),e.extend(r.node,r.offset)):(t.setEnd(r.node,r.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var ms=l&&"documentMode"in document&&11>=document.documentMode,hs=null,bs=null,ys=null,vs=!1;function xs(e,t,n){var s=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vs||null==hs||hs!==W(s)||("selectionStart"in(s=hs)&&fs(s)?s={start:s.selectionStart,end:s.selectionEnd}:s={anchorNode:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset},ys&&cs(ys,s)||(ys=s,0<(s=Zs(bs,"onSelect")).length&&(t=new ln("onSelect","select",null,t,n),e.push({event:t,listeners:s}),t.target=hs)))}function ws(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var ks={animationend:ws("Animation","AnimationEnd"),animationiteration:ws("Animation","AnimationIteration"),animationstart:ws("Animation","AnimationStart"),transitionend:ws("Transition","TransitionEnd")},_s={},Ss={};function Es(e){if(_s[e])return _s[e];if(!ks[e])return e;var t,n=ks[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ss)return _s[e]=n[t];return e}l&&(Ss=document.createElement("div").style,"AnimationEvent"in window||(delete ks.animationend.animation,delete ks.animationiteration.animation,delete ks.animationstart.animation),"TransitionEvent"in window||delete ks.transitionend.transition);var Cs=Es("animationend"),js=Es("animationiteration"),Ts=Es("animationstart"),As=Es("transitionend"),Ls=new Map,Ps="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ns(e,t){Ls.set(e,t),c(t,[e])}for(var Rs=0;Rs<Ps.length;Rs++){var Ds=Ps[Rs];Ns(Ds.toLowerCase(),"on"+(Ds[0].toUpperCase()+Ds.slice(1)))}Ns(Cs,"onAnimationEnd"),Ns(js,"onAnimationIteration"),Ns(Ts,"onAnimationStart"),Ns("dblclick","onDoubleClick"),Ns("focusin","onFocus"),Ns("focusout","onBlur"),Ns(As,"onTransitionEnd"),d("onMouseEnter",["mouseout","mouseover"]),d("onMouseLeave",["mouseout","mouseover"]),d("onPointerEnter",["pointerout","pointerover"]),d("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Os="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Is=new Set("cancel close invalid load scroll toggle".split(" ").concat(Os));function Fs(e,t,n){var s=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,s,o,r,i,c,d){if($e.apply(this,arguments),Ie){if(!Ie)throw Error(a(198));var l=Fe;Ie=!1,Fe=null,Me||(Me=!0,ze=l)}}(s,t,void 0,e),e.currentTarget=null}function Ms(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var s=e[n],o=s.event;s=s.listeners;e:{var a=void 0;if(t)for(var r=s.length-1;0<=r;r--){var i=s[r],c=i.instance,d=i.currentTarget;if(i=i.listener,c!==a&&o.isPropagationStopped())break e;Fs(o,i,d),a=c}else for(r=0;r<s.length;r++){if(c=(i=s[r]).instance,d=i.currentTarget,i=i.listener,c!==a&&o.isPropagationStopped())break e;Fs(o,i,d),a=c}}}if(Me)throw e=ze,Me=!1,ze=null,e}function zs(e,t){var n=t[ho];void 0===n&&(n=t[ho]=new Set);var s=e+"__bubble";n.has(s)||(Gs(t,e,2,!1),n.add(s))}function Bs(e,t,n){var s=0;t&&(s|=4),Gs(n,e,s,t)}var $s="_reactListening"+Math.random().toString(36).slice(2);function Us(e){if(!e[$s]){e[$s]=!0,r.forEach((function(t){"selectionchange"!==t&&(Is.has(t)||Bs(t,!1,e),Bs(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$s]||(t[$s]=!0,Bs("selectionchange",!1,t))}}function Gs(e,t,n,s){switch(Yt(t)){case 1:var o=Ht;break;case 4:o=Zt;break;default:o=Vt}n=o.bind(null,t,n,e),o=void 0,!Re||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),s?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function qs(e,t,n,s,o){var a=s;if(0==(1&t)&&0==(2&t)&&null!==s)e:for(;;){if(null===s)return;var r=s.tag;if(3===r||4===r){var i=s.stateNode.containerInfo;if(i===o||8===i.nodeType&&i.parentNode===o)break;if(4===r)for(r=s.return;null!==r;){var c=r.tag;if((3===c||4===c)&&((c=r.stateNode.containerInfo)===o||8===c.nodeType&&c.parentNode===o))return;r=r.return}for(;null!==i;){if(null===(r=vo(i)))return;if(5===(c=r.tag)||6===c){s=a=r;continue e}i=i.parentNode}}s=s.return}Pe((function(){var s=a,o=we(n),r=[];e:{var i=Ls.get(e);if(void 0!==i){var c=ln,d=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":c=jn;break;case"focusin":d="focus",c=hn;break;case"focusout":d="blur",c=hn;break;case"beforeblur":case"afterblur":c=hn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=An;break;case Cs:case js:case Ts:c=bn;break;case As:c=Ln;break;case"scroll":c=pn;break;case"wheel":c=Nn;break;case"copy":case"cut":case"paste":c=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=Tn}var l=0!=(4&t),u=!l&&"scroll"===e,p=l?null!==i?i+"Capture":null:i;l=[];for(var f,g=s;null!==g;){var m=(f=g).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==p&&(null!=(m=Ne(g,p))&&l.push(Hs(g,m,f)))),u)break;g=g.return}0<l.length&&(i=new c(i,d,null,n,o),r.push({event:i,listeners:l}))}}if(0==(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(i="mouseover"===e||"pointerover"===e)||n===xe||!(d=n.relatedTarget||n.fromElement)||!vo(d)&&!d[mo])&&(c||i)&&(i=o.window===o?o:(i=o.ownerDocument)?i.defaultView||i.parentWindow:window,c?(c=s,null!==(d=(d=n.relatedTarget||n.toElement)?vo(d):null)&&(d!==(u=Ue(d))||5!==d.tag&&6!==d.tag)&&(d=null)):(c=null,d=s),c!==d)){if(l=gn,m="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(l=Tn,m="onPointerLeave",p="onPointerEnter",g="pointer"),u=null==c?i:wo(c),f=null==d?i:wo(d),(i=new l(m,g+"leave",c,n,o)).target=u,i.relatedTarget=f,m=null,vo(o)===s&&((l=new l(p,g+"enter",d,n,o)).target=f,l.relatedTarget=u,m=l),u=m,c&&d)e:{for(p=d,g=0,f=l=c;f;f=Vs(f))g++;for(f=0,m=p;m;m=Vs(m))f++;for(;0<g-f;)l=Vs(l),g--;for(;0<f-g;)p=Vs(p),f--;for(;g--;){if(l===p||null!==p&&l===p.alternate)break e;l=Vs(l),p=Vs(p)}l=null}else l=null;null!==c&&Ws(r,i,c,l,!1),null!==d&&null!==u&&Ws(r,u,d,l,!0)}if("select"===(c=(i=s?wo(s):window).nodeName&&i.nodeName.toLowerCase())||"input"===c&&"file"===i.type)var h=Yn;else if(qn(i))if(Kn)h=rs;else{h=os;var b=ss}else(c=i.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===i.type||"radio"===i.type)&&(h=as);switch(h&&(h=h(e,s))?Hn(r,h,n,o):(b&&b(e,i,s),"focusout"===e&&(b=i._wrapperState)&&b.controlled&&"number"===i.type&&ee(i,"number",i.value)),b=s?wo(s):window,e){case"focusin":(qn(b)||"true"===b.contentEditable)&&(hs=b,bs=s,ys=null);break;case"focusout":ys=bs=hs=null;break;case"mousedown":vs=!0;break;case"contextmenu":case"mouseup":case"dragend":vs=!1,xs(r,n,o);break;case"selectionchange":if(ms)break;case"keydown":case"keyup":xs(r,n,o)}var y;if(Dn)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Fn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Kt=o)?Kt.value:Kt.textContent,Un=!0)),0<(b=Zs(s,v)).length&&(v=new xn(v,e,null,n,o),r.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=In?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Mn);case"textInput":return(e=t.data)===Mn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!Dn&&Bn(e,t)?(e=en(),Jt=Xt=Kt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(s=Zs(s,"onBeforeInput")).length&&(o=new xn("onBeforeInput","beforeinput",null,n,o),r.push({event:o,listeners:s}),o.data=y))}Ms(r,t)}))}function Hs(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Zs(e,t){for(var n=t+"Capture",s=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Ne(e,n))&&s.unshift(Hs(e,a,o)),null!=(a=Ne(e,t))&&s.push(Hs(e,a,o))),e=e.return}return s}function Vs(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Ws(e,t,n,s,o){for(var a=t._reactName,r=[];null!==n&&n!==s;){var i=n,c=i.alternate,d=i.stateNode;if(null!==c&&c===s)break;5===i.tag&&null!==d&&(i=d,o?null!=(c=Ne(n,a))&&r.unshift(Hs(n,c,i)):o||null!=(c=Ne(n,a))&&r.push(Hs(n,c,i))),n=n.return}0!==r.length&&e.push({event:t,listeners:r})}var Qs=/\r\n?/g,Ys=/\u0000|\uFFFD/g;function Ks(e){return("string"==typeof e?e:""+e).replace(Qs,"\n").replace(Ys,"")}function Xs(e,t,n){if(t=Ks(t),Ks(e)!==t&&n)throw Error(a(425))}function Js(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var so="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,ro="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(io)}:so;function io(e){setTimeout((function(){throw e}))}function co(e,t){var n=t,s=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===s)return e.removeChild(o),void Ut(t);s--}else"$"!==n&&"$?"!==n&&"$!"!==n||s++;n=o}while(n);Ut(t)}function lo(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var po=Math.random().toString(36).slice(2),fo="__reactFiber$"+po,go="__reactProps$"+po,mo="__reactContainer$"+po,ho="__reactEvents$"+po,bo="__reactListeners$"+po,yo="__reactHandles$"+po;function vo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[mo]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function xo(e){return!(e=e[fo]||e[mo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function ko(e){return e[go]||null}var _o=[],So=-1;function Eo(e){return{current:e}}function Co(e){0>So||(e.current=_o[So],_o[So]=null,So--)}function jo(e,t){So++,_o[So]=e.current,e.current=t}var To={},Ao=Eo(To),Lo=Eo(!1),Po=To;function No(e,t){var n=e.type.contextTypes;if(!n)return To;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return s&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ro(e){return null!=(e=e.childContextTypes)}function Do(){Co(Lo),Co(Ao)}function Oo(e,t,n){if(Ao.current!==To)throw Error(a(168));jo(Ao,t),jo(Lo,n)}function Io(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,"function"!=typeof s.getChildContext)return n;for(var o in s=s.getChildContext())if(!(o in t))throw Error(a(108,G(e)||"Unknown",o));return F({},n,s)}function Fo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||To,Po=Ao.current,jo(Ao,e),jo(Lo,Lo.current),!0}function Mo(e,t,n){var s=e.stateNode;if(!s)throw Error(a(169));n?(e=Io(e,t,Po),s.__reactInternalMemoizedMergedChildContext=e,Co(Lo),Co(Ao),jo(Ao,e)):Co(Lo),jo(Lo,n)}var zo=null,Bo=!1,$o=!1;function Uo(e){null===zo?zo=[e]:zo.push(e)}function Go(){if(!$o&&null!==zo){$o=!0;var e=0,t=vt;try{var n=zo;for(vt=1;e<n.length;e++){var s=n[e];do{s=s(!0)}while(null!==s)}zo=null,Bo=!1}catch(o){throw null!==zo&&(zo=zo.slice(e+1)),Ve(Je,Go),o}finally{vt=t,$o=!1}}return null}var qo=[],Ho=0,Zo=null,Vo=0,Wo=[],Qo=0,Yo=null,Ko=1,Xo="";function Jo(e,t){qo[Ho++]=Vo,qo[Ho++]=Zo,Zo=e,Vo=t}function ea(e,t,n){Wo[Qo++]=Ko,Wo[Qo++]=Xo,Wo[Qo++]=Yo,Yo=e;var s=Ko;e=Xo;var o=32-rt(s)-1;s&=~(1<<o),n+=1;var a=32-rt(t)+o;if(30<a){var r=o-o%5;a=(s&(1<<r)-1).toString(32),s>>=r,o-=r,Ko=1<<32-rt(t)+o|n<<o|s,Xo=a+e}else Ko=1<<a|n<<o|s,Xo=e}function ta(e){null!==e.return&&(Jo(e,1),ea(e,1,0))}function na(e){for(;e===Zo;)Zo=qo[--Ho],qo[Ho]=null,Vo=qo[--Ho],qo[Ho]=null;for(;e===Yo;)Yo=Wo[--Qo],Wo[Qo]=null,Xo=Wo[--Qo],Wo[Qo]=null,Ko=Wo[--Qo],Wo[Qo]=null}var sa=null,oa=null,aa=!1,ra=null;function ia(e,t){var n=Nd(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function ca(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,sa=e,oa=lo(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,sa=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Yo?{id:Ko,overflow:Xo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nd(18,null,null,0)).stateNode=t,n.return=e,e.child=n,sa=e,oa=null,!0);default:return!1}}function da(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function la(e){if(aa){var t=oa;if(t){var n=t;if(!ca(e,t)){if(da(e))throw Error(a(418));t=lo(n.nextSibling);var s=sa;t&&ca(e,t)?ia(s,n):(e.flags=-4097&e.flags|2,aa=!1,sa=e)}}else{if(da(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,sa=e}}}function ua(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;sa=e}function pa(e){if(e!==sa)return!1;if(!aa)return ua(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(da(e))throw fa(),Error(a(418));for(;t;)ia(e,t),t=lo(t.nextSibling)}if(ua(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=lo(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=sa?lo(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=lo(e.nextSibling)}function ga(){oa=sa=null,aa=!1}function ma(e){null===ra?ra=[e]:ra.push(e)}var ha=x.ReactCurrentBatchConfig;function ba(e,t){if(e&&e.defaultProps){for(var n in t=F({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var ya=Eo(null),va=null,xa=null,wa=null;function ka(){wa=xa=va=null}function _a(e){var t=ya.current;Co(ya),e._currentValue=t}function Sa(e,t,n){for(;null!==e;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==s&&(s.childLanes|=t)):null!==s&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function Ea(e,t){va=e,wa=xa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(xi=!0),e.firstContext=null)}function Ca(e){var t=e._currentValue;if(wa!==e)if(e={context:e,memoizedValue:t,next:null},null===xa){if(null===va)throw Error(a(308));xa=e,va.dependencies={lanes:0,firstContext:e}}else xa=xa.next=e;return t}var ja=null;function Ta(e){null===ja?ja=[e]:ja.push(e)}function Aa(e,t,n,s){var o=t.interleaved;return null===o?(n.next=n,Ta(t)):(n.next=o.next,o.next=n),t.interleaved=n,La(e,s)}function La(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Pa=!1;function Na(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ra(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Da(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Oa(e,t,n){var s=e.updateQueue;if(null===s)return null;if(s=s.shared,0!=(2&Ac)){var o=s.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),s.pending=t,La(e,n)}return null===(o=s.interleaved)?(t.next=t,Ta(s)):(t.next=o.next,o.next=t),s.interleaved=t,La(e,n)}function Ia(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var s=t.lanes;n|=s&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Fa(e,t){var n=e.updateQueue,s=e.alternate;if(null!==s&&n===(s=s.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var r={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=r:a=a.next=r,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:s.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:s.shared,effects:s.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ma(e,t,n,s){var o=e.updateQueue;Pa=!1;var a=o.firstBaseUpdate,r=o.lastBaseUpdate,i=o.shared.pending;if(null!==i){o.shared.pending=null;var c=i,d=c.next;c.next=null,null===r?a=d:r.next=d,r=c;var l=e.alternate;null!==l&&((i=(l=l.updateQueue).lastBaseUpdate)!==r&&(null===i?l.firstBaseUpdate=d:i.next=d,l.lastBaseUpdate=c))}if(null!==a){var u=o.baseState;for(r=0,l=d=c=null,i=a;;){var p=i.lane,f=i.eventTime;if((s&p)===p){null!==l&&(l=l.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var g=e,m=i;switch(p=t,f=n,m.tag){case 1:if("function"==typeof(g=m.payload)){u=g.call(f,u,p);break e}u=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p="function"==typeof(g=m.payload)?g.call(f,u,p):g))break e;u=F({},u,p);break e;case 2:Pa=!0}}null!==i.callback&&0!==i.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[i]:p.push(i))}else f={eventTime:f,lane:p,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===l?(d=l=f,c=u):l=l.next=f,r|=p;if(null===(i=i.next)){if(null===(i=o.shared.pending))break;i=(p=i).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===l&&(c=u),o.baseState=c,o.firstBaseUpdate=d,o.lastBaseUpdate=l,null!==(t=o.shared.interleaved)){o=t;do{r|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Fc|=r,e.lanes=r,e.memoizedState=u}}function za(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var s=e[t],o=s.callback;if(null!==o){if(s.callback=null,s=n,"function"!=typeof o)throw Error(a(191,o));o.call(s)}}}var Ba=(new s.Component).refs;function $a(e,t,n,s){n=null==(n=n(s,t=e.memoizedState))?t:F({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Ua={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var s=td(),o=nd(e),a=Da(s,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Oa(e,a,o))&&(sd(t,e,o,s),Ia(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var s=td(),o=nd(e),a=Da(s,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Oa(e,a,o))&&(sd(t,e,o,s),Ia(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=td(),s=nd(e),o=Da(n,s);o.tag=2,null!=t&&(o.callback=t),null!==(t=Oa(e,o,s))&&(sd(t,e,s,n),Ia(t,e,s))}};function Ga(e,t,n,s,o,a,r){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(s,a,r):!t.prototype||!t.prototype.isPureReactComponent||(!cs(n,s)||!cs(o,a))}function qa(e,t,n){var s=!1,o=To,a=t.contextType;return"object"==typeof a&&null!==a?a=Ca(a):(o=Ro(t)?Po:Ao.current,a=(s=null!=(s=t.contextTypes))?No(e,o):To),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ua,e.stateNode=t,t._reactInternals=e,s&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function Ha(e,t,n,s){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,s),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,s),t.state!==e&&Ua.enqueueReplaceState(t,t.state,null)}function Za(e,t,n,s){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=Ba,Na(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Ca(a):(a=Ro(t)?Po:Ao.current,o.context=No(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&($a(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Ua.enqueueReplaceState(o,o.state,null),Ma(e,n,o,s),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function Va(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var s=n.stateNode}if(!s)throw Error(a(147,e));var o=s,r=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===r?t.ref:(t=function(e){var t=o.refs;t===Ba&&(t=o.refs={}),null===e?delete t[r]:t[r]=e},t._stringRef=r,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function Wa(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Qa(e){return(0,e._init)(e._payload)}function Ya(e){function t(t,n){if(e){var s=t.deletions;null===s?(t.deletions=[n],t.flags|=16):s.push(n)}}function n(n,s){if(!e)return null;for(;null!==s;)t(n,s),s=s.sibling;return null}function s(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Dd(e,t)).index=0,e.sibling=null,e}function r(t,n,s){return t.index=s,e?null!==(s=t.alternate)?(s=s.index)<n?(t.flags|=2,n):s:(t.flags|=2,n):(t.flags|=1048576,n)}function i(t){return e&&null===t.alternate&&(t.flags|=2),t}function c(e,t,n,s){return null===t||6!==t.tag?((t=Md(n,e.mode,s)).return=e,t):((t=o(t,n)).return=e,t)}function d(e,t,n,s){var a=n.type;return a===_?u(e,t,n.props.children,s,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===N&&Qa(a)===t.type)?((s=o(t,n.props)).ref=Va(e,t,n),s.return=e,s):((s=Od(n.type,n.key,n.props,null,e.mode,s)).ref=Va(e,t,n),s.return=e,s)}function l(e,t,n,s){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zd(n,e.mode,s)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function u(e,t,n,s,a){return null===t||7!==t.tag?((t=Id(n,e.mode,s,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Md(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Od(t.type,t.key,t.props,null,e.mode,n)).ref=Va(e,null,t),n.return=e,n;case k:return(t=zd(t,e.mode,n)).return=e,t;case N:return p(e,(0,t._init)(t._payload),n)}if(te(t)||O(t))return(t=Id(t,e.mode,n,null)).return=e,t;Wa(e,t)}return null}function f(e,t,n,s){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:c(e,t,""+n,s);if("object"==typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===o?d(e,t,n,s):null;case k:return n.key===o?l(e,t,n,s):null;case N:return f(e,t,(o=n._init)(n._payload),s)}if(te(n)||O(n))return null!==o?null:u(e,t,n,s,null);Wa(e,n)}return null}function g(e,t,n,s,o){if("string"==typeof s&&""!==s||"number"==typeof s)return c(t,e=e.get(n)||null,""+s,o);if("object"==typeof s&&null!==s){switch(s.$$typeof){case w:return d(t,e=e.get(null===s.key?n:s.key)||null,s,o);case k:return l(t,e=e.get(null===s.key?n:s.key)||null,s,o);case N:return g(e,t,n,(0,s._init)(s._payload),o)}if(te(s)||O(s))return u(t,e=e.get(n)||null,s,o,null);Wa(t,s)}return null}function m(o,a,i,c){for(var d=null,l=null,u=a,m=a=0,h=null;null!==u&&m<i.length;m++){u.index>m?(h=u,u=null):h=u.sibling;var b=f(o,u,i[m],c);if(null===b){null===u&&(u=h);break}e&&u&&null===b.alternate&&t(o,u),a=r(b,a,m),null===l?d=b:l.sibling=b,l=b,u=h}if(m===i.length)return n(o,u),aa&&Jo(o,m),d;if(null===u){for(;m<i.length;m++)null!==(u=p(o,i[m],c))&&(a=r(u,a,m),null===l?d=u:l.sibling=u,l=u);return aa&&Jo(o,m),d}for(u=s(o,u);m<i.length;m++)null!==(h=g(u,o,m,i[m],c))&&(e&&null!==h.alternate&&u.delete(null===h.key?m:h.key),a=r(h,a,m),null===l?d=h:l.sibling=h,l=h);return e&&u.forEach((function(e){return t(o,e)})),aa&&Jo(o,m),d}function h(o,i,c,d){var l=O(c);if("function"!=typeof l)throw Error(a(150));if(null==(c=l.call(c)))throw Error(a(151));for(var u=l=null,m=i,h=i=0,b=null,y=c.next();null!==m&&!y.done;h++,y=c.next()){m.index>h?(b=m,m=null):b=m.sibling;var v=f(o,m,y.value,d);if(null===v){null===m&&(m=b);break}e&&m&&null===v.alternate&&t(o,m),i=r(v,i,h),null===u?l=v:u.sibling=v,u=v,m=b}if(y.done)return n(o,m),aa&&Jo(o,h),l;if(null===m){for(;!y.done;h++,y=c.next())null!==(y=p(o,y.value,d))&&(i=r(y,i,h),null===u?l=y:u.sibling=y,u=y);return aa&&Jo(o,h),l}for(m=s(o,m);!y.done;h++,y=c.next())null!==(y=g(m,o,h,y.value,d))&&(e&&null!==y.alternate&&m.delete(null===y.key?h:y.key),i=r(y,i,h),null===u?l=y:u.sibling=y,u=y);return e&&m.forEach((function(e){return t(o,e)})),aa&&Jo(o,h),l}return function e(s,a,r,c){if("object"==typeof r&&null!==r&&r.type===_&&null===r.key&&(r=r.props.children),"object"==typeof r&&null!==r){switch(r.$$typeof){case w:e:{for(var d=r.key,l=a;null!==l;){if(l.key===d){if((d=r.type)===_){if(7===l.tag){n(s,l.sibling),(a=o(l,r.props.children)).return=s,s=a;break e}}else if(l.elementType===d||"object"==typeof d&&null!==d&&d.$$typeof===N&&Qa(d)===l.type){n(s,l.sibling),(a=o(l,r.props)).ref=Va(s,l,r),a.return=s,s=a;break e}n(s,l);break}t(s,l),l=l.sibling}r.type===_?((a=Id(r.props.children,s.mode,c,r.key)).return=s,s=a):((c=Od(r.type,r.key,r.props,null,s.mode,c)).ref=Va(s,a,r),c.return=s,s=c)}return i(s);case k:e:{for(l=r.key;null!==a;){if(a.key===l){if(4===a.tag&&a.stateNode.containerInfo===r.containerInfo&&a.stateNode.implementation===r.implementation){n(s,a.sibling),(a=o(a,r.children||[])).return=s,s=a;break e}n(s,a);break}t(s,a),a=a.sibling}(a=zd(r,s.mode,c)).return=s,s=a}return i(s);case N:return e(s,a,(l=r._init)(r._payload),c)}if(te(r))return m(s,a,r,c);if(O(r))return h(s,a,r,c);Wa(s,r)}return"string"==typeof r&&""!==r||"number"==typeof r?(r=""+r,null!==a&&6===a.tag?(n(s,a.sibling),(a=o(a,r)).return=s,s=a):(n(s,a),(a=Md(r,s.mode,c)).return=s,s=a),i(s)):n(s,a)}}var Ka=Ya(!0),Xa=Ya(!1),Ja={},er=Eo(Ja),tr=Eo(Ja),nr=Eo(Ja);function sr(e){if(e===Ja)throw Error(a(174));return e}function or(e,t){switch(jo(nr,t),jo(tr,e),jo(er,Ja),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ce(null,"");break;default:t=ce(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Co(er),jo(er,t)}function ar(){Co(er),Co(tr),Co(nr)}function rr(e){sr(nr.current);var t=sr(er.current),n=ce(t,e.type);t!==n&&(jo(tr,e),jo(er,n))}function ir(e){tr.current===e&&(Co(er),Co(tr))}var cr=Eo(0);function dr(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var lr=[];function ur(){for(var e=0;e<lr.length;e++)lr[e]._workInProgressVersionPrimary=null;lr.length=0}var pr=x.ReactCurrentDispatcher,fr=x.ReactCurrentBatchConfig,gr=0,mr=null,hr=null,br=null,yr=!1,vr=!1,xr=0,wr=0;function kr(){throw Error(a(321))}function _r(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!is(e[n],t[n]))return!1;return!0}function Sr(e,t,n,s,o,r){if(gr=r,mr=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pr.current=null===e||null===e.memoizedState?ii:ci,e=n(s,o),vr){r=0;do{if(vr=!1,xr=0,25<=r)throw Error(a(301));r+=1,br=hr=null,t.updateQueue=null,pr.current=di,e=n(s,o)}while(vr)}if(pr.current=ri,t=null!==hr&&null!==hr.next,gr=0,br=hr=mr=null,yr=!1,t)throw Error(a(300));return e}function Er(){var e=0!==xr;return xr=0,e}function Cr(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===br?mr.memoizedState=br=e:br=br.next=e,br}function jr(){if(null===hr){var e=mr.alternate;e=null!==e?e.memoizedState:null}else e=hr.next;var t=null===br?mr.memoizedState:br.next;if(null!==t)br=t,hr=e;else{if(null===e)throw Error(a(310));e={memoizedState:(hr=e).memoizedState,baseState:hr.baseState,baseQueue:hr.baseQueue,queue:hr.queue,next:null},null===br?mr.memoizedState=br=e:br=br.next=e}return br}function Tr(e,t){return"function"==typeof t?t(e):t}function Ar(e){var t=jr(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var s=hr,o=s.baseQueue,r=n.pending;if(null!==r){if(null!==o){var i=o.next;o.next=r.next,r.next=i}s.baseQueue=o=r,n.pending=null}if(null!==o){r=o.next,s=s.baseState;var c=i=null,d=null,l=r;do{var u=l.lane;if((gr&u)===u)null!==d&&(d=d.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),s=l.hasEagerState?l.eagerState:e(s,l.action);else{var p={lane:u,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null};null===d?(c=d=p,i=s):d=d.next=p,mr.lanes|=u,Fc|=u}l=l.next}while(null!==l&&l!==r);null===d?i=s:d.next=c,is(s,t.memoizedState)||(xi=!0),t.memoizedState=s,t.baseState=i,t.baseQueue=d,n.lastRenderedState=s}if(null!==(e=n.interleaved)){o=e;do{r=o.lane,mr.lanes|=r,Fc|=r,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Lr(e){var t=jr(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var s=n.dispatch,o=n.pending,r=t.memoizedState;if(null!==o){n.pending=null;var i=o=o.next;do{r=e(r,i.action),i=i.next}while(i!==o);is(r,t.memoizedState)||(xi=!0),t.memoizedState=r,null===t.baseQueue&&(t.baseState=r),n.lastRenderedState=r}return[r,s]}function Pr(){}function Nr(e,t){var n=mr,s=jr(),o=t(),r=!is(s.memoizedState,o);if(r&&(s.memoizedState=o,xi=!0),s=s.queue,qr(Or.bind(null,n,s,e),[e]),s.getSnapshot!==t||r||null!==br&&1&br.memoizedState.tag){if(n.flags|=2048,zr(9,Dr.bind(null,n,s,o,t),void 0,null),null===Lc)throw Error(a(349));0!=(30&gr)||Rr(n,t,o)}return o}function Rr(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=mr.updateQueue)?(t={lastEffect:null,stores:null},mr.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Dr(e,t,n,s){t.value=n,t.getSnapshot=s,Ir(t)&&Fr(e)}function Or(e,t,n){return n((function(){Ir(t)&&Fr(e)}))}function Ir(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!is(e,n)}catch(s){return!0}}function Fr(e){var t=La(e,1);null!==t&&sd(t,e,1,-1)}function Mr(e){var t=Cr();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Tr,lastRenderedState:e},t.queue=e,e=e.dispatch=ni.bind(null,mr,e),[t.memoizedState,e]}function zr(e,t,n,s){return e={tag:e,create:t,destroy:n,deps:s,next:null},null===(t=mr.updateQueue)?(t={lastEffect:null,stores:null},mr.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(s=n.next,n.next=e,e.next=s,t.lastEffect=e),e}function Br(){return jr().memoizedState}function $r(e,t,n,s){var o=Cr();mr.flags|=e,o.memoizedState=zr(1|t,n,void 0,void 0===s?null:s)}function Ur(e,t,n,s){var o=jr();s=void 0===s?null:s;var a=void 0;if(null!==hr){var r=hr.memoizedState;if(a=r.destroy,null!==s&&_r(s,r.deps))return void(o.memoizedState=zr(t,n,a,s))}mr.flags|=e,o.memoizedState=zr(1|t,n,a,s)}function Gr(e,t){return $r(8390656,8,e,t)}function qr(e,t){return Ur(2048,8,e,t)}function Hr(e,t){return Ur(4,2,e,t)}function Zr(e,t){return Ur(4,4,e,t)}function Vr(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Wr(e,t,n){return n=null!=n?n.concat([e]):null,Ur(4,4,Vr.bind(null,t,e),n)}function Qr(){}function Yr(e,t){var n=jr();t=void 0===t?null:t;var s=n.memoizedState;return null!==s&&null!==t&&_r(t,s[1])?s[0]:(n.memoizedState=[e,t],e)}function Kr(e,t){var n=jr();t=void 0===t?null:t;var s=n.memoizedState;return null!==s&&null!==t&&_r(t,s[1])?s[0]:(e=e(),n.memoizedState=[e,t],e)}function Xr(e,t,n){return 0==(21&gr)?(e.baseState&&(e.baseState=!1,xi=!0),e.memoizedState=n):(is(n,t)||(n=mt(),mr.lanes|=n,Fc|=n,e.baseState=!0),t)}function Jr(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var s=fr.transition;fr.transition={};try{e(!1),t()}finally{vt=n,fr.transition=s}}function ei(){return jr().memoizedState}function ti(e,t,n){var s=nd(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},si(e))oi(t,n);else if(null!==(n=Aa(e,t,n,s))){sd(n,e,s,td()),ai(n,t,s)}}function ni(e,t,n){var s=nd(e),o={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(si(e))oi(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var r=t.lastRenderedState,i=a(r,n);if(o.hasEagerState=!0,o.eagerState=i,is(i,r)){var c=t.interleaved;return null===c?(o.next=o,Ta(t)):(o.next=c.next,c.next=o),void(t.interleaved=o)}}catch(d){}null!==(n=Aa(e,t,o,s))&&(sd(n,e,s,o=td()),ai(n,t,s))}}function si(e){var t=e.alternate;return e===mr||null!==t&&t===mr}function oi(e,t){vr=yr=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ai(e,t,n){if(0!=(4194240&n)){var s=t.lanes;n|=s&=e.pendingLanes,t.lanes=n,yt(e,n)}}var ri={readContext:Ca,useCallback:kr,useContext:kr,useEffect:kr,useImperativeHandle:kr,useInsertionEffect:kr,useLayoutEffect:kr,useMemo:kr,useReducer:kr,useRef:kr,useState:kr,useDebugValue:kr,useDeferredValue:kr,useTransition:kr,useMutableSource:kr,useSyncExternalStore:kr,useId:kr,unstable_isNewReconciler:!1},ii={readContext:Ca,useCallback:function(e,t){return Cr().memoizedState=[e,void 0===t?null:t],e},useContext:Ca,useEffect:Gr,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$r(4194308,4,Vr.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $r(4194308,4,e,t)},useInsertionEffect:function(e,t){return $r(4,2,e,t)},useMemo:function(e,t){var n=Cr();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=Cr();return t=void 0!==n?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=ti.bind(null,mr,e),[s.memoizedState,e]},useRef:function(e){return e={current:e},Cr().memoizedState=e},useState:Mr,useDebugValue:Qr,useDeferredValue:function(e){return Cr().memoizedState=e},useTransition:function(){var e=Mr(!1),t=e[0];return e=Jr.bind(null,e[1]),Cr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=mr,o=Cr();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Lc)throw Error(a(349));0!=(30&gr)||Rr(s,t,n)}o.memoizedState=n;var r={value:n,getSnapshot:t};return o.queue=r,Gr(Or.bind(null,s,r,e),[e]),s.flags|=2048,zr(9,Dr.bind(null,s,r,n,t),void 0,null),n},useId:function(){var e=Cr(),t=Lc.identifierPrefix;if(aa){var n=Xo;t=":"+t+"R"+(n=(Ko&~(1<<32-rt(Ko)-1)).toString(32)+n),0<(n=xr++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=wr++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ci={readContext:Ca,useCallback:Yr,useContext:Ca,useEffect:qr,useImperativeHandle:Wr,useInsertionEffect:Hr,useLayoutEffect:Zr,useMemo:Kr,useReducer:Ar,useRef:Br,useState:function(){return Ar(Tr)},useDebugValue:Qr,useDeferredValue:function(e){return Xr(jr(),hr.memoizedState,e)},useTransition:function(){return[Ar(Tr)[0],jr().memoizedState]},useMutableSource:Pr,useSyncExternalStore:Nr,useId:ei,unstable_isNewReconciler:!1},di={readContext:Ca,useCallback:Yr,useContext:Ca,useEffect:qr,useImperativeHandle:Wr,useInsertionEffect:Hr,useLayoutEffect:Zr,useMemo:Kr,useReducer:Lr,useRef:Br,useState:function(){return Lr(Tr)},useDebugValue:Qr,useDeferredValue:function(e){var t=jr();return null===hr?t.memoizedState=e:Xr(t,hr.memoizedState,e)},useTransition:function(){return[Lr(Tr)[0],jr().memoizedState]},useMutableSource:Pr,useSyncExternalStore:Nr,useId:ei,unstable_isNewReconciler:!1};function li(e,t){try{var n="",s=t;do{n+=$(s),s=s.return}while(s);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function ui(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function pi(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fi="function"==typeof WeakMap?WeakMap:Map;function gi(e,t,n){(n=Da(-1,n)).tag=3,n.payload={element:null};var s=t.value;return n.callback=function(){Hc||(Hc=!0,Zc=s),pi(0,t)},n}function mi(e,t,n){(n=Da(-1,n)).tag=3;var s=e.type.getDerivedStateFromError;if("function"==typeof s){var o=t.value;n.payload=function(){return s(o)},n.callback=function(){pi(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){pi(0,t),"function"!=typeof s&&(null===Vc?Vc=new Set([this]):Vc.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hi(e,t,n){var s=e.pingCache;if(null===s){s=e.pingCache=new fi;var o=new Set;s.set(t,o)}else void 0===(o=s.get(t))&&(o=new Set,s.set(t,o));o.has(n)||(o.add(n),e=Cd.bind(null,e,t,n),t.then(e,e))}function bi(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function yi(e,t,n,s,o){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Da(-1,1)).tag=2,Oa(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var vi=x.ReactCurrentOwner,xi=!1;function wi(e,t,n,s){t.child=null===e?Xa(t,null,n,s):Ka(t,e.child,n,s)}function ki(e,t,n,s,o){n=n.render;var a=t.ref;return Ea(t,o),s=Sr(e,t,n,s,a,o),n=Er(),null===e||xi?(aa&&n&&ta(t),t.flags|=1,wi(e,t,s,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hi(e,t,o))}function _i(e,t,n,s,o){if(null===e){var a=n.type;return"function"!=typeof a||Rd(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Od(n.type,null,s,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Si(e,t,a,s,o))}if(a=e.child,0==(e.lanes&o)){var r=a.memoizedProps;if((n=null!==(n=n.compare)?n:cs)(r,s)&&e.ref===t.ref)return Hi(e,t,o)}return t.flags|=1,(e=Dd(a,s)).ref=t.ref,e.return=t,t.child=e}function Si(e,t,n,s,o){if(null!==e){var a=e.memoizedProps;if(cs(a,s)&&e.ref===t.ref){if(xi=!1,t.pendingProps=s=a,0==(e.lanes&o))return t.lanes=e.lanes,Hi(e,t,o);0!=(131072&e.flags)&&(xi=!0)}}return ji(e,t,n,s,o)}function Ei(e,t,n){var s=t.pendingProps,o=s.children,a=null!==e?e.memoizedState:null;if("hidden"===s.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},jo(Dc,Rc),Rc|=n;else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,jo(Dc,Rc),Rc|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=null!==a?a.baseLanes:n,jo(Dc,Rc),Rc|=s}else null!==a?(s=a.baseLanes|n,t.memoizedState=null):s=n,jo(Dc,Rc),Rc|=s;return wi(e,t,o,n),t.child}function Ci(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ji(e,t,n,s,o){var a=Ro(n)?Po:Ao.current;return a=No(t,a),Ea(t,o),n=Sr(e,t,n,s,a,o),s=Er(),null===e||xi?(aa&&s&&ta(t),t.flags|=1,wi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hi(e,t,o))}function Ti(e,t,n,s,o){if(Ro(n)){var a=!0;Fo(t)}else a=!1;if(Ea(t,o),null===t.stateNode)qi(e,t),qa(t,n,s),Za(t,n,s,o),s=!0;else if(null===e){var r=t.stateNode,i=t.memoizedProps;r.props=i;var c=r.context,d=n.contextType;"object"==typeof d&&null!==d?d=Ca(d):d=No(t,d=Ro(n)?Po:Ao.current);var l=n.getDerivedStateFromProps,u="function"==typeof l||"function"==typeof r.getSnapshotBeforeUpdate;u||"function"!=typeof r.UNSAFE_componentWillReceiveProps&&"function"!=typeof r.componentWillReceiveProps||(i!==s||c!==d)&&Ha(t,r,s,d),Pa=!1;var p=t.memoizedState;r.state=p,Ma(t,s,r,o),c=t.memoizedState,i!==s||p!==c||Lo.current||Pa?("function"==typeof l&&($a(t,n,l,s),c=t.memoizedState),(i=Pa||Ga(t,n,i,s,p,c,d))?(u||"function"!=typeof r.UNSAFE_componentWillMount&&"function"!=typeof r.componentWillMount||("function"==typeof r.componentWillMount&&r.componentWillMount(),"function"==typeof r.UNSAFE_componentWillMount&&r.UNSAFE_componentWillMount()),"function"==typeof r.componentDidMount&&(t.flags|=4194308)):("function"==typeof r.componentDidMount&&(t.flags|=4194308),t.memoizedProps=s,t.memoizedState=c),r.props=s,r.state=c,r.context=d,s=i):("function"==typeof r.componentDidMount&&(t.flags|=4194308),s=!1)}else{r=t.stateNode,Ra(e,t),i=t.memoizedProps,d=t.type===t.elementType?i:ba(t.type,i),r.props=d,u=t.pendingProps,p=r.context,"object"==typeof(c=n.contextType)&&null!==c?c=Ca(c):c=No(t,c=Ro(n)?Po:Ao.current);var f=n.getDerivedStateFromProps;(l="function"==typeof f||"function"==typeof r.getSnapshotBeforeUpdate)||"function"!=typeof r.UNSAFE_componentWillReceiveProps&&"function"!=typeof r.componentWillReceiveProps||(i!==u||p!==c)&&Ha(t,r,s,c),Pa=!1,p=t.memoizedState,r.state=p,Ma(t,s,r,o);var g=t.memoizedState;i!==u||p!==g||Lo.current||Pa?("function"==typeof f&&($a(t,n,f,s),g=t.memoizedState),(d=Pa||Ga(t,n,d,s,p,g,c)||!1)?(l||"function"!=typeof r.UNSAFE_componentWillUpdate&&"function"!=typeof r.componentWillUpdate||("function"==typeof r.componentWillUpdate&&r.componentWillUpdate(s,g,c),"function"==typeof r.UNSAFE_componentWillUpdate&&r.UNSAFE_componentWillUpdate(s,g,c)),"function"==typeof r.componentDidUpdate&&(t.flags|=4),"function"==typeof r.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof r.componentDidUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof r.getSnapshotBeforeUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=s,t.memoizedState=g),r.props=s,r.state=g,r.context=c,s=d):("function"!=typeof r.componentDidUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof r.getSnapshotBeforeUpdate||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),s=!1)}return Ai(e,t,n,s,a,o)}function Ai(e,t,n,s,o,a){Ci(e,t);var r=0!=(128&t.flags);if(!s&&!r)return o&&Mo(t,n,!1),Hi(e,t,a);s=t.stateNode,vi.current=t;var i=r&&"function"!=typeof n.getDerivedStateFromError?null:s.render();return t.flags|=1,null!==e&&r?(t.child=Ka(t,e.child,null,a),t.child=Ka(t,null,i,a)):wi(e,t,i,a),t.memoizedState=s.state,o&&Mo(t,n,!0),t.child}function Li(e){var t=e.stateNode;t.pendingContext?Oo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oo(0,t.context,!1),or(e,t.containerInfo)}function Pi(e,t,n,s,o){return ga(),ma(o),t.flags|=256,wi(e,t,n,s),t.child}var Ni,Ri,Di,Oi,Ii={dehydrated:null,treeContext:null,retryLane:0};function Fi(e){return{baseLanes:e,cachePool:null,transitions:null}}function Mi(e,t,n){var s,o=t.pendingProps,r=cr.current,i=!1,c=0!=(128&t.flags);if((s=c)||(s=(null===e||null!==e.memoizedState)&&0!=(2&r)),s?(i=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(r|=1),jo(cr,1&r),null===e)return la(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(c=o.children,e=o.fallback,i?(o=t.mode,i=t.child,c={mode:"hidden",children:c},0==(1&o)&&null!==i?(i.childLanes=0,i.pendingProps=c):i=Fd(c,o,0,null),e=Id(e,o,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Fi(n),t.memoizedState=Ii,e):zi(t,c));if(null!==(r=e.memoizedState)&&null!==(s=r.dehydrated))return function(e,t,n,s,o,r,i){if(n)return 256&t.flags?(t.flags&=-257,Bi(e,t,i,s=ui(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(r=s.fallback,o=t.mode,s=Fd({mode:"visible",children:s.children},o,0,null),(r=Id(r,o,i,null)).flags|=2,s.return=t,r.return=t,s.sibling=r,t.child=s,0!=(1&t.mode)&&Ka(t,e.child,null,i),t.child.memoizedState=Fi(i),t.memoizedState=Ii,r);if(0==(1&t.mode))return Bi(e,t,i,null);if("$!"===o.data){if(s=o.nextSibling&&o.nextSibling.dataset)var c=s.dgst;return s=c,Bi(e,t,i,s=ui(r=Error(a(419)),s,void 0))}if(c=0!=(i&e.childLanes),xi||c){if(null!==(s=Lc)){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!=(o&(s.suspendedLanes|i))?0:o)&&o!==r.retryLane&&(r.retryLane=o,La(e,o),sd(s,e,o,-1))}return hd(),Bi(e,t,i,s=ui(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Td.bind(null,e),o._reactRetry=t,null):(e=r.treeContext,oa=lo(o.nextSibling),sa=t,aa=!0,ra=null,null!==e&&(Wo[Qo++]=Ko,Wo[Qo++]=Xo,Wo[Qo++]=Yo,Ko=e.id,Xo=e.overflow,Yo=t),t=zi(t,s.children),t.flags|=4096,t)}(e,t,c,o,s,r,n);if(i){i=o.fallback,c=t.mode,s=(r=e.child).sibling;var d={mode:"hidden",children:o.children};return 0==(1&c)&&t.child!==r?((o=t.child).childLanes=0,o.pendingProps=d,t.deletions=null):(o=Dd(r,d)).subtreeFlags=14680064&r.subtreeFlags,null!==s?i=Dd(s,i):(i=Id(i,c,n,null)).flags|=2,i.return=t,o.return=t,o.sibling=i,t.child=o,o=i,i=t.child,c=null===(c=e.child.memoizedState)?Fi(n):{baseLanes:c.baseLanes|n,cachePool:null,transitions:c.transitions},i.memoizedState=c,i.childLanes=e.childLanes&~n,t.memoizedState=Ii,o}return e=(i=e.child).sibling,o=Dd(i,{mode:"visible",children:o.children}),0==(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function zi(e,t){return(t=Fd({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bi(e,t,n,s){return null!==s&&ma(s),Ka(t,e.child,null,n),(e=zi(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $i(e,t,n){e.lanes|=t;var s=e.alternate;null!==s&&(s.lanes|=t),Sa(e.return,t,n)}function Ui(e,t,n,s,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=s,a.tail=n,a.tailMode=o)}function Gi(e,t,n){var s=t.pendingProps,o=s.revealOrder,a=s.tail;if(wi(e,t,s.children,n),0!=(2&(s=cr.current)))s=1&s|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$i(e,n,t);else if(19===e.tag)$i(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(jo(cr,s),0==(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===dr(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ui(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===dr(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ui(t,!0,n,null,a);break;case"together":Ui(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function qi(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hi(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Fc|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Dd(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Dd(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Zi(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;null!==n;)null!==n.alternate&&(s=n),n=n.sibling;null===s?t||null===e.tail?e.tail=null:e.tail.sibling=null:s.sibling=null}}function Vi(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,s=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,s|=14680064&o.subtreeFlags,s|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,s|=o.subtreeFlags,s|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=s,e.childLanes=n,t}function Wi(e,t,n){var s=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vi(t),null;case 1:case 17:return Ro(t.type)&&Do(),Vi(t),null;case 3:return s=t.stateNode,ar(),Co(Lo),Co(Ao),ur(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),null!==e&&null!==e.child||(pa(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ra&&(id(ra),ra=null))),Ri(e,t),Vi(t),null;case 5:ir(t);var o=sr(nr.current);if(n=t.type,null!==e&&null!=t.stateNode)Di(e,t,n,s,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!s){if(null===t.stateNode)throw Error(a(166));return Vi(t),null}if(e=sr(er.current),pa(t)){s=t.stateNode,n=t.type;var r=t.memoizedProps;switch(s[fo]=t,s[go]=r,e=0!=(1&t.mode),n){case"dialog":zs("cancel",s),zs("close",s);break;case"iframe":case"object":case"embed":zs("load",s);break;case"video":case"audio":for(o=0;o<Os.length;o++)zs(Os[o],s);break;case"source":zs("error",s);break;case"img":case"image":case"link":zs("error",s),zs("load",s);break;case"details":zs("toggle",s);break;case"input":Y(s,r),zs("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!r.multiple},zs("invalid",s);break;case"textarea":oe(s,r),zs("invalid",s)}for(var c in ye(n,r),o=null,r)if(r.hasOwnProperty(c)){var d=r[c];"children"===c?"string"==typeof d?s.textContent!==d&&(!0!==r.suppressHydrationWarning&&Xs(s.textContent,d,e),o=["children",d]):"number"==typeof d&&s.textContent!==""+d&&(!0!==r.suppressHydrationWarning&&Xs(s.textContent,d,e),o=["children",""+d]):i.hasOwnProperty(c)&&null!=d&&"onScroll"===c&&zs("scroll",s)}switch(n){case"input":Z(s),J(s,r,!0);break;case"textarea":Z(s),re(s);break;case"select":case"option":break;default:"function"==typeof r.onClick&&(s.onclick=Js)}s=o,t.updateQueue=s,null!==s&&(t.flags|=4)}else{c=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=ie(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof s.is?e=c.createElement(n,{is:s.is}):(e=c.createElement(n),"select"===n&&(c=e,s.multiple?c.multiple=!0:s.size&&(c.size=s.size))):e=c.createElementNS(e,n),e[fo]=t,e[go]=s,Ni(e,t,!1,!1),t.stateNode=e;e:{switch(c=ve(n,s),n){case"dialog":zs("cancel",e),zs("close",e),o=s;break;case"iframe":case"object":case"embed":zs("load",e),o=s;break;case"video":case"audio":for(o=0;o<Os.length;o++)zs(Os[o],e);o=s;break;case"source":zs("error",e),o=s;break;case"img":case"image":case"link":zs("error",e),zs("load",e),o=s;break;case"details":zs("toggle",e),o=s;break;case"input":Y(e,s),o=Q(e,s),zs("invalid",e);break;case"option":default:o=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},o=F({},s,{value:void 0}),zs("invalid",e);break;case"textarea":oe(e,s),o=se(e,s),zs("invalid",e)}for(r in ye(n,o),d=o)if(d.hasOwnProperty(r)){var l=d[r];"style"===r?he(e,l):"dangerouslySetInnerHTML"===r?null!=(l=l?l.__html:void 0)&&ue(e,l):"children"===r?"string"==typeof l?("textarea"!==n||""!==l)&&pe(e,l):"number"==typeof l&&pe(e,""+l):"suppressContentEditableWarning"!==r&&"suppressHydrationWarning"!==r&&"autoFocus"!==r&&(i.hasOwnProperty(r)?null!=l&&"onScroll"===r&&zs("scroll",e):null!=l&&v(e,r,l,c))}switch(n){case"input":Z(e),J(e,s,!1);break;case"textarea":Z(e),re(e);break;case"option":null!=s.value&&e.setAttribute("value",""+q(s.value));break;case"select":e.multiple=!!s.multiple,null!=(r=s.value)?ne(e,!!s.multiple,r,!1):null!=s.defaultValue&&ne(e,!!s.multiple,s.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Js)}switch(n){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vi(t),null;case 6:if(e&&null!=t.stateNode)Oi(e,t,e.memoizedProps,s);else{if("string"!=typeof s&&null===t.stateNode)throw Error(a(166));if(n=sr(nr.current),sr(er.current),pa(t)){if(s=t.stateNode,n=t.memoizedProps,s[fo]=t,(r=s.nodeValue!==n)&&null!==(e=sa))switch(e.tag){case 3:Xs(s.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xs(s.nodeValue,n,0!=(1&e.mode))}r&&(t.flags|=4)}else(s=(9===n.nodeType?n:n.ownerDocument).createTextNode(s))[fo]=t,t.stateNode=s}return Vi(t),null;case 13:if(Co(cr),s=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&0!=(1&t.mode)&&0==(128&t.flags))fa(),ga(),t.flags|=98560,r=!1;else if(r=pa(t),null!==s&&null!==s.dehydrated){if(null===e){if(!r)throw Error(a(318));if(!(r=null!==(r=t.memoizedState)?r.dehydrated:null))throw Error(a(317));r[fo]=t}else ga(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vi(t),r=!1}else null!==ra&&(id(ra),ra=null),r=!0;if(!r)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((s=null!==s)!==(null!==e&&null!==e.memoizedState)&&s&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&cr.current)?0===Oc&&(Oc=3):hd())),null!==t.updateQueue&&(t.flags|=4),Vi(t),null);case 4:return ar(),Ri(e,t),null===e&&Us(t.stateNode.containerInfo),Vi(t),null;case 10:return _a(t.type._context),Vi(t),null;case 19:if(Co(cr),null===(r=t.memoizedState))return Vi(t),null;if(s=0!=(128&t.flags),null===(c=r.rendering))if(s)Zi(r,!1);else{if(0!==Oc||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(c=dr(e))){for(t.flags|=128,Zi(r,!1),null!==(s=c.updateQueue)&&(t.updateQueue=s,t.flags|=4),t.subtreeFlags=0,s=n,n=t.child;null!==n;)e=s,(r=n).flags&=14680066,null===(c=r.alternate)?(r.childLanes=0,r.lanes=e,r.child=null,r.subtreeFlags=0,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null,r.stateNode=null):(r.childLanes=c.childLanes,r.lanes=c.lanes,r.child=c.child,r.subtreeFlags=0,r.deletions=null,r.memoizedProps=c.memoizedProps,r.memoizedState=c.memoizedState,r.updateQueue=c.updateQueue,r.type=c.type,e=c.dependencies,r.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return jo(cr,1&cr.current|2),t.child}e=e.sibling}null!==r.tail&&Ke()>Gc&&(t.flags|=128,s=!0,Zi(r,!1),t.lanes=4194304)}else{if(!s)if(null!==(e=dr(c))){if(t.flags|=128,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Zi(r,!0),null===r.tail&&"hidden"===r.tailMode&&!c.alternate&&!aa)return Vi(t),null}else 2*Ke()-r.renderingStartTime>Gc&&1073741824!==n&&(t.flags|=128,s=!0,Zi(r,!1),t.lanes=4194304);r.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}return null!==r.tail?(t=r.tail,r.rendering=t,r.tail=t.sibling,r.renderingStartTime=Ke(),t.sibling=null,n=cr.current,jo(cr,s?1&n|2:1&n),t):(Vi(t),null);case 22:case 23:return pd(),s=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==s&&(t.flags|=8192),s&&0!=(1&t.mode)?0!=(1073741824&Rc)&&(Vi(t),6&t.subtreeFlags&&(t.flags|=8192)):Vi(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Qi(e,t){switch(na(t),t.tag){case 1:return Ro(t.type)&&Do(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ar(),Co(Lo),Co(Ao),ur(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return ir(t),null;case 13:if(Co(cr),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ga()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Co(cr),null;case 4:return ar(),null;case 10:return _a(t.type._context),null;case 22:case 23:return pd(),null;default:return null}}Ni=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ri=function(){},Di=function(e,t,n,s){var o=e.memoizedProps;if(o!==s){e=t.stateNode,sr(er.current);var a,r=null;switch(n){case"input":o=Q(e,o),s=Q(e,s),r=[];break;case"select":o=F({},o,{value:void 0}),s=F({},s,{value:void 0}),r=[];break;case"textarea":o=se(e,o),s=se(e,s),r=[];break;default:"function"!=typeof o.onClick&&"function"==typeof s.onClick&&(e.onclick=Js)}for(l in ye(n,s),n=null,o)if(!s.hasOwnProperty(l)&&o.hasOwnProperty(l)&&null!=o[l])if("style"===l){var c=o[l];for(a in c)c.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(i.hasOwnProperty(l)?r||(r=[]):(r=r||[]).push(l,null));for(l in s){var d=s[l];if(c=null!=o?o[l]:void 0,s.hasOwnProperty(l)&&d!==c&&(null!=d||null!=c))if("style"===l)if(c){for(a in c)!c.hasOwnProperty(a)||d&&d.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in d)d.hasOwnProperty(a)&&c[a]!==d[a]&&(n||(n={}),n[a]=d[a])}else n||(r||(r=[]),r.push(l,n)),n=d;else"dangerouslySetInnerHTML"===l?(d=d?d.__html:void 0,c=c?c.__html:void 0,null!=d&&c!==d&&(r=r||[]).push(l,d)):"children"===l?"string"!=typeof d&&"number"!=typeof d||(r=r||[]).push(l,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(i.hasOwnProperty(l)?(null!=d&&"onScroll"===l&&zs("scroll",e),r||c===d||(r=[])):(r=r||[]).push(l,d))}n&&(r=r||[]).push("style",n);var l=r;(t.updateQueue=l)&&(t.flags|=4)}},Oi=function(e,t,n,s){n!==s&&(t.flags|=4)};var Yi=!1,Ki=!1,Xi="function"==typeof WeakSet?WeakSet:Set,Ji=null;function ec(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(s){Ed(e,t,s)}else n.current=null}function tc(e,t,n){try{n()}catch(s){Ed(e,t,s)}}var nc=!1;function sc(e,t,n){var s=t.updateQueue;if(null!==(s=null!==s?s.lastEffect:null)){var o=s=s.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&tc(t,n,a)}o=o.next}while(o!==s)}}function oc(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function ac(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function rc(e){var t=e.alternate;null!==t&&(e.alternate=null,rc(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[go],delete t[ho],delete t[bo],delete t[yo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ic(e){return 5===e.tag||3===e.tag||4===e.tag}function cc(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ic(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function dc(e,t,n){var s=e.tag;if(5===s||6===s)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Js));else if(4!==s&&null!==(e=e.child))for(dc(e,t,n),e=e.sibling;null!==e;)dc(e,t,n),e=e.sibling}function lc(e,t,n){var s=e.tag;if(5===s||6===s)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==s&&null!==(e=e.child))for(lc(e,t,n),e=e.sibling;null!==e;)lc(e,t,n),e=e.sibling}var uc=null,pc=!1;function fc(e,t,n){for(n=n.child;null!==n;)gc(e,t,n),n=n.sibling}function gc(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(i){}switch(n.tag){case 5:Ki||ec(n,t);case 6:var s=uc,o=pc;uc=null,fc(e,t,n),pc=o,null!==(uc=s)&&(pc?(e=uc,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):uc.removeChild(n.stateNode));break;case 18:null!==uc&&(pc?(e=uc,n=n.stateNode,8===e.nodeType?co(e.parentNode,n):1===e.nodeType&&co(e,n),Ut(e)):co(uc,n.stateNode));break;case 4:s=uc,o=pc,uc=n.stateNode.containerInfo,pc=!0,fc(e,t,n),uc=s,pc=o;break;case 0:case 11:case 14:case 15:if(!Ki&&(null!==(s=n.updateQueue)&&null!==(s=s.lastEffect))){o=s=s.next;do{var a=o,r=a.destroy;a=a.tag,void 0!==r&&(0!=(2&a)||0!=(4&a))&&tc(n,t,r),o=o.next}while(o!==s)}fc(e,t,n);break;case 1:if(!Ki&&(ec(n,t),"function"==typeof(s=n.stateNode).componentWillUnmount))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(i){Ed(n,t,i)}fc(e,t,n);break;case 21:fc(e,t,n);break;case 22:1&n.mode?(Ki=(s=Ki)||null!==n.memoizedState,fc(e,t,n),Ki=s):fc(e,t,n);break;default:fc(e,t,n)}}function mc(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xi),t.forEach((function(t){var s=Ad.bind(null,e,t);n.has(t)||(n.add(t),t.then(s,s))}))}}function hc(e,t){var n=t.deletions;if(null!==n)for(var s=0;s<n.length;s++){var o=n[s];try{var r=e,i=t,c=i;e:for(;null!==c;){switch(c.tag){case 5:uc=c.stateNode,pc=!1;break e;case 3:case 4:uc=c.stateNode.containerInfo,pc=!0;break e}c=c.return}if(null===uc)throw Error(a(160));gc(r,i,o),uc=null,pc=!1;var d=o.alternate;null!==d&&(d.return=null),o.return=null}catch(l){Ed(o,t,l)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bc(t,e),t=t.sibling}function bc(e,t){var n=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hc(t,e),yc(e),4&s){try{sc(3,e,e.return),oc(3,e)}catch(h){Ed(e,e.return,h)}try{sc(5,e,e.return)}catch(h){Ed(e,e.return,h)}}break;case 1:hc(t,e),yc(e),512&s&&null!==n&&ec(n,n.return);break;case 5:if(hc(t,e),yc(e),512&s&&null!==n&&ec(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(h){Ed(e,e.return,h)}}if(4&s&&null!=(o=e.stateNode)){var r=e.memoizedProps,i=null!==n?n.memoizedProps:r,c=e.type,d=e.updateQueue;if(e.updateQueue=null,null!==d)try{"input"===c&&"radio"===r.type&&null!=r.name&&K(o,r),ve(c,i);var l=ve(c,r);for(i=0;i<d.length;i+=2){var u=d[i],p=d[i+1];"style"===u?he(o,p):"dangerouslySetInnerHTML"===u?ue(o,p):"children"===u?pe(o,p):v(o,u,p,l)}switch(c){case"input":X(o,r);break;case"textarea":ae(o,r);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!r.multiple;var g=r.value;null!=g?ne(o,!!r.multiple,g,!1):f!==!!r.multiple&&(null!=r.defaultValue?ne(o,!!r.multiple,r.defaultValue,!0):ne(o,!!r.multiple,r.multiple?[]:"",!1))}o[go]=r}catch(h){Ed(e,e.return,h)}}break;case 6:if(hc(t,e),yc(e),4&s){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,r=e.memoizedProps;try{o.nodeValue=r}catch(h){Ed(e,e.return,h)}}break;case 3:if(hc(t,e),yc(e),4&s&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(h){Ed(e,e.return,h)}break;case 4:default:hc(t,e),yc(e);break;case 13:hc(t,e),yc(e),8192&(o=e.child).flags&&(r=null!==o.memoizedState,o.stateNode.isHidden=r,!r||null!==o.alternate&&null!==o.alternate.memoizedState||(Uc=Ke())),4&s&&mc(e);break;case 22:if(u=null!==n&&null!==n.memoizedState,1&e.mode?(Ki=(l=Ki)||u,hc(t,e),Ki=l):hc(t,e),yc(e),8192&s){if(l=null!==e.memoizedState,(e.stateNode.isHidden=l)&&!u&&0!=(1&e.mode))for(Ji=e,u=e.child;null!==u;){for(p=Ji=u;null!==Ji;){switch(g=(f=Ji).child,f.tag){case 0:case 11:case 14:case 15:sc(4,f,f.return);break;case 1:ec(f,f.return);var m=f.stateNode;if("function"==typeof m.componentWillUnmount){s=f,n=f.return;try{t=s,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(h){Ed(s,n,h)}}break;case 5:ec(f,f.return);break;case 22:if(null!==f.memoizedState){kc(p);continue}}null!==g?(g.return=f,Ji=g):kc(p)}u=u.sibling}e:for(u=null,p=e;;){if(5===p.tag){if(null===u){u=p;try{o=p.stateNode,l?"function"==typeof(r=o.style).setProperty?r.setProperty("display","none","important"):r.display="none":(c=p.stateNode,i=null!=(d=p.memoizedProps.style)&&d.hasOwnProperty("display")?d.display:null,c.style.display=me("display",i))}catch(h){Ed(e,e.return,h)}}}else if(6===p.tag){if(null===u)try{p.stateNode.nodeValue=l?"":p.memoizedProps}catch(h){Ed(e,e.return,h)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;u===p&&(u=null),p=p.return}u===p&&(u=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hc(t,e),yc(e),4&s&&mc(e);case 21:}}function yc(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ic(n)){var s=n;break e}n=n.return}throw Error(a(160))}switch(s.tag){case 5:var o=s.stateNode;32&s.flags&&(pe(o,""),s.flags&=-33),lc(e,cc(e),o);break;case 3:case 4:var r=s.stateNode.containerInfo;dc(e,cc(e),r);break;default:throw Error(a(161))}}catch(i){Ed(e,e.return,i)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vc(e,t,n){Ji=e,xc(e,t,n)}function xc(e,t,n){for(var s=0!=(1&e.mode);null!==Ji;){var o=Ji,a=o.child;if(22===o.tag&&s){var r=null!==o.memoizedState||Yi;if(!r){var i=o.alternate,c=null!==i&&null!==i.memoizedState||Ki;i=Yi;var d=Ki;if(Yi=r,(Ki=c)&&!d)for(Ji=o;null!==Ji;)c=(r=Ji).child,22===r.tag&&null!==r.memoizedState?_c(o):null!==c?(c.return=r,Ji=c):_c(o);for(;null!==a;)Ji=a,xc(a,t,n),a=a.sibling;Ji=o,Yi=i,Ki=d}wc(e)}else 0!=(8772&o.subtreeFlags)&&null!==a?(a.return=o,Ji=a):wc(e)}}function wc(e){for(;null!==Ji;){var t=Ji;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ki||oc(5,t);break;case 1:var s=t.stateNode;if(4&t.flags&&!Ki)if(null===n)s.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ba(t.type,n.memoizedProps);s.componentDidUpdate(o,n.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var r=t.updateQueue;null!==r&&za(t,r,s);break;case 3:var i=t.updateQueue;if(null!==i){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}za(t,i,n)}break;case 5:var c=t.stateNode;if(null===n&&4&t.flags){n=c;var d=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":d.autoFocus&&n.focus();break;case"img":d.src&&(n.src=d.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var l=t.alternate;if(null!==l){var u=l.memoizedState;if(null!==u){var p=u.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(a(163))}Ki||512&t.flags&&ac(t)}catch(f){Ed(t,t.return,f)}}if(t===e){Ji=null;break}if(null!==(n=t.sibling)){n.return=t.return,Ji=n;break}Ji=t.return}}function kc(e){for(;null!==Ji;){var t=Ji;if(t===e){Ji=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Ji=n;break}Ji=t.return}}function _c(e){for(;null!==Ji;){var t=Ji;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{oc(4,t)}catch(c){Ed(t,n,c)}break;case 1:var s=t.stateNode;if("function"==typeof s.componentDidMount){var o=t.return;try{s.componentDidMount()}catch(c){Ed(t,o,c)}}var a=t.return;try{ac(t)}catch(c){Ed(t,a,c)}break;case 5:var r=t.return;try{ac(t)}catch(c){Ed(t,r,c)}}}catch(c){Ed(t,t.return,c)}if(t===e){Ji=null;break}var i=t.sibling;if(null!==i){i.return=t.return,Ji=i;break}Ji=t.return}}var Sc,Ec=Math.ceil,Cc=x.ReactCurrentDispatcher,jc=x.ReactCurrentOwner,Tc=x.ReactCurrentBatchConfig,Ac=0,Lc=null,Pc=null,Nc=0,Rc=0,Dc=Eo(0),Oc=0,Ic=null,Fc=0,Mc=0,zc=0,Bc=null,$c=null,Uc=0,Gc=1/0,qc=null,Hc=!1,Zc=null,Vc=null,Wc=!1,Qc=null,Yc=0,Kc=0,Xc=null,Jc=-1,ed=0;function td(){return 0!=(6&Ac)?Ke():-1!==Jc?Jc:Jc=Ke()}function nd(e){return 0==(1&e.mode)?1:0!=(2&Ac)&&0!==Nc?Nc&-Nc:null!==ha.transition?(0===ed&&(ed=mt()),ed):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function sd(e,t,n,s){if(50<Kc)throw Kc=0,Xc=null,Error(a(185));bt(e,n,s),0!=(2&Ac)&&e===Lc||(e===Lc&&(0==(2&Ac)&&(Mc|=n),4===Oc&&cd(e,Nc)),od(e,s),1===n&&0===Ac&&0==(1&t.mode)&&(Gc=Ke()+500,Bo&&Go()))}function od(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,s=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var r=31-rt(a),i=1<<r,c=o[r];-1===c?0!=(i&n)&&0==(i&s)||(o[r]=ft(i,t)):c<=t&&(e.expiredLanes|=i),a&=~i}}(e,t);var s=pt(e,e===Lc?Nc:0);if(0===s)null!==n&&We(n),e.callbackNode=null,e.callbackPriority=0;else if(t=s&-s,e.callbackPriority!==t){if(null!=n&&We(n),1===t)0===e.tag?function(e){Bo=!0,Uo(e)}(dd.bind(null,e)):Uo(dd.bind(null,e)),ro((function(){0==(6&Ac)&&Go()})),n=null;else{switch(xt(s)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=st}n=Ld(n,ad.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ad(e,t){if(Jc=-1,ed=0,0!=(6&Ac))throw Error(a(327));var n=e.callbackNode;if(_d()&&e.callbackNode!==n)return null;var s=pt(e,e===Lc?Nc:0);if(0===s)return null;if(0!=(30&s)||0!=(s&e.expiredLanes)||t)t=bd(e,s);else{t=s;var o=Ac;Ac|=2;var r=md();for(Lc===e&&Nc===t||(qc=null,Gc=Ke()+500,fd(e,t));;)try{vd();break}catch(c){gd(e,c)}ka(),Cc.current=r,Ac=o,null!==Pc?t=0:(Lc=null,Nc=0,t=Oc)}if(0!==t){if(2===t&&(0!==(o=gt(e))&&(s=o,t=rd(e,o))),1===t)throw n=Ic,fd(e,0),cd(e,s),od(e,Ke()),n;if(6===t)cd(e,s);else{if(o=e.current.alternate,0==(30&s)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var s=0;s<n.length;s++){var o=n[s],a=o.getSnapshot;o=o.value;try{if(!is(a(),o))return!1}catch(i){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)&&(2===(t=bd(e,s))&&(0!==(r=gt(e))&&(s=r,t=rd(e,r))),1===t))throw n=Ic,fd(e,0),cd(e,s),od(e,Ke()),n;switch(e.finishedWork=o,e.finishedLanes=s,t){case 0:case 1:throw Error(a(345));case 2:case 5:kd(e,$c,qc);break;case 3:if(cd(e,s),(130023424&s)===s&&10<(t=Uc+500-Ke())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&s)!==s){td(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=so(kd.bind(null,e,$c,qc),t);break}kd(e,$c,qc);break;case 4:if(cd(e,s),(4194240&s)===s)break;for(t=e.eventTimes,o=-1;0<s;){var i=31-rt(s);r=1<<i,(i=t[i])>o&&(o=i),s&=~r}if(s=o,10<(s=(120>(s=Ke()-s)?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Ec(s/1960))-s)){e.timeoutHandle=so(kd.bind(null,e,$c,qc),s);break}kd(e,$c,qc);break;default:throw Error(a(329))}}}return od(e,Ke()),e.callbackNode===n?ad.bind(null,e):null}function rd(e,t){var n=Bc;return e.current.memoizedState.isDehydrated&&(fd(e,t).flags|=256),2!==(e=bd(e,t))&&(t=$c,$c=n,null!==t&&id(t)),e}function id(e){null===$c?$c=e:$c.push.apply($c,e)}function cd(e,t){for(t&=~zc,t&=~Mc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-rt(t),s=1<<n;e[n]=-1,t&=~s}}function dd(e){if(0!=(6&Ac))throw Error(a(327));_d();var t=pt(e,0);if(0==(1&t))return od(e,Ke()),null;var n=bd(e,t);if(0!==e.tag&&2===n){var s=gt(e);0!==s&&(t=s,n=rd(e,s))}if(1===n)throw n=Ic,fd(e,0),cd(e,t),od(e,Ke()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,kd(e,$c,qc),od(e,Ke()),null}function ld(e,t){var n=Ac;Ac|=1;try{return e(t)}finally{0===(Ac=n)&&(Gc=Ke()+500,Bo&&Go())}}function ud(e){null!==Qc&&0===Qc.tag&&0==(6&Ac)&&_d();var t=Ac;Ac|=1;var n=Tc.transition,s=vt;try{if(Tc.transition=null,vt=1,e)return e()}finally{vt=s,Tc.transition=n,0==(6&(Ac=t))&&Go()}}function pd(){Rc=Dc.current,Co(Dc)}function fd(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Pc)for(n=Pc.return;null!==n;){var s=n;switch(na(s),s.tag){case 1:null!=(s=s.type.childContextTypes)&&Do();break;case 3:ar(),Co(Lo),Co(Ao),ur();break;case 5:ir(s);break;case 4:ar();break;case 13:case 19:Co(cr);break;case 10:_a(s.type._context);break;case 22:case 23:pd()}n=n.return}if(Lc=e,Pc=e=Dd(e.current,null),Nc=Rc=t,Oc=0,Ic=null,zc=Mc=Fc=0,$c=Bc=null,null!==ja){for(t=0;t<ja.length;t++)if(null!==(s=(n=ja[t]).interleaved)){n.interleaved=null;var o=s.next,a=n.pending;if(null!==a){var r=a.next;a.next=o,s.next=r}n.pending=s}ja=null}return e}function gd(e,t){for(;;){var n=Pc;try{if(ka(),pr.current=ri,yr){for(var s=mr.memoizedState;null!==s;){var o=s.queue;null!==o&&(o.pending=null),s=s.next}yr=!1}if(gr=0,br=hr=mr=null,vr=!1,xr=0,jc.current=null,null===n||null===n.return){Oc=1,Ic=t,Pc=null;break}e:{var r=e,i=n.return,c=n,d=t;if(t=Nc,c.flags|=32768,null!==d&&"object"==typeof d&&"function"==typeof d.then){var l=d,u=c,p=u.tag;if(0==(1&u.mode)&&(0===p||11===p||15===p)){var f=u.alternate;f?(u.updateQueue=f.updateQueue,u.memoizedState=f.memoizedState,u.lanes=f.lanes):(u.updateQueue=null,u.memoizedState=null)}var g=bi(i);if(null!==g){g.flags&=-257,yi(g,i,c,0,t),1&g.mode&&hi(r,l,t),d=l;var m=(t=g).updateQueue;if(null===m){var h=new Set;h.add(d),t.updateQueue=h}else m.add(d);break e}if(0==(1&t)){hi(r,l,t),hd();break e}d=Error(a(426))}else if(aa&&1&c.mode){var b=bi(i);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),yi(b,i,c,0,t),ma(li(d,c));break e}}r=d=li(d,c),4!==Oc&&(Oc=2),null===Bc?Bc=[r]:Bc.push(r),r=i;do{switch(r.tag){case 3:r.flags|=65536,t&=-t,r.lanes|=t,Fa(r,gi(0,d,t));break e;case 1:c=d;var y=r.type,v=r.stateNode;if(0==(128&r.flags)&&("function"==typeof y.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Vc||!Vc.has(v)))){r.flags|=65536,t&=-t,r.lanes|=t,Fa(r,mi(r,c,t));break e}}r=r.return}while(null!==r)}wd(n)}catch(x){t=x,Pc===n&&null!==n&&(Pc=n=n.return);continue}break}}function md(){var e=Cc.current;return Cc.current=ri,null===e?ri:e}function hd(){0!==Oc&&3!==Oc&&2!==Oc||(Oc=4),null===Lc||0==(268435455&Fc)&&0==(268435455&Mc)||cd(Lc,Nc)}function bd(e,t){var n=Ac;Ac|=2;var s=md();for(Lc===e&&Nc===t||(qc=null,fd(e,t));;)try{yd();break}catch(o){gd(e,o)}if(ka(),Ac=n,Cc.current=s,null!==Pc)throw Error(a(261));return Lc=null,Nc=0,Oc}function yd(){for(;null!==Pc;)xd(Pc)}function vd(){for(;null!==Pc&&!Qe();)xd(Pc)}function xd(e){var t=Sc(e.alternate,e,Rc);e.memoizedProps=e.pendingProps,null===t?wd(e):Pc=t,jc.current=null}function wd(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Wi(n,t,Rc)))return void(Pc=n)}else{if(null!==(n=Qi(n,t)))return n.flags&=32767,void(Pc=n);if(null===e)return Oc=6,void(Pc=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Pc=t);Pc=t=e}while(null!==t);0===Oc&&(Oc=5)}function kd(e,t,n){var s=vt,o=Tc.transition;try{Tc.transition=null,vt=1,function(e,t,n,s){do{_d()}while(null!==Qc);if(0!=(6&Ac))throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var r=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-rt(n),a=1<<o;t[o]=0,s[o]=-1,e[o]=-1,n&=~a}}(e,r),e===Lc&&(Pc=Lc=null,Nc=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Wc||(Wc=!0,Ld(tt,(function(){return _d(),null}))),r=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||r){r=Tc.transition,Tc.transition=null;var i=vt;vt=1;var c=Ac;Ac|=4,jc.current=null,function(e,t){if(eo=qt,fs(e=ps())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var s=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(s&&0!==s.rangeCount){n=s.anchorNode;var o=s.anchorOffset,r=s.focusNode;s=s.focusOffset;try{n.nodeType,r.nodeType}catch(w){n=null;break e}var i=0,c=-1,d=-1,l=0,u=0,p=e,f=null;t:for(;;){for(var g;p!==n||0!==o&&3!==p.nodeType||(c=i+o),p!==r||0!==s&&3!==p.nodeType||(d=i+s),3===p.nodeType&&(i+=p.nodeValue.length),null!==(g=p.firstChild);)f=p,p=g;for(;;){if(p===e)break t;if(f===n&&++l===o&&(c=i),f===r&&++u===s&&(d=i),null!==(g=p.nextSibling))break;f=(p=f).parentNode}p=g}n=-1===c||-1===d?null:{start:c,end:d}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},qt=!1,Ji=t;null!==Ji;)if(e=(t=Ji).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Ji=e;else for(;null!==Ji;){t=Ji;try{var m=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var h=m.memoizedProps,b=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?h:ba(t.type,h),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var x=t.stateNode.containerInfo;1===x.nodeType?x.textContent="":9===x.nodeType&&x.documentElement&&x.removeChild(x.documentElement);break;default:throw Error(a(163))}}catch(w){Ed(t,t.return,w)}if(null!==(e=t.sibling)){e.return=t.return,Ji=e;break}Ji=t.return}m=nc,nc=!1}(e,n),bc(n,e),gs(to),qt=!!eo,to=eo=null,e.current=n,vc(n,e,o),Ye(),Ac=c,vt=i,Tc.transition=r}else e.current=n;if(Wc&&(Wc=!1,Qc=e,Yc=o),r=e.pendingLanes,0===r&&(Vc=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),od(e,Ke()),null!==t)for(s=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],s(o.value,{componentStack:o.stack,digest:o.digest});if(Hc)throw Hc=!1,e=Zc,Zc=null,e;0!=(1&Yc)&&0!==e.tag&&_d(),r=e.pendingLanes,0!=(1&r)?e===Xc?Kc++:(Kc=0,Xc=e):Kc=0,Go()}(e,t,n,s)}finally{Tc.transition=o,vt=s}return null}function _d(){if(null!==Qc){var e=xt(Yc),t=Tc.transition,n=vt;try{if(Tc.transition=null,vt=16>e?16:e,null===Qc)var s=!1;else{if(e=Qc,Qc=null,Yc=0,0!=(6&Ac))throw Error(a(331));var o=Ac;for(Ac|=4,Ji=e.current;null!==Ji;){var r=Ji,i=r.child;if(0!=(16&Ji.flags)){var c=r.deletions;if(null!==c){for(var d=0;d<c.length;d++){var l=c[d];for(Ji=l;null!==Ji;){var u=Ji;switch(u.tag){case 0:case 11:case 15:sc(8,u,r)}var p=u.child;if(null!==p)p.return=u,Ji=p;else for(;null!==Ji;){var f=(u=Ji).sibling,g=u.return;if(rc(u),u===l){Ji=null;break}if(null!==f){f.return=g,Ji=f;break}Ji=g}}}var m=r.alternate;if(null!==m){var h=m.child;if(null!==h){m.child=null;do{var b=h.sibling;h.sibling=null,h=b}while(null!==h)}}Ji=r}}if(0!=(2064&r.subtreeFlags)&&null!==i)i.return=r,Ji=i;else e:for(;null!==Ji;){if(0!=(2048&(r=Ji).flags))switch(r.tag){case 0:case 11:case 15:sc(9,r,r.return)}var y=r.sibling;if(null!==y){y.return=r.return,Ji=y;break e}Ji=r.return}}var v=e.current;for(Ji=v;null!==Ji;){var x=(i=Ji).child;if(0!=(2064&i.subtreeFlags)&&null!==x)x.return=i,Ji=x;else e:for(i=v;null!==Ji;){if(0!=(2048&(c=Ji).flags))try{switch(c.tag){case 0:case 11:case 15:oc(9,c)}}catch(k){Ed(c,c.return,k)}if(c===i){Ji=null;break e}var w=c.sibling;if(null!==w){w.return=c.return,Ji=w;break e}Ji=c.return}}if(Ac=o,Go(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(k){}s=!0}return s}finally{vt=n,Tc.transition=t}}return!1}function Sd(e,t,n){e=Oa(e,t=gi(0,t=li(n,t),1),1),t=td(),null!==e&&(bt(e,1,t),od(e,t))}function Ed(e,t,n){if(3===e.tag)Sd(e,e,n);else for(;null!==t;){if(3===t.tag){Sd(t,e,n);break}if(1===t.tag){var s=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof s.componentDidCatch&&(null===Vc||!Vc.has(s))){t=Oa(t,e=mi(t,e=li(n,e),1),1),e=td(),null!==t&&(bt(t,1,e),od(t,e));break}}t=t.return}}function Cd(e,t,n){var s=e.pingCache;null!==s&&s.delete(t),t=td(),e.pingedLanes|=e.suspendedLanes&n,Lc===e&&(Nc&n)===n&&(4===Oc||3===Oc&&(130023424&Nc)===Nc&&500>Ke()-Uc?fd(e,0):zc|=n),od(e,t)}function jd(e,t){0===t&&(0==(1&e.mode)?t=1:(t=lt,0==(130023424&(lt<<=1))&&(lt=4194304)));var n=td();null!==(e=La(e,t))&&(bt(e,t,n),od(e,n))}function Td(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),jd(e,n)}function Ad(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(a(314))}null!==s&&s.delete(t),jd(e,n)}function Ld(e,t){return Ve(e,t)}function Pd(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nd(e,t,n,s){return new Pd(e,t,n,s)}function Rd(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Dd(e,t){var n=e.alternate;return null===n?((n=Nd(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Od(e,t,n,s,o,r){var i=2;if(s=e,"function"==typeof e)Rd(e)&&(i=1);else if("string"==typeof e)i=5;else e:switch(e){case _:return Id(n.children,o,r,t);case S:i=8,o|=8;break;case E:return(e=Nd(12,n,t,2|o)).elementType=E,e.lanes=r,e;case A:return(e=Nd(13,n,t,o)).elementType=A,e.lanes=r,e;case L:return(e=Nd(19,n,t,o)).elementType=L,e.lanes=r,e;case R:return Fd(n,o,r,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:i=10;break e;case j:i=9;break e;case T:i=11;break e;case P:i=14;break e;case N:i=16,s=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Nd(i,n,t,o)).elementType=e,t.type=s,t.lanes=r,t}function Id(e,t,n,s){return(e=Nd(7,e,s,t)).lanes=n,e}function Fd(e,t,n,s){return(e=Nd(22,e,s,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Md(e,t,n){return(e=Nd(6,e,null,t)).lanes=n,e}function zd(e,t,n){return(t=Nd(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bd(e,t,n,s,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ht(0),this.expirationTimes=ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ht(0),this.identifierPrefix=s,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function $d(e,t,n,s,o,a,r,i,c){return e=new Bd(e,t,n,i,c),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Nd(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Na(a),e}function Ud(e){if(!e)return To;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ro(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Ro(n))return Io(e,n,t)}return t}function Gd(e,t,n,s,o,a,r,i,c){return(e=$d(n,s,!0,e,0,a,0,i,c)).context=Ud(null),n=e.current,(a=Da(s=td(),o=nd(n))).callback=null!=t?t:null,Oa(n,a,o),e.current.lanes=o,bt(e,o,s),od(e,s),e}function qd(e,t,n,s){var o=t.current,a=td(),r=nd(o);return n=Ud(n),null===t.context?t.context=n:t.pendingContext=n,(t=Da(a,r)).payload={element:e},null!==(s=void 0===s?null:s)&&(t.callback=s),null!==(e=Oa(o,t,r))&&(sd(e,o,r,a),Ia(e,o,r)),r}function Hd(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Zd(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vd(e,t){Zd(e,t),(e=e.alternate)&&Zd(e,t)}Sc=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Lo.current)xi=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return xi=!1,function(e,t,n){switch(t.tag){case 3:Li(t),ga();break;case 5:rr(t);break;case 1:Ro(t.type)&&Fo(t);break;case 4:or(t,t.stateNode.containerInfo);break;case 10:var s=t.type._context,o=t.memoizedProps.value;jo(ya,s._currentValue),s._currentValue=o;break;case 13:if(null!==(s=t.memoizedState))return null!==s.dehydrated?(jo(cr,1&cr.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Mi(e,t,n):(jo(cr,1&cr.current),null!==(e=Hi(e,t,n))?e.sibling:null);jo(cr,1&cr.current);break;case 19:if(s=0!=(n&t.childLanes),0!=(128&e.flags)){if(s)return Gi(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),jo(cr,cr.current),s)break;return null;case 22:case 23:return t.lanes=0,Ei(e,t,n)}return Hi(e,t,n)}(e,t,n);xi=0!=(131072&e.flags)}else xi=!1,aa&&0!=(1048576&t.flags)&&ea(t,Vo,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;qi(e,t),e=t.pendingProps;var o=No(t,Ao.current);Ea(t,n),o=Sr(null,t,s,e,o,n);var r=Er();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ro(s)?(r=!0,Fo(t)):r=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Na(t),o.updater=Ua,t.stateNode=o,o._reactInternals=t,Za(t,s,e,n),t=Ai(null,t,s,!0,r,n)):(t.tag=0,aa&&r&&ta(t),wi(null,t,o,n),t=t.child),t;case 16:s=t.elementType;e:{switch(qi(e,t),e=t.pendingProps,s=(o=s._init)(s._payload),t.type=s,o=t.tag=function(e){if("function"==typeof e)return Rd(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===P)return 14}return 2}(s),e=ba(s,e),o){case 0:t=ji(null,t,s,e,n);break e;case 1:t=Ti(null,t,s,e,n);break e;case 11:t=ki(null,t,s,e,n);break e;case 14:t=_i(null,t,s,ba(s.type,e),n);break e}throw Error(a(306,s,""))}return t;case 0:return s=t.type,o=t.pendingProps,ji(e,t,s,o=t.elementType===s?o:ba(s,o),n);case 1:return s=t.type,o=t.pendingProps,Ti(e,t,s,o=t.elementType===s?o:ba(s,o),n);case 3:e:{if(Li(t),null===e)throw Error(a(387));s=t.pendingProps,o=(r=t.memoizedState).element,Ra(e,t),Ma(t,s,null,n);var i=t.memoizedState;if(s=i.element,r.isDehydrated){if(r={element:s,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=r,t.memoizedState=r,256&t.flags){t=Pi(e,t,s,n,o=li(Error(a(423)),t));break e}if(s!==o){t=Pi(e,t,s,n,o=li(Error(a(424)),t));break e}for(oa=lo(t.stateNode.containerInfo.firstChild),sa=t,aa=!0,ra=null,n=Xa(t,null,s,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ga(),s===o){t=Hi(e,t,n);break e}wi(e,t,s,n)}t=t.child}return t;case 5:return rr(t),null===e&&la(t),s=t.type,o=t.pendingProps,r=null!==e?e.memoizedProps:null,i=o.children,no(s,o)?i=null:null!==r&&no(s,r)&&(t.flags|=32),Ci(e,t),wi(e,t,i,n),t.child;case 6:return null===e&&la(t),null;case 13:return Mi(e,t,n);case 4:return or(t,t.stateNode.containerInfo),s=t.pendingProps,null===e?t.child=Ka(t,null,s,n):wi(e,t,s,n),t.child;case 11:return s=t.type,o=t.pendingProps,ki(e,t,s,o=t.elementType===s?o:ba(s,o),n);case 7:return wi(e,t,t.pendingProps,n),t.child;case 8:case 12:return wi(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,o=t.pendingProps,r=t.memoizedProps,i=o.value,jo(ya,s._currentValue),s._currentValue=i,null!==r)if(is(r.value,i)){if(r.children===o.children&&!Lo.current){t=Hi(e,t,n);break e}}else for(null!==(r=t.child)&&(r.return=t);null!==r;){var c=r.dependencies;if(null!==c){i=r.child;for(var d=c.firstContext;null!==d;){if(d.context===s){if(1===r.tag){(d=Da(-1,n&-n)).tag=2;var l=r.updateQueue;if(null!==l){var u=(l=l.shared).pending;null===u?d.next=d:(d.next=u.next,u.next=d),l.pending=d}}r.lanes|=n,null!==(d=r.alternate)&&(d.lanes|=n),Sa(r.return,n,t),c.lanes|=n;break}d=d.next}}else if(10===r.tag)i=r.type===t.type?null:r.child;else if(18===r.tag){if(null===(i=r.return))throw Error(a(341));i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Sa(i,n,t),i=r.sibling}else i=r.child;if(null!==i)i.return=r;else for(i=r;null!==i;){if(i===t){i=null;break}if(null!==(r=i.sibling)){r.return=i.return,i=r;break}i=i.return}r=i}wi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,s=t.pendingProps.children,Ea(t,n),s=s(o=Ca(o)),t.flags|=1,wi(e,t,s,n),t.child;case 14:return o=ba(s=t.type,t.pendingProps),_i(e,t,s,o=ba(s.type,o),n);case 15:return Si(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,o=t.pendingProps,o=t.elementType===s?o:ba(s,o),qi(e,t),t.tag=1,Ro(s)?(e=!0,Fo(t)):e=!1,Ea(t,n),qa(t,s,o),Za(t,s,o,n),Ai(null,t,s,!0,e,n);case 19:return Gi(e,t,n);case 22:return Ei(e,t,n)}throw Error(a(156,t.tag))};var Wd="function"==typeof reportError?reportError:function(e){console.error(e)};function Qd(e){this._internalRoot=e}function Yd(e){this._internalRoot=e}function Kd(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xd(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jd(){}function el(e,t,n,s,o){var a=n._reactRootContainer;if(a){var r=a;if("function"==typeof o){var i=o;o=function(){var e=Hd(r);i.call(e)}}qd(t,r,e,o)}else r=function(e,t,n,s,o){if(o){if("function"==typeof s){var a=s;s=function(){var e=Hd(r);a.call(e)}}var r=Gd(t,s,e,0,null,!1,0,"",Jd);return e._reactRootContainer=r,e[mo]=r.current,Us(8===e.nodeType?e.parentNode:e),ud(),r}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof s){var i=s;s=function(){var e=Hd(c);i.call(e)}}var c=$d(e,0,!1,null,0,!1,0,"",Jd);return e._reactRootContainer=c,e[mo]=c.current,Us(8===e.nodeType?e.parentNode:e),ud((function(){qd(t,c,n,s)})),c}(n,t,e,o,s);return Hd(r)}Yd.prototype.render=Qd.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));qd(e,t,null,null)},Yd.prototype.unmount=Qd.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;ud((function(){qd(null,e,null,null)})),t[mo]=null}},Yd.prototype.unstable_scheduleHydration=function(e){if(e){var t=St();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Rt.length&&0!==t&&t<Rt[n].priority;n++);Rt.splice(n,0,e),0===n&&Ft(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ut(t.pendingLanes);0!==n&&(yt(t,1|n),od(t,Ke()),0==(6&Ac)&&(Gc=Ke()+500,Go()))}break;case 13:ud((function(){var t=La(e,1);if(null!==t){var n=td();sd(t,e,1,n)}})),Vd(e,1)}},kt=function(e){if(13===e.tag){var t=La(e,134217728);if(null!==t)sd(t,e,134217728,td());Vd(e,134217728)}},_t=function(e){if(13===e.tag){var t=nd(e),n=La(e,t);if(null!==n)sd(n,e,t,td());Vd(e,t)}},St=function(){return vt},Et=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},ke=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var s=n[t];if(s!==e&&s.form===e.form){var o=ko(s);if(!o)throw Error(a(90));V(s),X(s,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Te=ld,Ae=ud;var tl={usingClientEntryPoint:!1,Events:[xo,wo,ko,Ce,je,ld]},nl={findFiberByHostInstance:vo,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},sl={bundleType:nl.bundleType,version:nl.version,rendererPackageName:nl.rendererPackageName,rendererConfig:nl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=He(e))?null:e.stateNode},findFiberByHostInstance:nl.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ol=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ol.isDisabled&&ol.supportsFiber)try{ot=ol.inject(sl),at=ol}catch(le){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Kd(t))throw Error(a(200));return function(e,t,n){var s=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==s?null:""+s,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Kd(e))throw Error(a(299));var n=!1,s="",o=Wd;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(s=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=$d(e,1,!1,null,0,n,0,s,o),e[mo]=t.current,Us(8===e.nodeType?e.parentNode:e),new Qd(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=He(t))?null:e.stateNode},t.flushSync=function(e){return ud(e)},t.hydrate=function(e,t,n){if(!Xd(t))throw Error(a(200));return el(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Kd(e))throw Error(a(405));var s=null!=n&&n.hydratedSources||null,o=!1,r="",i=Wd;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(r=n.identifierPrefix),void 0!==n.onRecoverableError&&(i=n.onRecoverableError)),t=Gd(t,null,e,1,null!=n?n:null,o,0,r,i),e[mo]=t.current,Us(e),s)for(e=0;e<s.length;e++)o=(o=(n=s[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Yd(t)},t.render=function(e,t,n){if(!Xd(t))throw Error(a(200));return el(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xd(e))throw Error(a(40));return!!e._reactRootContainer&&(ud((function(){el(null,null,e,!1,(function(){e._reactRootContainer=null,e[mo]=null}))})),!0)},t.unstable_batchedUpdates=ld,t.unstable_renderSubtreeIntoContainer=function(e,t,n,s){if(!Xd(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return el(e,t,n,!1,s)},t.version="18.2.0-next-9e3b772b8-20220608"},20745:(e,t,n)=>{"use strict";var s=n(73935);t.createRoot=s.createRoot,t.hydrateRoot=s.hydrateRoot},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,s="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,r){if(e===r)return!0;if(e&&r&&"object"==typeof e&&"object"==typeof r){if(e.constructor!==r.constructor)return!1;var i,c,d,l;if(Array.isArray(e)){if((i=e.length)!=r.length)return!1;for(c=i;0!=c--;)if(!a(e[c],r[c]))return!1;return!0}if(n&&e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;for(l=e.entries();!(c=l.next()).done;)if(!r.has(c.value[0]))return!1;for(l=e.entries();!(c=l.next()).done;)if(!a(c.value[1],r.get(c.value[0])))return!1;return!0}if(s&&e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;for(l=e.entries();!(c=l.next()).done;)if(!r.has(c.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(r)){if((i=e.length)!=r.length)return!1;for(c=i;0!=c--;)if(e[c]!==r[c])return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof r.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof r.toString)return e.toString()===r.toString();if((i=(d=Object.keys(e)).length)!==Object.keys(r).length)return!1;for(c=i;0!=c--;)if(!Object.prototype.hasOwnProperty.call(r,d[c]))return!1;if(t&&e instanceof Element)return!1;for(c=i;0!=c--;)if(("_owner"!==d[c]&&"__v"!==d[c]&&"__o"!==d[c]||!e.$$typeof)&&!a(e[d[c]],r[d[c]]))return!1;return!0}return e!=e&&r!=r}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var s=n(67294),o=n(45697),a=n.n(o),r=n(69590),i=n.n(r),c=n(41143),d=n.n(c),l=n(96774),u=n.n(l);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,g(e,t)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function m(e,t){if(null==e)return{};var n,s,o={},a=Object.keys(e);for(s=0;s<a.length;s++)t.indexOf(n=a[s])>=0||(o[n]=e[n]);return o}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},x=Object.keys(h).map((function(e){return h[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(w).reduce((function(e,t){return e[w[t]]=t,e}),{}),_=function(e,t){for(var n=e.length-1;n>=0;n-=1){var s=e[n];if(Object.prototype.hasOwnProperty.call(s,t))return s[t]}return null},S=function(e){var t=_(e,h.TITLE),n=_(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var s=_(e,"defaultTitle");return t||s||void 0},E=function(e){return _(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},j=function(e,t){return t.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var s=Object.keys(n),o=0;o<s.length;o+=1){var a=s[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},T=function(e,t,n){var s={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),r=0;r<a.length;r+=1){var i=a[r],c=i.toLowerCase();-1===t.indexOf(c)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===c&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(i)||"innerHTML"!==i&&"cssText"!==i&&"itemprop"!==i||(n=i)}if(!n||!e[n])return!1;var d=e[n].toLowerCase();return s[n]||(s[n]={}),o[n]||(o[n]={}),!s[n][d]&&(o[n][d]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),r=0;r<a.length;r+=1){var i=a[r],c=p({},s[i],o[i]);s[i]=c}return e}),[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),s=0;s<n.length;s+=1)if(t[n[s]]&&t[n[s]].includes(e[n[s]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},R=[h.NOSCRIPT,h.SCRIPT,h.STYLE],D=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},O=function(e){return Object.keys(e).reduce((function(t,n){var s=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+s:s}),"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=w[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),s.createElement(e,a)}))},M=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=I(n,o),[s.createElement(h.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,s){var o=O(n),a=L(t);return o?"<"+e+' data-rh="true" '+o+">"+D(a,s)+"</"+e+">":"<"+e+' data-rh="true">'+D(a,s)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return O(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,s){var o=Object.keys(s).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===s[t]?t:t+'="'+D(s[t],n)+'"';return e?e+" "+o:o}),""),a=s.innerHTML||s.cssText||"",r=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(r?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,s=e.encode,o=e.htmlAttributes,a=e.noscriptTags,r=e.styleTags,i=e.title,c=void 0===i?"":i,d=e.titleAttributes,l=e.linkTags,u=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var g=function(e){var t=e.linkTags,n=e.scriptTags,s=e.encode,o=P(e.metaTags,v),a=P(t,b),r=P(n,y);return{priorityMethods:{toComponent:function(){return[].concat(F(h.META,o.priority),F(h.LINK,a.priority),F(h.SCRIPT,r.priority))},toString:function(){return M(h.META,o.priority,s)+" "+M(h.LINK,a.priority,s)+" "+M(h.SCRIPT,r.priority,s)}},metaTags:o.default,linkTags:a.default,scriptTags:r.default}}(e);f=g.priorityMethods,l=g.linkTags,u=g.metaTags,p=g.scriptTags}return{priority:f,base:M(h.BASE,t,s),bodyAttributes:M("bodyAttributes",n,s),htmlAttributes:M("htmlAttributes",o,s),link:M(h.LINK,l,s),meta:M(h.META,u,s),noscript:M(h.NOSCRIPT,a,s),script:M(h.SCRIPT,p,s),style:M(h.STYLE,r,s),title:M(h.TITLE,{title:c,titleAttributes:d},s)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=s.createContext({}),G=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),q="undefined"!=typeof document,H=function(e){function t(n){var s;return(s=e.call(this,n)||this).helmetData=new $(s.props.context,t.canUseDOM),s}return f(t,e),t.prototype.render=function(){return s.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(s.Component);H.canUseDOM=q,H.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,s=document.head||document.querySelector(h.HEAD),o=s.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),r=[];return t&&t.length&&t.forEach((function(t){var s=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?s.innerHTML=t.innerHTML:"cssText"===o?s.styleSheet?s.styleSheet.cssText=t.cssText:s.appendChild(document.createTextNode(t.cssText)):s.setAttribute(o,void 0===t[o]?"":t[o]));s.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,s.isEqualNode(e)}))?a.splice(n,1):r.push(s)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),r.forEach((function(e){return s.appendChild(e)})),{oldTags:a,newTags:r}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var s=n.getAttribute("data-rh"),o=s?s.split(","):[],a=[].concat(o),r=Object.keys(t),i=0;i<r.length;i+=1){var c=r[i],d=t[c]||"";n.getAttribute(c)!==d&&n.setAttribute(c,d),-1===o.indexOf(c)&&o.push(c);var l=a.indexOf(c);-1!==l&&a.splice(l,1)}for(var u=a.length-1;u>=0;u-=1)n.removeAttribute(a[u]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==r.join(",")&&n.setAttribute("data-rh",r.join(","))}},W=function(e,t){var n=e.baseTag,s=e.htmlAttributes,o=e.linkTags,a=e.metaTags,r=e.noscriptTags,i=e.onChangeClientState,c=e.scriptTags,d=e.styleTags,l=e.title,u=e.titleAttributes;V(h.BODY,e.bodyAttributes),V(h.HTML,s),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(h.TITLE,t)}(l,u);var p={baseTag:Z(h.BASE,n),linkTags:Z(h.LINK,o),metaTags:Z(h.META,a),noscriptTags:Z(h.NOSCRIPT,r),scriptTags:Z(h.SCRIPT,c),styleTags:Z(h.STYLE,d)},f={},g={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,s=t.oldTags;n.length&&(f[e]=n),s.length&&(g[e]=p[e].oldTags)})),t&&t(),i(e,f,g)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];return(t=e.call.apply(e,[this].concat(s))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!u()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,s=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:j(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:_(e,"defer"),encode:_(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:T(h.LINK,["rel","href"],e),metaTags:T(h.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(h.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:T(h.SCRIPT,["src","innerHTML"],e),styleTags:T(h.STYLE,["cssText"],e),title:S(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:A(e,"prioritizeSeoTags")});H.canUseDOM?(t=a,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){W(t,(function(){Q=null}))})):(W(t),Q=null)):z&&(o=z(a)),s(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(s.Component);Y.propTypes={context:G.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!i()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,s=e.arrayTypeChildren;return p({},s,((t={})[n.type]=[].concat(s[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,s=e.child,o=e.newProps,a=e.newChildProps,r=e.nestedChildren;switch(s.type){case h.TITLE:return p({},o,((t={})[s.type]=r,t.titleAttributes=p({},a),t));case h.BODY:return p({},o,{bodyAttributes:p({},a)});case h.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[s.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var s;n=p({},n,((s={})[t]=e[t],s))})),n},n.warnOnInvalidChildren=function(e,t){return d()(x.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+x.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),d()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return s.Children.forEach(e,(function(e){if(e&&e.props){var s=e.props,a=s.children,r=m(s,K),i=Object.keys(r).reduce((function(e,t){return e[k[t]||t]=r[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,a),c){case h.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:i,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:i,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,X),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof $||(a=new $(a.context,a.instances)),a?s.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):s.createElement(U.Consumer,null,(function(e){return s.createElement(Y,p({},o,{context:e}))}))},t}(s.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,s=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,r=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,d=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,u=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case s:switch(e=e.type){case l:case u:case a:case i:case r:case f:return e;default:switch(e=e&&e.$$typeof){case d:case p:case h:case m:case c:return e;default:return t}}case o:return t}}}function k(e){return w(e)===u}t.AsyncMode=l,t.ConcurrentMode=u,t.ContextConsumer=d,t.ContextProvider=c,t.Element=s,t.ForwardRef=p,t.Fragment=a,t.Lazy=h,t.Memo=m,t.Portal=o,t.Profiler=i,t.StrictMode=r,t.Suspense=f,t.isAsyncMode=function(e){return k(e)||w(e)===l},t.isConcurrentMode=k,t.isContextConsumer=function(e){return w(e)===d},t.isContextProvider=function(e){return w(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===s},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===h},t.isMemo=function(e){return w(e)===m},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===i},t.isStrictMode=function(e){return w(e)===r},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===u||e===i||e===r||e===f||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===c||e.$$typeof===d||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===x||e.$$typeof===b)},t.typeOf=w},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function s(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},r.apply(this,arguments)}var i=n(67294),c=[],d=[];var l=i.createContext(null);function u(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(s){var o=u(e[s]);o.loading?t.loading=!0:(t.loaded[s]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[s]=e})).catch((function(e){t.error=e}))}))}catch(s){t.error=s}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return i.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function g(e,t){var u,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var g=r({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),m=null;function h(){return m||(m=e(g.loader)),m.promise}return c.push(h),"function"==typeof g.webpack&&d.push((function(){if((0,g.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return h()})),p=u=function(t){function n(n){var s;return a(o(o(s=t.call(this,n)||this)),"retry",(function(){s.setState({error:null,loading:!0,timedOut:!1}),m=e(g.loader),s._loadModule()})),h(),s.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},s}s(n,t),n.preload=function(){return h()};var r=n.prototype;return r.UNSAFE_componentWillMount=function(){this._loadModule()},r.componentDidMount=function(){this._mounted=!0},r._loadModule=function(){var e=this;if(this.context&&Array.isArray(g.modules)&&g.modules.forEach((function(t){e.context.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof g.delay&&(0===g.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),g.delay)),"number"==typeof g.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),g.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},r.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},r._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},r.render=function(){return this.state.loading||this.state.error?i.createElement(g.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?g.render(this.state.loaded,this.props):null},n}(i.Component),a(u,"contextType",l),p}function m(e){return g(u,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return g(p,e)};var h=function(e){function t(){return e.apply(this,arguments)||this}return s(t,e),t.prototype.render=function(){return i.createElement(l.Provider,{value:{report:this.props.report}},i.Children.only(this.props.children))},t}(i.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}m.Capture=h,m.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){b(d).then(e,e)}))},e.exports=m},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>i,f:()=>r});var s=n(16550),o=n(83117),a=n(67294);function r(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,s.LX)(t,e):n.length?n[n.length-1].match:s.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&r(e.routes,t,n)),o})),n}function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(s.rs,n,e.map((function(e,n){return a.createElement(s.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>l,rU:()=>h});var s=n(16550),o=n(90144),a=n(67294),r=n(99318),i=n(83117),c=n(80102),d=n(38776),l=function(e){function t(){for(var t,n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];return(t=e.call.apply(e,[this].concat(s))||this).history=(0,r.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(s.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var u=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,r.ob)(e,null,null,t):e},f=function(e){return e},g=a.forwardRef;void 0===g&&(g=f);var m=g((function(e,t){var n=e.innerRef,s=e.navigate,o=e.onClick,r=(0,c.Z)(e,["innerRef","navigate","onClick"]),d=r.target,l=(0,i.Z)({},r,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||d&&"_self"!==d||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),s())}});return l.ref=f!==g&&t||n,a.createElement("a",l)}));var h=g((function(e,t){var n=e.component,o=void 0===n?m:n,l=e.replace,h=e.to,b=e.innerRef,y=(0,c.Z)(e,["component","replace","to","innerRef"]);return a.createElement(s.s6.Consumer,null,(function(e){e||(0,d.Z)(!1);var n=e.history,s=p(u(h,e.location),e.location),c=s?n.createHref(s):"",m=(0,i.Z)({},y,{href:c,navigate:function(){var t=u(h,e.location),s=(0,r.Ep)(e.location)===(0,r.Ep)(p(t));(l||s?n.replace:n.push)(t)}});return f!==g?m.ref=t||b:m.innerRef=b,a.createElement(o,m)}))})),b=function(e){return e},y=a.forwardRef;void 0===y&&(y=b);var v=y((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,r=e.activeClassName,l=void 0===r?"active":r,f=e.activeStyle,g=e.className,m=e.exact,v=e.isActive,x=e.location,w=e.sensitive,k=e.strict,_=e.style,S=e.to,E=e.innerRef,C=(0,c.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(s.s6.Consumer,null,(function(e){e||(0,d.Z)(!1);var n=x||e.location,r=p(u(S,n),n),c=r.pathname,j=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=j?(0,s.LX)(n.pathname,{path:j,exact:m,sensitive:w,strict:k}):null,A=!!(v?v(T,n):T),L="function"==typeof g?g(A):g,P="function"==typeof _?_(A):_;A&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,l),P=(0,i.Z)({},P,f));var N=(0,i.Z)({"aria-current":A&&o||null,className:L,style:P,to:r},C);return b!==y?N.ref=t||E:N.innerRef=E,a.createElement(h,N)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>S,F0:()=>v,LX:()=>_,TH:()=>R,k6:()=>N,rs:()=>L,s6:()=>y});var s=n(90144),o=n(67294),a=n(45697),r=n.n(a),i=n(99318),c=n(38776),d=n(83117),l=n(39658),u=n.n(l),p=(n(59864),n(80102)),f=(n(8679),1073741823),g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=o.createContext||function(e,t){var n,a,i="__create-react-context-"+function(){var e="__global_unique_id__";return g[e]=(g[e]||0)+1}()+"__",c=function(e){function n(){for(var t,n,s,o=arguments.length,a=new Array(o),r=0;r<o;r++)a[r]=arguments[r];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,s=[],{on:function(e){s.push(e)},off:function(e){s=s.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,s.forEach((function(e){return e(n,t)}))}}),t}(0,s.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,s=this.props.value,o=e.value;((a=s)===(r=o)?0!==a||1/a==1/r:a!=a&&r!=r)?n=0:(n="function"==typeof t?t(s,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,r},o.render=function(){return this.props.children},n}(o.Component);c.childContextTypes=((n={})[i]=r().object.isRequired,n);var d=function(t){function n(){for(var e,n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];return(e=t.call.apply(t,[this].concat(s))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,s.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},o.getValue=function(){return this.context[i]?this.context[i].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return d.contextTypes=((a={})[i]=r().object,a),{Provider:c,Consumer:d}},h=function(e){var t=m();return t.displayName=e,t},b=h("Router-History"),y=h("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,s.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var x={},w=1e4,k=0;function _(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,s=n.path,o=n.exact,a=void 0!==o&&o,r=n.strict,i=void 0!==r&&r,c=n.sensitive,d=void 0!==c&&c;return[].concat(s).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var s=function(e,t){var n=""+t.end+t.strict+t.sensitive,s=x[n]||(x[n]={});if(s[e])return s[e];var o=[],a={regexp:u()(e,o,t),keys:o};return k<w&&(s[e]=a,k++),a}(n,{end:a,strict:i,sensitive:d}),o=s.regexp,r=s.keys,c=o.exec(e);if(!c)return null;var l=c[0],p=c.slice(1),f=e===l;return a&&!f?null:{path:n,url:"/"===n&&""===l?"/":l,isExact:f,params:r.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var S=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(y.Consumer,null,(function(t){t||(0,c.Z)(!1);var n=e.props.location||t.location,s=e.props.computedMatch?e.props.computedMatch:e.props.path?_(n.pathname,e.props):t.match,a=(0,d.Z)({},t,{location:n,match:s}),r=e.props,i=r.children,l=r.component,u=r.render;return Array.isArray(i)&&function(e){return 0===o.Children.count(e)}(i)&&(i=null),o.createElement(y.Provider,{value:a},a.match?i?"function"==typeof i?i(a):i:l?o.createElement(l,a):u?u(a):null:"function"==typeof i?i(a):null)}))},t}(o.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,d.Z)({},t,{pathname:t.pathname.substr(n.length)})}function j(e){return"string"==typeof e?e:(0,i.Ep)(e)}function T(e){return function(){(0,c.Z)(!1)}}function A(){}o.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(y.Consumer,null,(function(t){t||(0,c.Z)(!1);var n,s,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==s&&o.isValidElement(e)){n=e;var r=e.props.path||e.props.from;s=r?_(a.pathname,(0,d.Z)({},e.props,{path:r})):t.match}})),s?o.cloneElement(n,{location:a,computedMatch:s}):null}))},t}(o.Component);var P=o.useContext;function N(){return P(b)}function R(){return P(y).location}},39658:(e,t,n)=>{var s=n(5826);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return i(a(e,t),t)},e.exports.tokensToFunction=i,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,s=[],a=0,r=0,i="",l=t&&t.delimiter||"/";null!=(n=o.exec(e));){var u=n[0],p=n[1],f=n.index;if(i+=e.slice(r,f),r=f+u.length,p)i+=p[1];else{var g=e[r],m=n[2],h=n[3],b=n[4],y=n[5],v=n[6],x=n[7];i&&(s.push(i),i="");var w=null!=m&&null!=g&&g!==m,k="+"===v||"*"===v,_="?"===v||"*"===v,S=n[2]||l,E=b||y;s.push({name:h||a++,prefix:m||"",delimiter:S,optional:_,repeat:k,partial:w,asterisk:!!x,pattern:E?d(E):x?".*":"[^"+c(S)+"]+?"})}}return r<e.length&&(i+=e.substr(r)),i&&s.push(i),s}function r(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function i(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",u(t)));return function(t,o){for(var a="",i=t||{},c=(o||{}).pretty?r:encodeURIComponent,d=0;d<e.length;d++){var l=e[d];if("string"!=typeof l){var u,p=i[l.name];if(null==p){if(l.optional){l.partial&&(a+=l.prefix);continue}throw new TypeError('Expected "'+l.name+'" to be defined')}if(s(p)){if(!l.repeat)throw new TypeError('Expected "'+l.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(l.optional)continue;throw new TypeError('Expected "'+l.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(u=c(p[f]),!n[d].test(u))throw new TypeError('Expected all "'+l.name+'" to match "'+l.pattern+'", but received `'+JSON.stringify(u)+"`");a+=(0===f?l.prefix:l.delimiter)+u}}else{if(u=l.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(p),!n[d].test(u))throw new TypeError('Expected "'+l.name+'" to match "'+l.pattern+'", but received "'+u+'"');a+=l.prefix+u}}else a+=l}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function d(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function l(e,t){return e.keys=t,e}function u(e){return e&&e.sensitive?"":"i"}function p(e,t,n){s(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,r="",i=0;i<e.length;i++){var d=e[i];if("string"==typeof d)r+=c(d);else{var p=c(d.prefix),f="(?:"+d.pattern+")";t.push(d),d.repeat&&(f+="(?:"+p+f+")*"),r+=f=d.optional?d.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var g=c(n.delimiter||"/"),m=r.slice(-g.length)===g;return o||(r=(m?r.slice(0,-g.length):r)+"(?:"+g+"(?=$))?"),r+=a?"$":o&&m?"":"(?="+g+"|$)",l(new RegExp("^"+r,u(n)),t)}function f(e,t,n){return s(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var s=0;s<n.length;s++)t.push({name:s,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return l(e,t)}(e,t):s(e)?function(e,t,n){for(var s=[],o=0;o<e.length;o++)s.push(f(e[o],t,n).source);return l(new RegExp("(?:"+s.join("|")+")",u(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},75251:(e,t,n)=>{"use strict";var s=n(67294),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,i=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function d(e,t,n){var s,a={},d=null,l=null;for(s in void 0!==n&&(d=""+n),void 0!==t.key&&(d=""+t.key),void 0!==t.ref&&(l=t.ref),t)r.call(t,s)&&!c.hasOwnProperty(s)&&(a[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===a[s]&&(a[s]=t[s]);return{$$typeof:o,type:e,key:d,ref:l,props:a,_owner:i.current}}t.Fragment=a,t.jsx=d,t.jsxs=d},72408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),s=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||g}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||g}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var x=v.prototype=new y;x.constructor=v,m(x,b.prototype),x.isPureReactComponent=!0;var w=Array.isArray,k=Object.prototype.hasOwnProperty,_={current:null},S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,s){var o,a={},r=null,i=null;if(null!=t)for(o in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(r=""+t.key),t)k.call(t,o)&&!S.hasOwnProperty(o)&&(a[o]=t[o]);var c=arguments.length-2;if(1===c)a.children=s;else if(1<c){for(var d=Array(c),l=0;l<c;l++)d[l]=arguments[l+2];a.children=d}if(e&&e.defaultProps)for(o in c=e.defaultProps)void 0===a[o]&&(a[o]=c[o]);return{$$typeof:n,type:e,key:r,ref:i,props:a,_owner:_.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var j=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function A(e,t,o,a,r){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var c=!1;if(null===e)c=!0;else switch(i){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case n:case s:c=!0}}if(c)return r=r(c=e),e=""===a?"."+T(c,0):a,w(r)?(o="",null!=e&&(o=e.replace(j,"$&/")+"/"),A(r,t,o,"",(function(e){return e}))):null!=r&&(C(r)&&(r=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(r,o+(!r.key||c&&c.key===r.key?"":(""+r.key).replace(j,"$&/")+"/")+e)),t.push(r)),1;if(c=0,a=""===a?".":a+":",w(e))for(var d=0;d<e.length;d++){var l=a+T(i=e[d],d);c+=A(i,t,o,l,r)}else if(l=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof l)for(e=l.call(e),d=0;!(i=e.next()).done;)c+=A(i=i.value,t,o,l=a+T(i,d++),r);else if("object"===i)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function L(e,t,n){if(null==e)return e;var s=[],o=0;return A(e,s,"","",(function(e){return t.call(n,e,o++)})),s}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},R={transition:null},D={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:R,ReactCurrentOwner:_};t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=r,t.PureComponent=v,t.StrictMode=a,t.Suspense=l,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,t.cloneElement=function(e,t,s){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=m({},e.props),a=e.key,r=e.ref,i=e._owner;if(null!=t){if(void 0!==t.ref&&(r=t.ref,i=_.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(d in t)k.call(t,d)&&!S.hasOwnProperty(d)&&(o[d]=void 0===t[d]&&void 0!==c?c[d]:t[d])}var d=arguments.length-2;if(1===d)o.children=s;else if(1<d){c=Array(d);for(var l=0;l<d;l++)c[l]=arguments[l+2];o.children=c}return{$$typeof:n,type:e.type,key:a,ref:r,props:o,_owner:i}},t.createContext=function(e){return(e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:d,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return N.current.useCallback(e,t)},t.useContext=function(e){return N.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return N.current.useDeferredValue(e)},t.useEffect=function(e,t){return N.current.useEffect(e,t)},t.useId=function(){return N.current.useId()},t.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return N.current.useMemo(e,t)},t.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},t.useRef=function(e){return N.current.useRef(e)},t.useState=function(e){return N.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return N.current.useTransition()},t.version="18.2.0"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},85893:(e,t,n)=>{"use strict";e.exports=n(75251)},60053:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var s=n-1>>>1,o=e[s];if(!(0<a(o,t)))break e;e[s]=t,e[n]=o,n=s}}function s(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var s=0,o=e.length,r=o>>>1;s<r;){var i=2*(s+1)-1,c=e[i],d=i+1,l=e[d];if(0>a(c,n))d<o&&0>a(l,c)?(e[s]=l,e[d]=n,s=d):(e[s]=c,e[i]=n,s=i);else{if(!(d<o&&0>a(l,n)))break e;e[s]=l,e[d]=n,s=d}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var r=performance;t.unstable_now=function(){return r.now()}}else{var i=Date,c=i.now();t.unstable_now=function(){return i.now()-c}}var d=[],l=[],u=1,p=null,f=3,g=!1,m=!1,h=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=s(l);null!==t;){if(null===t.callback)o(l);else{if(!(t.startTime<=e))break;o(l),t.sortIndex=t.expirationTime,n(d,t)}t=s(l)}}function w(e){if(h=!1,x(e),!m)if(null!==s(d))m=!0,R(k);else{var t=s(l);null!==t&&D(w,t.startTime-e)}}function k(e,n){m=!1,h&&(h=!1,y(C),C=-1),g=!0;var a=f;try{for(x(n),p=s(d);null!==p&&(!(p.expirationTime>n)||e&&!A());){var r=p.callback;if("function"==typeof r){p.callback=null,f=p.priorityLevel;var i=r(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof i?p.callback=i:p===s(d)&&o(d),x(n)}else o(d);p=s(d)}if(null!==p)var c=!0;else{var u=s(l);null!==u&&D(w,u.startTime-n),c=!1}return c}finally{p=null,f=a,g=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,S=!1,E=null,C=-1,j=5,T=-1;function A(){return!(t.unstable_now()-T<j)}function L(){if(null!==E){var e=t.unstable_now();T=e;var n=!0;try{n=E(!0,e)}finally{n?_():(S=!1,E=null)}}else S=!1}if("function"==typeof v)_=function(){v(L)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,N=P.port2;P.port1.onmessage=L,_=function(){N.postMessage(null)}}else _=function(){b(L,0)};function R(e){E=e,S||(S=!0,_())}function D(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||g||(m=!0,R(k))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):j=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return s(d)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,o,a){var r=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?r+a:r:a=r,e){case 1:var i=-1;break;case 2:i=250;break;case 5:i=1073741823;break;case 4:i=1e4;break;default:i=5e3}return e={id:u++,callback:o,priorityLevel:e,startTime:a,expirationTime:i=a+i,sortIndex:-1},a>r?(e.sortIndex=a,n(l,e),null===s(d)&&e===s(l)&&(h?(y(C),C=-1):h=!0,D(w,a-r))):(e.sortIndex=i,n(d,e),m||g||(m=!0,R(k))),e},t.unstable_shouldYield=A,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},96774:e=>{e.exports=function(e,t,n,s){var o=n?n.call(s,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var d=a[c];if(!i(d))return!1;var l=e[d],u=t[d];if(!1===(o=n?n.call(s,l,u,d):void 0)||void 0===o&&l!==u)return!1}return!0}},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});const s={title:"GSoC projects at FOSSology",tagline:"Updates about activities done by Google Summer of Code students at FOSSology.",url:"https://fossology.github.io",baseUrl:"/gsoc/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",onBrokenAnchors:"throw",favicon:"img/favicon.ico",organizationName:"fossology",projectName:"gsoc",themeConfig:{navbar:{title:"Home",logo:{alt:"Home",src:"img/logo.png"},items:[{label:"Contributor Guidelines",position:"left",to:"/docs/guidelines/"},{label:"2021",position:"left",to:"/docs/2021/",items:[{label:"New build system",to:"/docs/2021/buildsystem/"},{label:"Copyrights false positive detection",to:"/docs/2021/copyrights/"},{label:"Microservice architecture",to:"/docs/2021/microservice/"},{label:"Minerva",to:"/docs/2021/minerva/"},{label:"ScanCode Integration",to:"/docs/2021/scancode/"},{label:"React UI",to:"/docs/2021/ui/"}]},{label:"2022",position:"left",to:"/docs/2022/",items:[{label:"Atarashi",to:"/docs/2022/atarashi/"},{label:"Concept of project",to:"/docs/2022/project/"},{label:"REUSE",to:"/docs/2022/reuse/"},{label:"Spasht",to:"/docs/2022/spasht/"},{label:"React UI",to:"/docs/2022/ui/"}]},{label:"2023",position:"left",to:"/docs/2023/",items:[{label:"Reducing False positive copyrights",to:"/docs/2023/copyrights"},{label:"REST API improvements",to:"/docs/2023/rest"},{label:"License as a service",to:"/docs/2023/laas"},{label:"Support CycloneDX report",to:"/docs/2023/cyclonedx"}]},{label:"2024",position:"left",to:"/docs/2024/",items:[{label:"Idea list",to:"/docs/2024/GSoC-projects"},{label:"Scheduler Overhaul",to:"/docs/2024/scheduler"},{label:"AI Powered License Detection",to:"/docs/2024/license-detection"},{label:"SPDX 3.0 Support",to:"/docs/2024/spdx30"},{label:"SPDX License Expression Support",to:"/docs/2024/spdx-expression"},{label:"REST API improvements",to:"/docs/2024/rest"},{label:"CI Scanner Improvements",to:"/docs/2024/ci-scanner"},{label:"Data Pipeline",to:"/docs/2024/pipeline"},{label:"Text Phrases",to:"/docs/2024/text-phrases"}]},{href:"https://github.com/fossology/fossology",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Community",items:[{label:"GitHub",href:"https://github.com/fossology"},{label:"Slack",href:"https://fossology.slack.com/"},{label:"Main home page",href:"https://www.fossology.org/"}]},{title:"More",items:[{label:"YouTube",href:"https://www.youtube.com/@fossology"},{label:"Installing FOSSology",href:"https://github.com/fossology/fossology/wiki/Install-from-Source"},{label:"Getting started",href:"https://github.com/fossology/fossology/wiki/New-at-FOSSology,-You-Could-..."}]}],copyright:"Copyright \xa9 2021 - 2024 FOSSology project. Built with Docusaurus."},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},image:"img/logo.png",docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],prism:{additionalLanguages:[],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/home/runner/work/gsoc/gsoc/sidebars.js",editUrl:"https://github.com/fossology/gsoc/edit/main/"},blog:{showReadingTime:!0,editUrl:"https://github.com/fossology/gsoc/edit/main/"},theme:{customCss:["/home/runner/work/gsoc/gsoc/src/css/custom.css"]}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},83117:(e,t,n)=>{"use strict";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},s.apply(this,arguments)}n.d(t,{Z:()=>s})},90144:(e,t,n)=>{"use strict";function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}n.d(t,{Z:()=>o})},80102:(e,t,n)=>{"use strict";function s(e,t){if(null==e)return{};var n,s,o={},a=Object.keys(e);for(s=0;s<a.length;s++)n=a[s],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>s})},36905:(e,t,n)=>{"use strict";function s(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=s(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{Z:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=s(e))&&(o&&(o+=" "),o+=t);return o}},788:(e,t,n)=>{"use strict";function s(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=s(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{Z:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=s(e))&&(o&&(o+=" "),o+=t);return o}},14965:(e,t,n)=>{"use strict";n.d(t,{y$:()=>J,p1:()=>C});var s=n(67294);function o(e){var t,n,s="";if("string"==typeof e||"number"==typeof e)s+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=o(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}const a=function(){for(var e,t,n=0,s="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=o(e))&&(s&&(s+=" "),s+=t);return s};var r,i,c,d,l,u=Object.create,p=Object.defineProperty,f=Object.defineProperties,g=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,y=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,w=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&w(e,n,t[n]);if(b)for(var n of b(t))x.call(t,n)&&w(e,n,t[n]);return e},_=(e,t)=>f(e,m(t)),S=(e,t)=>{var n={};for(var s in e)v.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&b)for(var s of b(e))t.indexOf(s)<0&&x.call(e,s)&&(n[s]=e[s]);return n},E=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},s={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},s.util.type(t)){case"Object":if(a=s.util.objId(t),n[a])return n[a];for(var r in o={},n[a]=o,t)t.hasOwnProperty(r)&&(o[r]=e(t[r],n));return o;case"Array":return a=s.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,s){o[s]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var s="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(s))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=s.util.clone(s.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||s.languages)[e],r={};for(var i in a)if(a.hasOwnProperty(i)){if(i==t)for(var c in n)n.hasOwnProperty(c)&&(r[c]=n[c]);n.hasOwnProperty(i)||(r[i]=a[i])}var d=o[e];return o[e]=r,s.languages.DFS(s.languages,(function(t,n){n===d&&t!=e&&(this[t]=r)})),r},DFS:function e(t,n,o,a){a=a||{};var r=s.util.objId;for(var i in t)if(t.hasOwnProperty(i)){n.call(t,i,t[i],o||i);var c=t[i],d=s.util.type(c);"Object"!==d||a[r(c)]?"Array"!==d||a[r(c)]||(a[r(c)]=!0,e(c,n,i,a)):(a[r(c)]=!0,e(c,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};if(s.hooks.run("before-tokenize",a),!a.grammar)throw new Error('The language "'+a.language+'" has no grammar.');return a.tokens=s.tokenize(a.code,a.grammar),s.hooks.run("after-tokenize",a),o.stringify(s.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var s in n)t[s]=n[s];delete t.rest}var o=new i;return c(o,o.head,e),r(e,o,t,o.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=s.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=s.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,s){this.type=e,this.content=t,this.alias=n,this.length=0|(s||"").length}function a(e,t,n,s){e.lastIndex=t;var o=e.exec(n);if(o&&s&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function r(e,t,n,i,l,u){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var g=0;g<f.length;++g){if(u&&u.cause==p+","+g)return;var m=f[g],h=m.inside,b=!!m.lookbehind,y=!!m.greedy,v=m.alias;if(y&&!m.pattern.global){var x=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,x+"g")}for(var w=m.pattern||m,k=i.next,_=l;k!==t.tail&&!(u&&_>=u.reach);_+=k.value.length,k=k.next){var S=k.value;if(t.length>e.length)return;if(!(S instanceof o)){var E,C=1;if(y){if(!(E=a(w,_,e,b))||E.index>=e.length)break;var j=E.index,T=E.index+E[0].length,A=_;for(A+=k.value.length;j>=A;)A+=(k=k.next).value.length;if(_=A-=k.value.length,k.value instanceof o)continue;for(var L=k;L!==t.tail&&(A<T||"string"==typeof L.value);L=L.next)C++,A+=L.value.length;C--,S=e.slice(_,A),E.index-=_}else if(!(E=a(w,0,S,b)))continue;j=E.index;var P=E[0],N=S.slice(0,j),R=S.slice(j+P.length),D=_+S.length;u&&D>u.reach&&(u.reach=D);var O=k.prev;if(N&&(O=c(t,O,N),_+=N.length),d(t,O,C),k=c(t,O,new o(p,h?s.tokenize(P,h):P,v,P)),R&&c(t,k,R),C>1){var I={cause:p+","+g,reach:D};r(e,t,n,k.prev,_,I),u&&I.reach>u.reach&&(u.reach=I.reach)}}}}}}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var s=t.next,o={value:n,prev:t,next:s};return t.next=o,s.prev=o,e.length++,o}function d(e,t,n){for(var s=t.next,o=0;o<n&&s!==e.tail;o++)s=s.next;t.next=s,s.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},r=t.alias;r&&(Array.isArray(r)?Array.prototype.push.apply(a.classes,r):a.classes.push(r)),s.hooks.run("wrap",a);var i="";for(var c in a.attributes)i+=" "+c+'="'+(a.attributes[c]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+i+">"+a.content+"</"+a.tag+">"},s}();t.exports=n,n.default=n}},function(){return i||(0,r[h(r)[0]])((i={exports:{}}).exports,i),i.exports}),C=((e,t,n)=>(n=null!=e?u(y(e)):{},((e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of h(t))v.call(e,o)||o===n||p(e,o,{get:()=>t[o],enumerable:!(s=g(t,o))||s.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(E());C.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},C.languages.markup.tag.inside["attr-value"].inside.entity=C.languages.markup.entity,C.languages.markup.doctype.inside["internal-subset"].inside=C.languages.markup,C.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(C.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:C.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:C.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},C.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(C.languages.markup.tag,"addAttribute",{value:function(e,t){C.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:C.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),C.languages.html=C.languages.markup,C.languages.mathml=C.languages.markup,C.languages.svg=C.languages.markup,C.languages.xml=C.languages.extend("markup",{}),C.languages.ssml=C.languages.xml,C.languages.atom=C.languages.xml,C.languages.rss=C.languages.xml,function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,s="(?:[^\\\\-]|"+n.source+")",o=(s=RegExp(s+"-"+s),{pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"});e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":o}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":o}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(C),C.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},C.languages.javascript=C.languages.extend("clike",{"class-name":[C.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),C.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,C.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:C.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:C.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:C.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:C.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:C.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),C.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:C.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),C.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),C.languages.markup&&(C.languages.markup.tag.addInlined("script","javascript"),C.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),C.languages.js=C.languages.javascript,C.languages.actionscript=C.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),C.languages.actionscript["class-name"].alias="function",delete C.languages.actionscript.parameter,delete C.languages.actionscript["literal-property"],C.languages.markup&&C.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:C.languages.markup}}),d=/#(?!\{).+/,l={pattern:/#\{[^}]+\}/,alias:"variable"},(c=C).languages.coffeescript=c.languages.extend("javascript",{comment:d,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:l}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),c.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:d,interpolation:l}}}),c.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:c.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:l}}]}),c.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete c.languages.coffeescript["template-string"],c.languages.coffee=c.languages.coffeescript,function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var s=function(e){e.inside||(e.inside={}),e.inside.rest=n},o="doc-comment";if(a=e.languages[t]){var a,r=a[o];if((r=r||(a=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[o])instanceof RegExp&&(r=a[o]={pattern:r}),Array.isArray(r))for(var i=0,c=r.length;i<c;i++)r[i]instanceof RegExp&&(r[i]={pattern:r[i]}),s(r[i]);else s(r)}}))}}),t.addSupport(["java","javascript","php"],t)}(C),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(C),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(C),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,s="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function r(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return s})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return s}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return s})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:r(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:r(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:r(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:r(a),lookbehind:!0,greedy:!0},number:{pattern:r(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(C),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var s=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return s})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,r=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(s),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(s),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,s=t.length;n<s;n++){var o,a=t[n];"code"!==a.type?e(a.content):(o=a.content[1],a=a.content[3],o&&a&&"code-language"===o.type&&"code-block"===a.type&&"string"==typeof o.content&&(o=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),o="language-"+(o=(/[a-z][\w-]*/i.exec(o)||[""])[0].toLowerCase()),a.alias?"string"==typeof a.alias?a.alias=[a.alias,o]:a.alias.push(o):a.alias=[o]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",s=0,o=t.classes.length;s<o;s++){var a=t.classes[s];if(a=/language-(.+)/.exec(a)){n=a[1];break}}var d,l=e.languages[n];l?t.content=e.highlight(t.content.replace(r,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),c(n)):i[t]||e})),l,n):n&&"none"!==n&&e.plugins.autoloader&&(d="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=d,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(d);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),i={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(C),C.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:C.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},C.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var s=t[n++];if("keyword"===s.type&&"mutation"===s.content){var o=[];if(u(["definition-mutation","punctuation"])&&"("===l(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var r=l(0);"variable"===r.type&&(f(r,"variable-input"),o.push(r.content))}n=a+1}if(u(["punctuation","property-query"])&&"{"===l(0).content&&(n++,f(l(0),"property-mutation"),0<o.length)){var i=p(/^\{$/,/^\}$/);if(-1!==i)for(var c=n;c<i;c++){var d=t[c];"variable"===d.type&&0<=o.indexOf(d.content)&&f(d,"variable-input")}}}}function l(e){return t[n+e]}function u(e,t){t=t||0;for(var n=0;n<e.length;n++){var s=l(n+t);if(!s||s.type!==e[n])return}return 1}function p(e,s){for(var o=1,a=n;a<t.length;a++){var r=t[a],i=r.content;if("punctuation"===r.type&&"string"==typeof i)if(e.test(i))o++;else if(s.test(i)&&0==--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),C.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,s=t.inside.interpolation,o=s.inside["interpolation-punctuation"],a=s.pattern.source;function r(t,s){if(e.languages[t])return{pattern:RegExp("((?:"+s+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function i(t,n,s){return t={code:t,grammar:n,language:s},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function c(t,n,r){var c=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),d=0,l={},u=(c=i(c.map((function(e){if("string"==typeof e)return e;var n,s;for(e=e.content;-1!==t.indexOf((s=d++,n="___"+r.toUpperCase()+"_"+s+"___")););return l[n]=e,n})).join(""),n,r),Object.keys(l));return d=0,function t(n){for(var a=0;a<n.length;a++){if(d>=u.length)return;var r,c,p,f,g,m,h,b=n[a];"string"==typeof b||"string"==typeof b.content?(r=u[d],-1!==(h=(m="string"==typeof b?b:b.content).indexOf(r))&&(++d,c=m.substring(0,h),g=l[r],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(g,f)).length&&((p=[1,1]).push.apply(p,i(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,s.alias,g),f=m.substring(h+r.length),g=[],c&&g.push(c),g.push(p),f&&(t(m=[f]),g.push.apply(g,m)),"string"==typeof b?(n.splice.apply(n,[a,1].concat(g)),a+=g.length-1):b.content=g)):(h=b.content,Array.isArray(h)?t(h):t([h]))}}(c),new e.Token(r,c,"language-"+r,t)}e.languages.javascript["template-string"]=[r("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),r("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),r("svg",/\bsvg/.source),r("markdown",/\b(?:markdown|md)/.source),r("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),r("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function l(e){return"string"==typeof e?e:Array.isArray(e)?e.map(l).join(""):l(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var s=0,o=n.length;s<o;s++){var a,r,i,d=n[s];"string"!=typeof d&&(a=d.content,Array.isArray(a)?"template-string"===d.type?(d=a[1],3===a.length&&"string"!=typeof d&&"embedded-code"===d.type&&(r=l(d),d=d.alias,d=Array.isArray(d)?d[0]:d,i=e.languages[d])&&(a[1]=c(r,i,d))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)}))}(C),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(C),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,s="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(s+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(s+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(C),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(C),C.languages.n4js=C.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),C.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),C.languages.n4jsd=C.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],s=0;s<n.length;s++){var o=n[s],a=e.languages.javascript[o];o=(a="RegExp"===e.util.type(a)?e.languages.javascript[o]={pattern:a}:a).inside||{};(a.inside=o)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(C),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,s=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return s})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}function r(t){for(var n=[],s=0;s<t.length;s++){var o=t[s],a=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&0<n.length&&0===n[n.length-1].openedBraces&&(a=i(o),s<t.length-1&&("string"==typeof t[s+1]||"plain-text"===t[s+1].type)&&(a+=i(t[s+1]),t.splice(s+1,1)),0<s&&("string"==typeof t[s-1]||"plain-text"===t[s-1].type)&&(a=i(t[s-1])+a,t.splice(s-1,1),s--),t[s]=new e.Token("plain-text",a,null,a)),o.content&&"string"!=typeof o.content&&r(o.content)}}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||r(e.tokens)}))}(C),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(C),C.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},C.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=C.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(C),C.languages.c=C.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),C.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),C.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},C.languages.c.string],char:C.languages.c.char,comment:C.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:C.languages.c}}}}),C.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete C.languages.c.boolean,C.languages.objectivec=C.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete C.languages.objectivec["class-name"],C.languages.objc=C.languages.objectivec,C.languages.reason=C.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),C.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete C.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(C),C.languages.go=C.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),C.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete C.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(C),C.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},C.languages.python["string-interpolation"].inside.interpolation.inside.rest=C.languages.python,C.languages.py=C.languages.python;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>j,duotoneDark:()=>T,duotoneLight:()=>A,github:()=>L,jettwaveDark:()=>G,jettwaveLight:()=>q,nightOwl:()=>P,nightOwlLight:()=>N,oceanicNext:()=>O,okaidia:()=>I,oneDark:()=>H,oneLight:()=>Z,palenight:()=>F,shadesOfPurple:()=>M,synthwave84:()=>z,ultramin:()=>B,vsDark:()=>$,vsLight:()=>U});var j={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},T={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},A={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},L={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},P={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},N={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},R="#c5a5c5",D="#8dc891",O={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:R}},{types:["attr-value"],style:{color:D}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:D}},{types:["punctuation"],style:{color:D}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:R}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},I={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},M={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},z={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},B={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},$={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},U={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},G={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},q={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},Z={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},V=(e,t)=>{const{plain:n}=e,s=e.styles.reduce(((e,n)=>{const{languages:s,style:o}=n;return s&&!s.includes(t)||n.types.forEach((t=>{const n=k(k({},e[t]),o);e[t]=n})),e}),{});return s.root=n,s.plain=_(k({},n),{backgroundColor:void 0}),s},W=/\r\n|\r|\n/,Q=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Y=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},K=e=>{const t=[[]],n=[e],s=[0],o=[e.length];let a=0,r=0,i=[];const c=[i];for(;r>-1;){for(;(a=s[r]++)<o[r];){let e,d=t[r];const l=n[r][a];if("string"==typeof l?(d=r>0?d:["plain"],e=l):(d=Y(d,l.type),l.alias&&(d=Y(d,l.alias)),e=l.content),"string"!=typeof e){r++,t.push(d),n.push(e),s.push(0),o.push(e.length);continue}const u=e.split(W),p=u.length;i.push({types:d,content:u[0]});for(let t=1;t<p;t++)Q(i),c.push(i=[]),i.push({types:d,content:u[t]})}r--,t.pop(),n.pop(),s.pop(),o.pop()}return Q(i),c},X=({children:e,language:t,code:n,theme:o,prism:r})=>{const i=t.toLowerCase(),c=((e,t)=>{const[n,o]=(0,s.useState)(V(t,e)),a=(0,s.useRef)(),r=(0,s.useRef)();return(0,s.useEffect)((()=>{t===a.current&&e===r.current||(a.current=t,r.current=e,o(V(t,e)))}),[e,t]),n})(i,o),d=(e=>(0,s.useCallback)((t=>{var n=t,{className:s,style:o,line:r}=n,i=S(n,["className","style","line"]);const c=_(k({},i),{className:a("token-line",s)});return"object"==typeof e&&"plain"in e&&(c.style=e.plain),"object"==typeof o&&(c.style=k(k({},c.style||{}),o)),c}),[e]))(c),l=(e=>{const t=(0,s.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,s.useCallback)((e=>{var n=e,{token:s,className:o,style:r}=n,i=S(n,["token","className","style"]);const c=_(k({},i),{className:a("token",...s.types,o),children:s.content,style:t(s)});return null!=r&&(c.style=k(k({},c.style||{}),r)),c}),[t])})(c),u=(({prism:e,code:t,grammar:n,language:o})=>{const a=(0,s.useRef)(e);return(0,s.useMemo)((()=>{if(null==n)return K([t]);const e={code:t,grammar:n,language:o,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),K(e.tokens)}),[t,n,o])})({prism:r,language:i,code:n,grammar:r.languages[i]});return e({tokens:u,className:`prism-code language-${i}`,style:null!=c?c.root:{},getLineProps:d,getTokenProps:l})},J=e=>(0,s.createElement)(X,_(k({},e),{prism:e.prism||C,theme:e.theme||$,code:e.code,language:e.language}))},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var s=!0,o="Invariant failed";function a(e,t){if(!e){if(s)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/gsoc/blog-8ba":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe9cdef2"}],"__props":"1007bf61"},"/gsoc/blog/archive-156":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"46d3cdc1"},"/gsoc/blog/cmake-cweek3-f9f":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"bacc57da"},"/gsoc/blog/tags-940":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"05f52370"},"/gsoc/blog/tags/cmake-3b7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe9cdef2"}],"__props":"d6a7f907"},"/gsoc/blog/tags/coding-week-07c":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fe9cdef2"}],"__props":"06949c14"},"/gsoc/docs-940":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/gsoc/docs-260":{"__comp":"a7bd4aaa","__props":"0d837118"},"/gsoc/docs/tags-fb5":{"__comp":"3720c009","__props":"9dda5328"},"/gsoc/docs/tags/api-4a2":{"__comp":"df203c0f","__props":"c0952c37"},"/gsoc/docs/tags/atarashi-b22":{"__comp":"df203c0f","__props":"27bed139"},"/gsoc/docs/tags/buildsystem-1bc":{"__comp":"df203c0f","__props":"7352dcc5"},"/gsoc/docs/tags/ci-9c8":{"__comp":"df203c0f","__props":"1a0d015f"},"/gsoc/docs/tags/ci-cd-c3a":{"__comp":"df203c0f","__props":"f80c10fe"},"/gsoc/docs/tags/clearlydefined-496":{"__comp":"df203c0f","__props":"987068a2"},"/gsoc/docs/tags/cmake-5d2":{"__comp":"df203c0f","__props":"227cd700"},"/gsoc/docs/tags/community-bonding-4d1":{"__comp":"df203c0f","__props":"6b404b6c"},"/gsoc/docs/tags/gsoc-21-7f3":{"__comp":"df203c0f","__props":"090ff72c"},"/gsoc/docs/tags/gsoc-22-f9d":{"__comp":"df203c0f","__props":"33f65a48"},"/gsoc/docs/tags/gsoc-23-3d6":{"__comp":"df203c0f","__props":"2e5c4e94"},"/gsoc/docs/tags/gsoc-24-d7d":{"__comp":"df203c0f","__props":"c346eb76"},"/gsoc/docs/tags/license-as-a-service-618":{"__comp":"df203c0f","__props":"5fe8cd37"},"/gsoc/docs/tags/open-source-licensing-495":{"__comp":"df203c0f","__props":"ef97733e"},"/gsoc/docs/tags/pipeline-427":{"__comp":"df203c0f","__props":"c2c192ad"},"/gsoc/docs/tags/project-46e":{"__comp":"df203c0f","__props":"729b1647"},"/gsoc/docs/tags/react-d8c":{"__comp":"df203c0f","__props":"5aaea04f"},"/gsoc/docs/tags/rest-ed6":{"__comp":"df203c0f","__props":"2c2af5ec"},"/gsoc/docs/tags/reuse-934":{"__comp":"df203c0f","__props":"552c3796"},"/gsoc/docs/tags/spasht-02f":{"__comp":"df203c0f","__props":"66defe51"},"/gsoc/docs/tags/spdx-30-eca":{"__comp":"df203c0f","__props":"519b30ff"},"/gsoc/docs/tags/spdx-expression-119":{"__comp":"df203c0f","__props":"37ce31a4"},"/gsoc/docs/tags/ui-0fb":{"__comp":"df203c0f","__props":"28550c33"},"/gsoc/docs/tags/week-1-337":{"__comp":"df203c0f","__props":"799444a3"},"/gsoc/docs/tags/week-10-28d":{"__comp":"df203c0f","__props":"cea8c87c"},"/gsoc/docs/tags/week-11-6bb":{"__comp":"df203c0f","__props":"2ba61d9f"},"/gsoc/docs/tags/week-12-469":{"__comp":"df203c0f","__props":"bc8f2e92"},"/gsoc/docs/tags/week-2-73b":{"__comp":"df203c0f","__props":"81cc93ed"},"/gsoc/docs/tags/week-3-ede":{"__comp":"df203c0f","__props":"69b10dc4"},"/gsoc/docs/tags/week-4-eb0":{"__comp":"df203c0f","__props":"f245a7fb"},"/gsoc/docs/tags/week-5-a1d":{"__comp":"df203c0f","__props":"e81b33ec"},"/gsoc/docs/tags/week-6-ac0":{"__comp":"df203c0f","__props":"8394d583"},"/gsoc/docs/tags/week-7-80a":{"__comp":"df203c0f","__props":"008e2980"},"/gsoc/docs/tags/week-8-7fa":{"__comp":"df203c0f","__props":"88c389e0"},"/gsoc/docs/tags/week-9-da6":{"__comp":"df203c0f","__props":"04e89960"},"/gsoc/docs-79a":{"__comp":"a94703ab"},"/gsoc/docs/-8bd":{"__comp":"17896441","content":"c377a04b"},"/gsoc/docs/2021-69d":{"__comp":"17896441","content":"c32e947c"},"/gsoc/docs/2021/buildsystem/-bc0":{"__comp":"17896441","content":"cf0ccdf6"},"/gsoc/docs/2021/buildsystem/build-939":{"__comp":"17896441","content":"959dc270"},"/gsoc/docs/2021/buildsystem/final-evaluation-9d7":{"__comp":"17896441","content":"2768a744"},"/gsoc/docs/2021/buildsystem/first-evaluation-1c9":{"__comp":"17896441","content":"0d4d3e3e"},"/gsoc/docs/2021/buildsystem/updates/2021-05-28-385":{"__comp":"17896441","content":"07f088a0"},"/gsoc/docs/2021/buildsystem/updates/2021-06-11-5fd":{"__comp":"17896441","content":"7dd73571"},"/gsoc/docs/2021/buildsystem/updates/2021-06-18-640":{"__comp":"17896441","content":"e1f55863"},"/gsoc/docs/2021/buildsystem/updates/2021-06-22-5f2":{"__comp":"17896441","content":"d508c172"},"/gsoc/docs/2021/buildsystem/updates/2021-06-29-c29":{"__comp":"17896441","content":"a94b7453"},"/gsoc/docs/2021/buildsystem/updates/2021-07-09-204":{"__comp":"17896441","content":"d3d51c24"},"/gsoc/docs/2021/buildsystem/updates/2021-07-23-7a7":{"__comp":"17896441","content":"d4fb24e6"},"/gsoc/docs/2021/buildsystem/updates/2021-07-30-626":{"__comp":"17896441","content":"66572fad"},"/gsoc/docs/2021/buildsystem/updates/2021-08-06-52b":{"__comp":"17896441","content":"49284236"},"/gsoc/docs/2021/buildsystem/updates/2021-08-13-127":{"__comp":"17896441","content":"e2d7187d"},"/gsoc/docs/2021/copyrights/-dde":{"__comp":"17896441","content":"8c9e2d39"},"/gsoc/docs/2021/copyrights/setup-a54":{"__comp":"17896441","content":"6f131a30"},"/gsoc/docs/2021/copyrights/updates/2021-06-07-0cb":{"__comp":"17896441","content":"16144a8e"},"/gsoc/docs/2021/copyrights/updates/2021-06-15-9a4":{"__comp":"17896441","content":"f56a1479"},"/gsoc/docs/2021/copyrights/updates/2021-06-22-b6e":{"__comp":"17896441","content":"d96c26a6"},"/gsoc/docs/2021/copyrights/updates/2021-07-06-83c":{"__comp":"17896441","content":"9fa1d9d8"},"/gsoc/docs/2021/copyrights/updates/2021-07-13-391":{"__comp":"17896441","content":"273188cf"},"/gsoc/docs/2021/copyrights/updates/2021-07-20-1d0":{"__comp":"17896441","content":"2cb3fda1"},"/gsoc/docs/2021/copyrights/updates/2021-08-03-940":{"__comp":"17896441","content":"738251cf"},"/gsoc/docs/2021/copyrights/updates/2021-08-10-864":{"__comp":"17896441","content":"77565992"},"/gsoc/docs/2021/microservice/-8b0":{"__comp":"17896441","content":"2a2d99b8"},"/gsoc/docs/2021/microservice/dockerImages-6d7":{"__comp":"17896441","content":"8d2724bf"},"/gsoc/docs/2021/microservice/setup-e13":{"__comp":"17896441","content":"aae3891b"},"/gsoc/docs/2021/microservice/updates/2021-06-07-767":{"__comp":"17896441","content":"7481d326"},"/gsoc/docs/2021/microservice/updates/2021-06-15-1cc":{"__comp":"17896441","content":"a49d0071"},"/gsoc/docs/2021/microservice/updates/2021-06-22-ab2":{"__comp":"17896441","content":"b6701d2e"},"/gsoc/docs/2021/microservice/updates/2021-06-29-b5e":{"__comp":"17896441","content":"fd8633b3"},"/gsoc/docs/2021/microservice/updates/2021-07-06-f04":{"__comp":"17896441","content":"d9a66a3b"},"/gsoc/docs/2021/microservice/updates/2021-07-13-092":{"__comp":"17896441","content":"e6208298"},"/gsoc/docs/2021/microservice/updates/2021-07-20-58b":{"__comp":"17896441","content":"c73c0369"},"/gsoc/docs/2021/microservice/updates/2021-07-27-087":{"__comp":"17896441","content":"028ec75c"},"/gsoc/docs/2021/microservice/updates/2021-08-03-413":{"__comp":"17896441","content":"c33a6383"},"/gsoc/docs/2021/microservice/updates/2021-08-17-a5c":{"__comp":"17896441","content":"f7a7bc28"},"/gsoc/docs/2021/minerva/-112":{"__comp":"17896441","content":"1185f44c"},"/gsoc/docs/2021/minerva/installation-7de":{"__comp":"17896441","content":"b574b54c"},"/gsoc/docs/2021/minerva/updates/2021-06-07-758":{"__comp":"17896441","content":"21a8b2e2"},"/gsoc/docs/2021/minerva/updates/2021-06-15-227":{"__comp":"17896441","content":"60a71940"},"/gsoc/docs/2021/minerva/updates/2021-06-22-512":{"__comp":"17896441","content":"ec165cb5"},"/gsoc/docs/2021/minerva/updates/2021-06-29-1ea":{"__comp":"17896441","content":"9a78ab14"},"/gsoc/docs/2021/minerva/updates/2021-07-05-724":{"__comp":"17896441","content":"ce20785b"},"/gsoc/docs/2021/minerva/updates/2021-07-13-5a6":{"__comp":"17896441","content":"263ec88a"},"/gsoc/docs/2021/minerva/updates/2021-07-20-a70":{"__comp":"17896441","content":"dd17a75b"},"/gsoc/docs/2021/minerva/updates/2021-07-27-3ee":{"__comp":"17896441","content":"cf8e8c6d"},"/gsoc/docs/2021/minerva/updates/2021-08-03-1a2":{"__comp":"17896441","content":"ab61ba2a"},"/gsoc/docs/2021/minerva/updates/2021-08-10-412":{"__comp":"17896441","content":"9ecc6cb6"},"/gsoc/docs/2021/minerva/updates/2021-08-17-194":{"__comp":"17896441","content":"64da718d"},"/gsoc/docs/2021/scancode/-326":{"__comp":"17896441","content":"2078f3e4"},"/gsoc/docs/2021/scancode/copyright-9db":{"__comp":"17896441","content":"186fa67e"},"/gsoc/docs/2021/scancode/first_evaluation-dd5":{"__comp":"17896441","content":"e5846d8e"},"/gsoc/docs/2021/scancode/installation-b87":{"__comp":"17896441","content":"4b1a116b"},"/gsoc/docs/2021/scancode/updates/2021-05-28-c6b":{"__comp":"17896441","content":"0e91f5a0"},"/gsoc/docs/2021/scancode/updates/2021-06-11-059":{"__comp":"17896441","content":"f2106231"},"/gsoc/docs/2021/scancode/updates/2021-06-18-abb":{"__comp":"17896441","content":"f5a24552"},"/gsoc/docs/2021/scancode/updates/2021-06-22-ba2":{"__comp":"17896441","content":"3ba56a83"},"/gsoc/docs/2021/scancode/updates/2021-06-29-aeb":{"__comp":"17896441","content":"0c97ea0a"},"/gsoc/docs/2021/scancode/updates/2021-07-06-df2":{"__comp":"17896441","content":"fe4c9b3e"},"/gsoc/docs/2021/scancode/updates/2021-07-13-a84":{"__comp":"17896441","content":"5a8545f2"},"/gsoc/docs/2021/scancode/updates/2021-07-20-0b4":{"__comp":"17896441","content":"7121b741"},"/gsoc/docs/2021/scancode/updates/2021-07-27-54b":{"__comp":"17896441","content":"ab75e5ae"},"/gsoc/docs/2021/ui/-307":{"__comp":"17896441","content":"51844f27"},"/gsoc/docs/2021/ui/installation-3ac":{"__comp":"17896441","content":"1ae2f0ff"},"/gsoc/docs/2021/ui/styleGuide-442":{"__comp":"17896441","content":"0a823637"},"/gsoc/docs/2021/ui/updates/aman/2021-06-15-bfb":{"__comp":"17896441","content":"8e0e4a7c"},"/gsoc/docs/2021/ui/updates/aman/2021-06-22-e80":{"__comp":"17896441","content":"d8d04ad4"},"/gsoc/docs/2021/ui/updates/aman/2021-06-29-730":{"__comp":"17896441","content":"d790d111"},"/gsoc/docs/2021/ui/updates/aman/2021-07-06-0bc":{"__comp":"17896441","content":"c891a8e6"},"/gsoc/docs/2021/ui/updates/aman/2021-07-13-a6c":{"__comp":"17896441","content":"1e6a3c02"},"/gsoc/docs/2021/ui/updates/aman/2021-07-20-e95":{"__comp":"17896441","content":"9257ef45"},"/gsoc/docs/2021/ui/updates/aman/2021-07-27-06c":{"__comp":"17896441","content":"9078adee"},"/gsoc/docs/2021/ui/updates/aman/2021-08-03-54f":{"__comp":"17896441","content":"f21dee58"},"/gsoc/docs/2021/ui/updates/aman/2021-08-10-527":{"__comp":"17896441","content":"55e1dc83"},"/gsoc/docs/2021/ui/updates/aman/2021-08-17-ba6":{"__comp":"17896441","content":"87bd4b70"},"/gsoc/docs/2021/ui/updates/shruti/2021-06-15-686":{"__comp":"17896441","content":"31f75598"},"/gsoc/docs/2021/ui/updates/shruti/2021-06-22-dbb":{"__comp":"17896441","content":"935a8806"},"/gsoc/docs/2021/ui/updates/shruti/2021-06-29-e3d":{"__comp":"17896441","content":"30d50cc3"},"/gsoc/docs/2021/ui/updates/shruti/2021-07-06-260":{"__comp":"17896441","content":"7bf50317"},"/gsoc/docs/2021/ui/updates/shruti/2021-07-13-857":{"__comp":"17896441","content":"050e991b"},"/gsoc/docs/2021/ui/updates/shruti/2021-07-20-0f8":{"__comp":"17896441","content":"e8b2c6f3"},"/gsoc/docs/2021/ui/updates/shruti/2021-07-27-2b8":{"__comp":"17896441","content":"4c8d4bbb"},"/gsoc/docs/2021/ui/updates/shruti/2021-08-03-200":{"__comp":"17896441","content":"34f37eae"},"/gsoc/docs/2021/ui/updates/shruti/2021-08-10-37f":{"__comp":"17896441","content":"aa55d53c"},"/gsoc/docs/2021/ui/updates/shruti/2021-08-17-82a":{"__comp":"17896441","content":"38e13263"},"/gsoc/docs/2022-3c9":{"__comp":"17896441","content":"423d9b78"},"/gsoc/docs/2022/atarashi/-1f8":{"__comp":"17896441","content":"8164a1c9"},"/gsoc/docs/2022/atarashi/updates/2022-06-02-4aa":{"__comp":"17896441","content":"2cb88a4b"},"/gsoc/docs/2022/atarashi/updates/2022-06-13-184":{"__comp":"17896441","content":"8218ea4c"},"/gsoc/docs/2022/atarashi/updates/2022-06-20-9c4":{"__comp":"17896441","content":"f2d37c2d"},"/gsoc/docs/2022/atarashi/updates/2022-06-27-3b7":{"__comp":"17896441","content":"578b1197"},"/gsoc/docs/2022/atarashi/updates/2022-07-04-ce2":{"__comp":"17896441","content":"b45e70c2"},"/gsoc/docs/2022/atarashi/updates/2022-07-11-2fa":{"__comp":"17896441","content":"97fcf222"},"/gsoc/docs/2022/atarashi/updates/2022-07-19-8a1":{"__comp":"17896441","content":"9bebd0d9"},"/gsoc/docs/2022/atarashi/updates/2022-07-26-855":{"__comp":"17896441","content":"9f3eea2d"},"/gsoc/docs/2022/atarashi/updates/2022-08-02-7cf":{"__comp":"17896441","content":"302dc6c1"},"/gsoc/docs/2022/atarashi/updates/2022-08-09-e2c":{"__comp":"17896441","content":"ac0d1e06"},"/gsoc/docs/2022/atarashi/updates/2022-08-16-491":{"__comp":"17896441","content":"1fe5bd65"},"/gsoc/docs/2022/atarashi/updates/2022-08-23-a00":{"__comp":"17896441","content":"cb93fa6f"},"/gsoc/docs/2022/atarashi/updates/2022-08-30-957":{"__comp":"17896441","content":"97d08d26"},"/gsoc/docs/2022/GSoC-projects-632":{"__comp":"17896441","content":"c69247d7"},"/gsoc/docs/2022/minutes/02-06-2022-c9d":{"__comp":"17896441","content":"5493c0e6"},"/gsoc/docs/2022/minutes/04-08-2022-d9b":{"__comp":"17896441","content":"4ef6f78e"},"/gsoc/docs/2022/minutes/07-07-2022-46a":{"__comp":"17896441","content":"ffeff597"},"/gsoc/docs/2022/minutes/09-06-2022-49f":{"__comp":"17896441","content":"bd3fab85"},"/gsoc/docs/2022/minutes/11-08-2022-9d7":{"__comp":"17896441","content":"80ff2f3b"},"/gsoc/docs/2022/minutes/14-07-2022-cbf":{"__comp":"17896441","content":"f52ce5cf"},"/gsoc/docs/2022/minutes/16-06-2022-490":{"__comp":"17896441","content":"1d690242"},"/gsoc/docs/2022/minutes/18-08-2022-60b":{"__comp":"17896441","content":"ae515947"},"/gsoc/docs/2022/minutes/21-07-2022-8d6":{"__comp":"17896441","content":"8d1f374f"},"/gsoc/docs/2022/minutes/23-06-2022-657":{"__comp":"17896441","content":"02c6e69e"},"/gsoc/docs/2022/minutes/25-08-2022-922":{"__comp":"17896441","content":"fe019f80"},"/gsoc/docs/2022/minutes/28-07-2022-dd4":{"__comp":"17896441","content":"3512fcc1"},"/gsoc/docs/2022/minutes/30-06-2022-951":{"__comp":"17896441","content":"32c02662"},"/gsoc/docs/2022/project/-f1b":{"__comp":"17896441","content":"1dace55c"},"/gsoc/docs/2022/project/updates/2022-06-02-0dc":{"__comp":"17896441","content":"1ca4eec1"},"/gsoc/docs/2022/project/updates/2022-06-09-11e":{"__comp":"17896441","content":"3a3aa3f9"},"/gsoc/docs/2022/project/updates/2022-06-16-e8c":{"__comp":"17896441","content":"7c75bbc9"},"/gsoc/docs/2022/project/updates/2022-06-23-5a9":{"__comp":"17896441","content":"3a69aa9b"},"/gsoc/docs/2022/project/updates/2022-06-30-9a1":{"__comp":"17896441","content":"19a24217"},"/gsoc/docs/2022/project/updates/2022-07-07-97c":{"__comp":"17896441","content":"1228fbea"},"/gsoc/docs/2022/project/updates/2022-07-14-c29":{"__comp":"17896441","content":"aff6cca9"},"/gsoc/docs/2022/project/updates/2022-07-21-964":{"__comp":"17896441","content":"e8009bb7"},"/gsoc/docs/2022/project/updates/2022-07-28-068":{"__comp":"17896441","content":"e790ab33"},"/gsoc/docs/2022/project/updates/2022-08-04-80c":{"__comp":"17896441","content":"f429ef64"},"/gsoc/docs/2022/project/updates/2022-08-11-0fc":{"__comp":"17896441","content":"746dc50c"},"/gsoc/docs/2022/project/updates/2022-08-18-015":{"__comp":"17896441","content":"6de855fa"},"/gsoc/docs/2022/project/updates/2022-08-25-785":{"__comp":"17896441","content":"1bf58ced"},"/gsoc/docs/2022/project/updates/2022-09-01-ad0":{"__comp":"17896441","content":"b2810712"},"/gsoc/docs/2022/project/updates/2022-09-08-2d5":{"__comp":"17896441","content":"c3ddd746"},"/gsoc/docs/2022/reuse/-006":{"__comp":"17896441","content":"a28343ab"},"/gsoc/docs/2022/reuse/updates/2022-06-02-695":{"__comp":"17896441","content":"43d0318c"},"/gsoc/docs/2022/reuse/updates/2022-06-13-666":{"__comp":"17896441","content":"744e4968"},"/gsoc/docs/2022/reuse/updates/2022-06-20-9a5":{"__comp":"17896441","content":"d3e40c0e"},"/gsoc/docs/2022/reuse/updates/2022-06-27-845":{"__comp":"17896441","content":"4c75aaac"},"/gsoc/docs/2022/reuse/updates/2022-07-04-dfe":{"__comp":"17896441","content":"9ea496a9"},"/gsoc/docs/2022/reuse/updates/2022-07-11-879":{"__comp":"17896441","content":"7e926307"},"/gsoc/docs/2022/reuse/updates/2022-07-18-3b5":{"__comp":"17896441","content":"f7df880f"},"/gsoc/docs/2022/reuse/updates/2022-07-25-a6f":{"__comp":"17896441","content":"3065bd84"},"/gsoc/docs/2022/reuse/updates/2022-08-02-40a":{"__comp":"17896441","content":"72e6a776"},"/gsoc/docs/2022/reuse/updates/2022-08-09-711":{"__comp":"17896441","content":"864a049b"},"/gsoc/docs/2022/reuse/updates/2022-08-16-53c":{"__comp":"17896441","content":"47e56d82"},"/gsoc/docs/2022/reuse/updates/2022-08-23-cbc":{"__comp":"17896441","content":"4f7200c3"},"/gsoc/docs/2022/reuse/updates/2022-08-30-8fb":{"__comp":"17896441","content":"c55b67b4"},"/gsoc/docs/2022/reuse/updates/2022-09-06-dee":{"__comp":"17896441","content":"baad1fb3"},"/gsoc/docs/2022/spasht/-f22":{"__comp":"17896441","content":"720c9529"},"/gsoc/docs/2022/spasht/updates/2022-06-02-2fc":{"__comp":"17896441","content":"da5968f3"},"/gsoc/docs/2022/spasht/updates/2022-06-08-480":{"__comp":"17896441","content":"988d06c4"},"/gsoc/docs/2022/spasht/updates/2022-06-15-7ae":{"__comp":"17896441","content":"c54eae64"},"/gsoc/docs/2022/spasht/updates/2022-06-22-d92":{"__comp":"17896441","content":"6dbcda96"},"/gsoc/docs/2022/spasht/updates/2022-07-06-980":{"__comp":"17896441","content":"6b96ecc6"},"/gsoc/docs/2022/spasht/updates/2022-07-13-9ad":{"__comp":"17896441","content":"21d6e7e7"},"/gsoc/docs/2022/ui/-bc7":{"__comp":"17896441","content":"824bed64"},"/gsoc/docs/2022/ui/installation-5e5":{"__comp":"17896441","content":"2669c513"},"/gsoc/docs/2022/ui/updates/ayush/2022-06-02-08d":{"__comp":"17896441","content":"aea84821"},"/gsoc/docs/2022/ui/updates/krishna/2022-06-02-158":{"__comp":"17896441","content":"55f0866e"},"/gsoc/docs/2022/ui/updates/krishna/2022-06-20-9c4":{"__comp":"17896441","content":"01dc97a1"},"/gsoc/docs/2022/ui/updates/krishna/2022-06-27-004":{"__comp":"17896441","content":"da9c51e5"},"/gsoc/docs/2022/ui/updates/krishna/2022-07-04-fdb":{"__comp":"17896441","content":"0ec7c0b4"},"/gsoc/docs/2022/ui/updates/krishna/2022-07-11-b79":{"__comp":"17896441","content":"234d7abe"},"/gsoc/docs/2022/ui/updates/krishna/2022-07-17-5dd":{"__comp":"17896441","content":"e152e44f"},"/gsoc/docs/2022/ui/updates/krishna/2022-07-24-542":{"__comp":"17896441","content":"9f48525f"},"/gsoc/docs/2022/ui/updates/krishna/2022-07-31-101":{"__comp":"17896441","content":"a0b98cfa"},"/gsoc/docs/2022/ui/updates/krishna/2022-08-07-65c":{"__comp":"17896441","content":"3383980b"},"/gsoc/docs/2022/ui/updates/krishna/2022-08-14-ce5":{"__comp":"17896441","content":"33c1fda8"},"/gsoc/docs/2022/ui/updates/krishna/2022-08-21-20c":{"__comp":"17896441","content":"5403b838"},"/gsoc/docs/2022/ui/updates/krishna/2022-08-28-a72":{"__comp":"17896441","content":"8782ef71"},"/gsoc/docs/2022/ui/updates/krishna/2022-09-04-aa9":{"__comp":"17896441","content":"8231cc4a"},"/gsoc/docs/2022/ui/updates/samuel/2021-06-24-57f":{"__comp":"17896441","content":"9f6800f0"},"/gsoc/docs/2022/ui/updates/samuel/2022-06-02-969":{"__comp":"17896441","content":"e89c0067"},"/gsoc/docs/2022/ui/updates/samuel/2022-06-30-3d0":{"__comp":"17896441","content":"3d8d1b23"},"/gsoc/docs/2022/ui/updates/samuel/2022-07-07-2fe":{"__comp":"17896441","content":"e40930a3"},"/gsoc/docs/2022/ui/updates/samuel/2022-07-14-e9f":{"__comp":"17896441","content":"fcea6667"},"/gsoc/docs/2022/ui/updates/samuel/2022-07-21-e80":{"__comp":"17896441","content":"e31d5c21"},"/gsoc/docs/2022/ui/updates/samuel/2022-08-02-acd":{"__comp":"17896441","content":"2f73850d"},"/gsoc/docs/2022/ui/updates/samuel/2022-08-11-7f4":{"__comp":"17896441","content":"52bd7b70"},"/gsoc/docs/2022/ui/updates/samuel/2022-08-18-dd2":{"__comp":"17896441","content":"2d1b92cb"},"/gsoc/docs/2022/ui/updates/samuel/2022-08-25-dda":{"__comp":"17896441","content":"fcdf28ae"},"/gsoc/docs/2022/ui/updates/samuel/2022-09-08-3f9":{"__comp":"17896441","content":"54fdf17a"},"/gsoc/docs/2022/ui/updates/samuel/2022-09-1-627":{"__comp":"17896441","content":"d2adff87"},"/gsoc/docs/2022/ui/updates/soham/2022-06-02-53a":{"__comp":"17896441","content":"3423283a"},"/gsoc/docs/2022/ui/updates/soham/2022-06-24-d05":{"__comp":"17896441","content":"a5379a4b"},"/gsoc/docs/2022/ui/updates/soham/2022-07-3-6b8":{"__comp":"17896441","content":"6ef9a503"},"/gsoc/docs/2022/ui/updates/soham/2022-07-7-46b":{"__comp":"17896441","content":"276db9af"},"/gsoc/docs/2022/ui/updates/soham/2022-07-8-aac":{"__comp":"17896441","content":"025be6d6"},"/gsoc/docs/2022/ui/updates/soham/2022-07-9-4cc":{"__comp":"17896441","content":"8e291ea1"},"/gsoc/docs/2022/ui/updates/soham/2022-08-01-a0a":{"__comp":"17896441","content":"250dd90a"},"/gsoc/docs/2022/ui/updates/soham/2022-08-05-5fd":{"__comp":"17896441","content":"e26a7def"},"/gsoc/docs/2022/ui/updates/soham/2022-08-08-6b1":{"__comp":"17896441","content":"18491626"},"/gsoc/docs/2023-f5e":{"__comp":"17896441","content":"99c6882e"},"/gsoc/docs/2023/copyrights/-949":{"__comp":"17896441","content":"41f47303"},"/gsoc/docs/2023/copyrights/updates/2023-05-11-c41":{"__comp":"17896441","content":"634ef2d6"},"/gsoc/docs/2023/copyrights/updates/2023-05-31-b3b":{"__comp":"17896441","content":"cb1a17e4"},"/gsoc/docs/2023/copyrights/updates/2023-06-07-3ee":{"__comp":"17896441","content":"5287211b"},"/gsoc/docs/2023/copyrights/updates/2023-06-14-9cb":{"__comp":"17896441","content":"417aa6bf"},"/gsoc/docs/2023/copyrights/updates/2023-06-21-2a7":{"__comp":"17896441","content":"6955c460"},"/gsoc/docs/2023/copyrights/updates/2023-06-28-363":{"__comp":"17896441","content":"8d4bf5b6"},"/gsoc/docs/2023/copyrights/updates/2023-07-05-716":{"__comp":"17896441","content":"29499316"},"/gsoc/docs/2023/copyrights/updates/2023-07-12-f50":{"__comp":"17896441","content":"764b643c"},"/gsoc/docs/2023/copyrights/updates/2023-07-19-340":{"__comp":"17896441","content":"3f6754b1"},"/gsoc/docs/2023/copyrights/updates/2023-07-26-e28":{"__comp":"17896441","content":"02279bec"},"/gsoc/docs/2023/copyrights/updates/2023-08-02-e1e":{"__comp":"17896441","content":"21e38604"},"/gsoc/docs/2023/copyrights/updates/2023-08-09-cf4":{"__comp":"17896441","content":"a3727c48"},"/gsoc/docs/2023/copyrights/updates/2023-08-16-ef2":{"__comp":"17896441","content":"b9fabb40"},"/gsoc/docs/2023/copyrights/updates/2023-08-23-fb7":{"__comp":"17896441","content":"0a23bdf5"},"/gsoc/docs/2023/copyrights/updates/2023-08-30-cfc":{"__comp":"17896441","content":"9088ab58"},"/gsoc/docs/2023/copyrights/updates/2023-09-06-814":{"__comp":"17896441","content":"3e191a68"},"/gsoc/docs/2023/copyrights/updates/2023-09-13-5e3":{"__comp":"17896441","content":"ad41fe21"},"/gsoc/docs/2023/copyrights/updates/2023-09-20-98a":{"__comp":"17896441","content":"b7259baa"},"/gsoc/docs/2023/copyrights/updates/2023-09-27-d2d":{"__comp":"17896441","content":"32232bbe"},"/gsoc/docs/2023/copyrights/updates/2023-10-04-ba5":{"__comp":"17896441","content":"8ece504f"},"/gsoc/docs/2023/copyrights/updates/2023-10-11-a6b":{"__comp":"17896441","content":"ed4d09e2"},"/gsoc/docs/2023/copyrights/updates/2023-10-18-1c9":{"__comp":"17896441","content":"b80ef7b8"},"/gsoc/docs/2023/copyrights/updates/2023-10-25-ea2":{"__comp":"17896441","content":"f6effec3"},"/gsoc/docs/2023/cyclonedx/-305":{"__comp":"17896441","content":"3a01145e"},"/gsoc/docs/2023/cyclonedx/updates/2023-05-11-ad2":{"__comp":"17896441","content":"b86a477d"},"/gsoc/docs/2023/cyclonedx/updates/2023-06-01-000":{"__comp":"17896441","content":"72129108"},"/gsoc/docs/2023/cyclonedx/updates/2023-06-08-27f":{"__comp":"17896441","content":"41e635b0"},"/gsoc/docs/2023/cyclonedx/updates/2023-06-15-eec":{"__comp":"17896441","content":"7391904a"},"/gsoc/docs/2023/cyclonedx/updates/2023-06-22-77b":{"__comp":"17896441","content":"bb37066e"},"/gsoc/docs/2023/cyclonedx/updates/2023-06-29-189":{"__comp":"17896441","content":"a4428ea9"},"/gsoc/docs/2023/cyclonedx/updates/2023-07-06-fa2":{"__comp":"17896441","content":"eaed3ec9"},"/gsoc/docs/2023/cyclonedx/updates/2023-07-13-10f":{"__comp":"17896441","content":"bc87ac89"},"/gsoc/docs/2023/cyclonedx/updates/2023-07-20-576":{"__comp":"17896441","content":"7d7964ab"},"/gsoc/docs/2023/cyclonedx/updates/2023-07-27-9ed":{"__comp":"17896441","content":"8dfdbdf3"},"/gsoc/docs/2023/cyclonedx/updates/2023-08-03-fff":{"__comp":"17896441","content":"0546864f"},"/gsoc/docs/2023/cyclonedx/updates/2023-08-10-c16":{"__comp":"17896441","content":"061e6717"},"/gsoc/docs/2023/GSoC-projects-f47":{"__comp":"17896441","content":"3cb67e34"},"/gsoc/docs/2023/laas/-4a6":{"__comp":"17896441","content":"f0c8bc5a"},"/gsoc/docs/2023/laas/finalevaluation-be2":{"__comp":"17896441","content":"2ae875ed"},"/gsoc/docs/2023/laas/updates/2023-05-11-a36":{"__comp":"17896441","content":"ccb19b74"},"/gsoc/docs/2023/laas/updates/2023-06-02-8e3":{"__comp":"17896441","content":"18bed81e"},"/gsoc/docs/2023/laas/updates/2023-06-09-c34":{"__comp":"17896441","content":"a1bf526c"},"/gsoc/docs/2023/laas/updates/2023-06-16-4b6":{"__comp":"17896441","content":"6accd836"},"/gsoc/docs/2023/laas/updates/2023-06-23-a84":{"__comp":"17896441","content":"366365ff"},"/gsoc/docs/2023/laas/updates/2023-06-30-767":{"__comp":"17896441","content":"80da5d44"},"/gsoc/docs/2023/laas/updates/2023-07-07-a49":{"__comp":"17896441","content":"b6185957"},"/gsoc/docs/2023/laas/updates/2023-07-14-709":{"__comp":"17896441","content":"4ba0f0ad"},"/gsoc/docs/2023/laas/updates/2023-07-21-57c":{"__comp":"17896441","content":"cb6d935a"},"/gsoc/docs/2023/laas/updates/2023-07-28-754":{"__comp":"17896441","content":"cc6478c2"},"/gsoc/docs/2023/laas/updates/2023-08-04-b89":{"__comp":"17896441","content":"2a0a0a98"},"/gsoc/docs/2023/minutes/2023-05-11-58b":{"__comp":"17896441","content":"23cfc9f7"},"/gsoc/docs/2023/minutes/2023-05-18-95f":{"__comp":"17896441","content":"83e35eb5"},"/gsoc/docs/2023/minutes/2023-05-25-615":{"__comp":"17896441","content":"f1bc92c5"},"/gsoc/docs/2023/minutes/2023-06-01-570":{"__comp":"17896441","content":"eafba1a1"},"/gsoc/docs/2023/minutes/2023-06-08-34c":{"__comp":"17896441","content":"2d9862c4"},"/gsoc/docs/2023/minutes/2023-06-15-47d":{"__comp":"17896441","content":"efa436d5"},"/gsoc/docs/2023/minutes/2023-06-22-74e":{"__comp":"17896441","content":"c96f5699"},"/gsoc/docs/2023/minutes/2023-06-29-102":{"__comp":"17896441","content":"9d90f292"},"/gsoc/docs/2023/minutes/2023-07-06-c25":{"__comp":"17896441","content":"5fb82b8f"},"/gsoc/docs/2023/minutes/2023-07-20-bcd":{"__comp":"17896441","content":"1942e039"},"/gsoc/docs/2023/minutes/2023-08-10-434":{"__comp":"17896441","content":"345fcdca"},"/gsoc/docs/2023/minutes/2023-08-17-e4d":{"__comp":"17896441","content":"5f91dd84"},"/gsoc/docs/2023/minutes/2023-08-24-cef":{"__comp":"17896441","content":"c07c256a"},"/gsoc/docs/2023/rest/-be7":{"__comp":"17896441","content":"d098244b"},"/gsoc/docs/2023/rest/updates/samuel/2023-05-11-0df":{"__comp":"17896441","content":"2fd5aa2e"},"/gsoc/docs/2023/rest/updates/samuel/2023-06-01-e3b":{"__comp":"17896441","content":"76f3e499"},"/gsoc/docs/2023/rest/updates/samuel/2023-06-08-fea":{"__comp":"17896441","content":"bebf970d"},"/gsoc/docs/2023/rest/updates/samuel/2023-06-15-f23":{"__comp":"17896441","content":"b3353e9f"},"/gsoc/docs/2023/rest/updates/samuel/2023-06-22-b36":{"__comp":"17896441","content":"4986eea2"},"/gsoc/docs/2023/rest/updates/samuel/2023-06-29-955":{"__comp":"17896441","content":"b955e9ef"},"/gsoc/docs/2023/rest/updates/samuel/2023-07-06-e07":{"__comp":"17896441","content":"fd55eaa5"},"/gsoc/docs/2023/rest/updates/samuel/2023-07-13-aa5":{"__comp":"17896441","content":"a66288bb"},"/gsoc/docs/2023/rest/updates/samuel/2023-07-20-49b":{"__comp":"17896441","content":"fa6aa0c2"},"/gsoc/docs/2023/rest/updates/samuel/2023-07-27-a5e":{"__comp":"17896441","content":"1b7c4551"},"/gsoc/docs/2023/rest/updates/samuel/2023-08-03-79f":{"__comp":"17896441","content":"7656bcd9"},"/gsoc/docs/2023/rest/updates/samuel/2023-08-10-590":{"__comp":"17896441","content":"3dacff87"},"/gsoc/docs/2023/rest/updates/samuel/2023-08-17-11f":{"__comp":"17896441","content":"5bb82e60"},"/gsoc/docs/2023/rest/updates/soham/2023-05-11-0e5":{"__comp":"17896441","content":"c3075d90"},"/gsoc/docs/2023/rest/updates/soham/2023-06-01-f2f":{"__comp":"17896441","content":"0e1bb287"},"/gsoc/docs/2023/rest/updates/soham/2023-06-08-148":{"__comp":"17896441","content":"f8db2e1d"},"/gsoc/docs/2023/rest/updates/soham/2023-06-27-5b6":{"__comp":"17896441","content":"7bbb3d8c"},"/gsoc/docs/2023/rest/updates/soham/2023-07-05-54a":{"__comp":"17896441","content":"98bdcc53"},"/gsoc/docs/2023/rest/updates/soham/2023-07-16-495":{"__comp":"17896441","content":"8535af15"},"/gsoc/docs/2023/rest/updates/soham/2023-07-28-18e":{"__comp":"17896441","content":"66259119"},"/gsoc/docs/2023/rest/updates/soham/2023-08-05-867":{"__comp":"17896441","content":"c0b1f1ad"},"/gsoc/docs/2024-166":{"__comp":"17896441","content":"6ae2d8c6"},"/gsoc/docs/2024/ci-scanner/-14b":{"__comp":"17896441","content":"b971c4de"},"/gsoc/docs/2024/ci-scanner/updates/2024-05-07-394":{"__comp":"17896441","content":"27a55f2d"},"/gsoc/docs/2024/ci-scanner/updates/2024-06-06-d32":{"__comp":"17896441","content":"182aacb7"},"/gsoc/docs/2024/ci-scanner/updates/2024-06-13-084":{"__comp":"17896441","content":"8a76602d"},"/gsoc/docs/2024/ci-scanner/updates/2024-06-20-265":{"__comp":"17896441","content":"906c0998"},"/gsoc/docs/2024/ci-scanner/updates/2024-06-27-dce":{"__comp":"17896441","content":"1f5250dc"},"/gsoc/docs/2024/ci-scanner/updates/2024-07-04-da7":{"__comp":"17896441","content":"8093b439"},"/gsoc/docs/2024/ci-scanner/updates/2024-07-11-637":{"__comp":"17896441","content":"204f1452"},"/gsoc/docs/2024/ci-scanner/updates/2024-07-18-211":{"__comp":"17896441","content":"d45f577f"},"/gsoc/docs/2024/ci-scanner/updates/2024-07-25-8fd":{"__comp":"17896441","content":"de98e83e"},"/gsoc/docs/2024/GSoC-projects-b7c":{"__comp":"17896441","content":"202295a4"},"/gsoc/docs/2024/license-detection/-ce1":{"__comp":"17896441","content":"d0c53706"},"/gsoc/docs/2024/license-detection/updates/2024-05-30-bf0":{"__comp":"17896441","content":"ea7c83c3"},"/gsoc/docs/2024/license-detection/updates/2024-06-06-052":{"__comp":"17896441","content":"e2791b5f"},"/gsoc/docs/2024/license-detection/updates/2024-06-13-d1c":{"__comp":"17896441","content":"dd569b67"},"/gsoc/docs/2024/license-detection/updates/2024-06-20-263":{"__comp":"17896441","content":"08063d3c"},"/gsoc/docs/2024/license-detection/updates/2024-06-27-c46":{"__comp":"17896441","content":"fc400b87"},"/gsoc/docs/2024/license-detection/updates/2024-07-04-476":{"__comp":"17896441","content":"617ad78a"},"/gsoc/docs/2024/license-detection/updates/2024-07-11-613":{"__comp":"17896441","content":"961aaf41"},"/gsoc/docs/2024/minutes/2024-05-30-bc2":{"__comp":"17896441","content":"959de7fa"},"/gsoc/docs/2024/minutes/2024-06-06-4b0":{"__comp":"17896441","content":"4f00ca68"},"/gsoc/docs/2024/minutes/2024-06-13-c68":{"__comp":"17896441","content":"9308303c"},"/gsoc/docs/2024/minutes/2024-06-20-f97":{"__comp":"17896441","content":"4f0b91aa"},"/gsoc/docs/2024/minutes/2024-06-27-6c7":{"__comp":"17896441","content":"662f7d94"},"/gsoc/docs/2024/minutes/2024-07-04-0a7":{"__comp":"17896441","content":"ced8809e"},"/gsoc/docs/2024/minutes/2024-07-11-f74":{"__comp":"17896441","content":"6540906a"},"/gsoc/docs/2024/pipeline/-f15":{"__comp":"17896441","content":"1f716dd2"},"/gsoc/docs/2024/pipeline/updates/2024-05-07-a2a":{"__comp":"17896441","content":"09aa2e1a"},"/gsoc/docs/2024/pipeline/updates/2024-05-30-c5f":{"__comp":"17896441","content":"b76ea48f"},"/gsoc/docs/2024/pipeline/updates/2024-06-06-9fb":{"__comp":"17896441","content":"89831ac9"},"/gsoc/docs/2024/pipeline/updates/2024-06-13-cdd":{"__comp":"17896441","content":"df76972a"},"/gsoc/docs/2024/pipeline/updates/2024-06-20-9af":{"__comp":"17896441","content":"931055eb"},"/gsoc/docs/2024/pipeline/updates/2024-06-27-1c4":{"__comp":"17896441","content":"43b51baa"},"/gsoc/docs/2024/pipeline/updates/2024-07-04-ba2":{"__comp":"17896441","content":"3fbbd0f4"},"/gsoc/docs/2024/rest/-038":{"__comp":"17896441","content":"99a3c1f5"},"/gsoc/docs/2024/rest/API-guidelines-a31":{"__comp":"17896441","content":"1374829e"},"/gsoc/docs/2024/rest/updates/Divij/2024-05-07-33d":{"__comp":"17896441","content":"a451cadc"},"/gsoc/docs/2024/rest/updates/Divij/2024-05-30-dbe":{"__comp":"17896441","content":"28315084"},"/gsoc/docs/2024/rest/updates/Divij/2024-06-06-db5":{"__comp":"17896441","content":"9be35a5c"},"/gsoc/docs/2024/rest/updates/Divij/2024-06-11-299":{"__comp":"17896441","content":"3a4ef734"},"/gsoc/docs/2024/rest/updates/Divij/2024-06-18-5c3":{"__comp":"17896441","content":"38b01e93"},"/gsoc/docs/2024/rest/updates/Divij/2024-06-25-5fc":{"__comp":"17896441","content":"c3635ea8"},"/gsoc/docs/2024/rest/updates/Divij/2024-07-02-c7c":{"__comp":"17896441","content":"c11a5439"},"/gsoc/docs/2024/rest/updates/Divij/2024-07-09-0e5":{"__comp":"17896441","content":"ced86b15"},"/gsoc/docs/2024/rest/updates/Divij/2024-07-16-898":{"__comp":"17896441","content":"ff7b630c"},"/gsoc/docs/2024/rest/updates/valens/2024-05-07-a95":{"__comp":"17896441","content":"a96aad4c"},"/gsoc/docs/2024/rest/updates/valens/2024-05-30-d4a":{"__comp":"17896441","content":"2e7d2cd8"},"/gsoc/docs/2024/rest/updates/valens/2024-06-13-e38":{"__comp":"17896441","content":"e5add6da"},"/gsoc/docs/2024/rest/updates/valens/2024-06-20-8e0":{"__comp":"17896441","content":"3997b891"},"/gsoc/docs/2024/rest/updates/valens/2024-06-27-bd0":{"__comp":"17896441","content":"bf753beb"},"/gsoc/docs/2024/rest/updates/valens/2024-07-04-f06":{"__comp":"17896441","content":"0fdd4856"},"/gsoc/docs/2024/scheduler/-10a":{"__comp":"17896441","content":"61dfadde"},"/gsoc/docs/2024/scheduler/updates/2023-05-30-6e9":{"__comp":"17896441","content":"5efb33e7"},"/gsoc/docs/2024/scheduler/updates/2024-05-09-c74":{"__comp":"17896441","content":"26c67a4b"},"/gsoc/docs/2024/scheduler/updates/2024-05-23-069":{"__comp":"17896441","content":"2766d498"},"/gsoc/docs/2024/scheduler/updates/2024-06-06-868":{"__comp":"17896441","content":"6e6f23f0"},"/gsoc/docs/2024/scheduler/updates/2024-06-07-2ee":{"__comp":"17896441","content":"83ae4789"},"/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31-d65":{"__comp":"17896441","content":"60d9b5fd"},"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14-1e0":{"__comp":"17896441","content":"e172f0a4"},"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21-05e":{"__comp":"17896441","content":"a9eff1ed"},"/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28-b04":{"__comp":"17896441","content":"aa70e1cd"},"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05-80a":{"__comp":"17896441","content":"ccbbc0e7"},"/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12-e35":{"__comp":"17896441","content":"78054b94"},"/gsoc/docs/2024/scheduler/updates/General/2024-05-30-2ac":{"__comp":"17896441","content":"a7a07b17"},"/gsoc/docs/2024/scheduler/updates/General/2024-06-13-846":{"__comp":"17896441","content":"7afcff4c"},"/gsoc/docs/2024/scheduler/updates/General/2024-06-20-e8b":{"__comp":"17896441","content":"4c81a1bc"},"/gsoc/docs/2024/scheduler/updates/General/2024-06-27-f25":{"__comp":"17896441","content":"27ad8414"},"/gsoc/docs/2024/scheduler/updates/General/2024-07-04-e2e":{"__comp":"17896441","content":"c928beef"},"/gsoc/docs/2024/scheduler/updates/General/2024-07-11-75d":{"__comp":"17896441","content":"1e466064"},"/gsoc/docs/2024/spdx-expression/-08d":{"__comp":"17896441","content":"708890f5"},"/gsoc/docs/2024/spdx-expression/updates/2024-05-07-e68":{"__comp":"17896441","content":"ff825a2f"},"/gsoc/docs/2024/spdx-expression/updates/2024-05-28-9a6":{"__comp":"17896441","content":"d8299bcc"},"/gsoc/docs/2024/spdx-expression/updates/2024-06-04-25a":{"__comp":"17896441","content":"2a92eb23"},"/gsoc/docs/2024/spdx-expression/updates/2024-06-11-a81":{"__comp":"17896441","content":"d8d678bc"},"/gsoc/docs/2024/spdx-expression/updates/2024-06-18-595":{"__comp":"17896441","content":"06748857"},"/gsoc/docs/2024/spdx-expression/updates/2024-06-25-4ba":{"__comp":"17896441","content":"96273901"},"/gsoc/docs/2024/spdx30/-094":{"__comp":"17896441","content":"fa19280c"},"/gsoc/docs/2024/spdx30/updates/2024-05-07-942":{"__comp":"17896441","content":"ca774ecf"},"/gsoc/docs/2024/spdx30/updates/2024-05-28-a57":{"__comp":"17896441","content":"b063e761"},"/gsoc/docs/2024/spdx30/updates/2024-06-04-bea":{"__comp":"17896441","content":"314d50dd"},"/gsoc/docs/2024/spdx30/updates/2024-06-11-f1a":{"__comp":"17896441","content":"19cbecc5"},"/gsoc/docs/2024/spdx30/updates/2024-06-18-81d":{"__comp":"17896441","content":"b55f1bae"},"/gsoc/docs/2024/spdx30/updates/2024-06-25-7a4":{"__comp":"17896441","content":"39196de0"},"/gsoc/docs/2024/text-phrases/-6ef":{"__comp":"17896441","content":"7cef544e"},"/gsoc/docs/2024/text-phrases/updates/2024-05-7-c0a":{"__comp":"17896441","content":"a2168394"},"/gsoc/docs/guidelines/-8cc":{"__comp":"17896441","content":"ed3f6656"},"/gsoc/-2f0":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=97221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.c1eef401.js.LICENSE.txt b/assets/js/main.c1eef401.js.LICENSE.txt new file mode 100644 index 0000000000..91dc894998 --- /dev/null +++ b/assets/js/main.c1eef401.js.LICENSE.txt @@ -0,0 +1,64 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.6de9a06c.js b/assets/js/runtime~main.6de9a06c.js new file mode 100644 index 0000000000..d02ca92673 --- /dev/null +++ b/assets/js/runtime~main.6de9a06c.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,f,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],d=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({2:"0546864f",19:"6de855fa",41:"e6208298",110:"4986eea2",152:"bebf970d",271:"417aa6bf",300:"738251cf",309:"234d7abe",329:"b9fabb40",358:"0c97ea0a",374:"08063d3c",382:"99c6882e",396:"202295a4",415:"05f52370",422:"2ba61d9f",448:"d8299bcc",467:"49284236",474:"008e2980",477:"8a76602d",503:"314d50dd",515:"8394d583",516:"3a01145e",518:"eafba1a1",535:"c3635ea8",542:"06949c14",543:"04e89960",557:"77565992",559:"1374829e",566:"3d8d1b23",628:"824bed64",639:"d45f577f",654:"7cef544e",747:"c96f5699",749:"ff7b630c",759:"b574b54c",774:"f8db2e1d",783:"27bed139",808:"273188cf",838:"1bf58ced",845:"e1f55863",873:"ea7c83c3",884:"b063e761",919:"0d4d3e3e",946:"c928beef",976:"ae515947",1019:"02c6e69e",1044:"46d3cdc1",1052:"43d0318c",1068:"eaed3ec9",1098:"fcdf28ae",1099:"cea8c87c",1126:"3e191a68",1146:"9dda5328",1151:"a3727c48",1156:"8164a1c9",1162:"16144a8e",1163:"7352dcc5",1175:"a7a07b17",1199:"f52ce5cf",1218:"ab61ba2a",1285:"182aacb7",1375:"1d690242",1401:"263ec88a",1404:"bc87ac89",1415:"6ae2d8c6",1454:"acecf23e",1471:"d4fb24e6",1482:"7dd73571",1504:"d3d51c24",1507:"6ef9a503",1519:"55e1dc83",1534:"a96aad4c",1550:"9bebd0d9",1570:"1e6a3c02",1632:"b3353e9f",1652:"9ea496a9",1670:"935a8806",1676:"d2adff87",1696:"8dfdbdf3",1713:"e172f0a4",1728:"9d90f292",1752:"32232bbe",1836:"9257ef45",1853:"9078adee",1856:"906c0998",1864:"ef97733e",1908:"8c9e2d39",1944:"7bbb3d8c",1964:"5f91dd84",1969:"ec165cb5",1989:"28315084",1992:"26c67a4b",2012:"4ba0f0ad",2037:"2fd5aa2e",2046:"da9c51e5",2064:"c54eae64",2072:"88c389e0",2075:"02279bec",2082:"b45e70c2",2147:"4c81a1bc",2148:"4c75aaac",2159:"33f65a48",2200:"4ef6f78e",2202:"cb93fa6f",2258:"f2d37c2d",2267:"4b1a116b",2322:"9f3eea2d",2327:"ccb19b74",2351:"96273901",2353:"b6185957",2357:"87bd4b70",2358:"a5379a4b",2367:"2a2d99b8",2373:"a451cadc",2396:"a1bf526c",2404:"99a3c1f5",2405:"0a23bdf5",2429:"a28343ab",2448:"988d06c4",2489:"4f00ca68",2495:"b971c4de",2503:"21e38604",2515:"e5846d8e",2523:"8535af15",2532:"3a3aa3f9",2535:"814f3328",2574:"47e56d82",2597:"6540906a",2664:"5efb33e7",2684:"d6a7f907",2709:"f2106231",2723:"6f131a30",2744:"07f088a0",2759:"55f0866e",2777:"ccbbc0e7",2801:"276db9af",2855:"2f73850d",2876:"9a78ab14",2894:"7d7964ab",3010:"0d837118",3056:"1f5250dc",3067:"2768a744",3069:"e31d5c21",3077:"9088ab58",3089:"a6aa9e1f",3091:"f1bc92c5",3157:"3fbbd0f4",3246:"dd17a75b",3282:"7e926307",3284:"fe9cdef2",3334:"21a8b2e2",3349:"a49d0071",3367:"f429ef64",3369:"4c8d4bbb",3381:"3a69aa9b",3459:"4f0b91aa",3545:"227cd700",3608:"9e4087bc",3629:"aba21aa0",3662:"39196de0",3668:"b86a477d",3693:"6b404b6c",3711:"9308303c",3751:"3720c009",3761:"c3ddd746",3803:"1a0d015f",3872:"d790d111",3915:"19a24217",3937:"9fa1d9d8",4013:"01a85c17",4044:"6b96ecc6",4064:"54fdf17a",4077:"ced8809e",4101:"97fcf222",4114:"8e0e4a7c",4156:"3a4ef734",4195:"c4f5d8e4",4211:"959dc270",4330:"76f3e499",4334:"f80c10fe",4355:"c11a5439",4368:"a94703ab",4390:"01dc97a1",4399:"69b10dc4",4406:"931055eb",4414:"c73c0369",4422:"6dbcda96",4449:"7bf50317",4472:"720c9529",4516:"60a71940",4530:"e26a7def",4539:"38e13263",4548:"f7a7bc28",4560:"345fcdca",4576:"efa436d5",4592:"baad1fb3",4604:"ad41fe21",4622:"f0c8bc5a",4627:"da5968f3",4683:"028ec75c",4749:"e790ab33",4784:"29499316",4795:"250dd90a",4804:"fe4c9b3e",4807:"6e6f23f0",4821:"578b1197",4895:"9f48525f",4930:"27ad8414",4958:"f7df880f",4959:"fc400b87",4963:"3997b891",4989:"366365ff",5005:"0e1bb287",5012:"37ce31a4",5022:"ca774ecf",5061:"81cc93ed",5084:"d8d04ad4",5168:"61dfadde",5197:"8d4bf5b6",5203:"5aaea04f",5205:"83e35eb5",5246:"7afcff4c",5254:"80da5d44",5259:"423d9b78",5264:"fd8633b3",5307:"8d1f374f",5351:"41f47303",5376:"5fb82b8f",5413:"aa55d53c",5420:"ed3f6656",5430:"fd55eaa5",5442:"de98e83e",5473:"1fe5bd65",5504:"fa6aa0c2",5561:"729b1647",5584:"aff6cca9",5593:"2ae875ed",5602:"090ff72c",5669:"e40930a3",5731:"97d08d26",5754:"5287211b",5765:"987068a2",5766:"1007bf61",5770:"3f6754b1",5818:"8e291ea1",5819:"2e7d2cd8",5854:"6accd836",5902:"d96c26a6",5915:"8782ef71",5920:"c33a6383",5944:"1b7c4551",5949:"2cb88a4b",5962:"1ae2f0ff",5980:"a7456010",6006:"e8b2c6f3",6032:"746dc50c",6052:"18bed81e",6085:"ffeff597",6088:"f6effec3",6103:"ccc49370",6107:"b7259baa",6118:"aa70e1cd",6163:"c07c256a",6200:"ac0d1e06",6204:"cc6478c2",6216:"2669c513",6217:"34f37eae",6220:"e2791b5f",6231:"fe019f80",6242:"06748857",6245:"38b01e93",6291:"bd3fab85",6295:"b80ef7b8",6303:"33c1fda8",6370:"c2c192ad",6407:"cb6d935a",6441:"d9a66a3b",6467:"72129108",6482:"52bd7b70",6544:"3cb67e34",6549:"3512fcc1",6552:"5493c0e6",6635:"66572fad",6681:"5bb82e60",6690:"2766d498",6807:"a0b98cfa",6817:"b2810712",6842:"3ba56a83",6845:"19cbecc5",6867:"2a0a0a98",6869:"fa19280c",6887:"8d2724bf",6914:"30d50cc3",6933:"31f75598",6956:"1dace55c",6971:"c377a04b",6991:"f245a7fb",7016:"bacc57da",7061:"72e6a776",7073:"0ec7c0b4",7096:"ce20785b",7121:"744e4968",7129:"186fa67e",7161:"e152e44f",7231:"3423283a",7250:"4f7200c3",7279:"ab75e5ae",7282:"5403b838",7284:"ed4d09e2",7301:"1f716dd2",7375:"41e635b0",7393:"061e6717",7418:"80ff2f3b",7422:"a66288bb",7433:"bf753beb",7453:"98bdcc53",7493:"050e991b",7501:"7c75bbc9",7526:"66defe51",7527:"799444a3",7533:"c891a8e6",7569:"c346eb76",7574:"c0952c37",7579:"cf0ccdf6",7586:"83ae4789",7588:"7391904a",7594:"ff825a2f",7595:"cb1a17e4",7616:"3065bd84",7633:"5fe8cd37",7648:"7656bcd9",7651:"3dacff87",7705:"634ef2d6",7810:"9ecc6cb6",7839:"e89c0067",7843:"8093b439",7899:"51844f27",7906:"1942e039",7918:"17896441",7955:"f5a24552",7973:"025be6d6",7980:"9be35a5c",7981:"2cb3fda1",8055:"f21dee58",8075:"b6701d2e",8094:"0fdd4856",8121:"7121b741",8168:"dd569b67",8187:"a9eff1ed",8200:"e2d7187d",8201:"e81b33ec",8225:"708890f5",8245:"5a8545f2",8349:"d0c53706",8375:"a2168394",8413:"43b51baa",8424:"2d9862c4",8426:"8218ea4c",8436:"e5add6da",8515:"519b30ff",8518:"a7bd4aaa",8580:"b76ea48f",8586:"89831ac9",8593:"662f7d94",8595:"617ad78a",8610:"6875c492",8620:"d098244b",8628:"764b643c",8632:"aae3891b",8668:"c69247d7",8707:"bc8f2e92",8746:"2078f3e4",8812:"c3075d90",8827:"9f6800f0",8845:"7481d326",8905:"27a55f2d",8909:"cf8e8c6d",8927:"09aa2e1a",8932:"df76972a",8971:"a94b7453",8973:"2e5c4e94",9052:"18491626",9094:"64da718d",9103:"32c02662",9113:"60d9b5fd",9130:"1ca4eec1",9132:"1e466064",9154:"a4428ea9",9158:"2a92eb23",9192:"c32e947c",9208:"36994c47",9250:"d3e40c0e",9275:"b955e9ef",9291:"552c3796",9295:"d8d678bc",9304:"0a823637",9331:"3383980b",9336:"8ece504f",9362:"fcea6667",9365:"28550c33",9437:"864a049b",9487:"ced86b15",9496:"302dc6c1",9547:"961aaf41",9605:"21d6e7e7",9608:"c55b67b4",9611:"d508c172",9613:"c0b1f1ad",9648:"b55f1bae",9656:"204f1452",9661:"5e95c892",9704:"2c2af5ec",9706:"2d1b92cb",9732:"1185f44c",9736:"8231cc4a",9798:"e8009bb7",9803:"23cfc9f7",9811:"959de7fa",9817:"6955c460",9853:"1228fbea",9878:"0e91f5a0",9894:"78054b94",9904:"bb37066e",9924:"df203c0f",9933:"f56a1479",9956:"66259119",9973:"aea84821"}[e]||e)+"."+{2:"bb596fe2",19:"0306bf6a",41:"e2d1389b",110:"cf929aec",146:"e5652420",152:"65199300",271:"f520c4e9",300:"4242994b",309:"85c39ab4",329:"c0be2a2a",358:"51985e6e",374:"a542bf6d",382:"1cd1ec5f",396:"5dddb9d0",415:"d660aaed",422:"1ebfa5a8",448:"f497c88c",467:"a0c75452",474:"23d5f78b",477:"eb9314a5",503:"5d1134c2",515:"3bf2f916",516:"3e0fd3fd",518:"d077b493",535:"05ee3d32",542:"1a3fd5ed",543:"20c0ffc4",557:"48d83861",559:"113b2bc9",566:"0280dc31",628:"75af5a64",639:"b8f5413e",654:"066ac0ee",747:"8624473a",749:"86904091",759:"6a841729",774:"c81286f6",783:"e20e4078",808:"27be473a",838:"3e6adf8f",845:"17fef679",873:"c2cd1e1c",884:"43c67bdd",919:"2b087b51",946:"25056ae8",976:"d9ae3f91",1019:"d04aa58b",1044:"d9bd3e30",1052:"303b21e7",1068:"e023084f",1098:"442f12c2",1099:"bc322805",1126:"75924294",1146:"d77913fd",1151:"08ca585f",1156:"1c3a3f47",1162:"4500eff2",1163:"297f6992",1175:"f06ed746",1199:"d61ee33b",1218:"2bc29564",1285:"30ef0aaa",1375:"ce74dbc4",1401:"52419891",1404:"ede90c39",1415:"a4609038",1454:"0fa7fbfb",1471:"de106ae7",1482:"69f08585",1504:"03fa64ab",1507:"ef028655",1519:"2888f4ec",1534:"040a2b63",1550:"33d7ca5f",1570:"d8b15641",1632:"e3492934",1652:"6320d17d",1670:"adc518b8",1676:"1e3e599b",1696:"1c0148d2",1713:"a9f60dc0",1728:"a456a40d",1752:"b655ed7d",1772:"f71e55eb",1836:"20d20df7",1853:"609104ef",1856:"384bd530",1864:"6562353b",1908:"6ab1b801",1944:"f9bfa0b0",1964:"7e6b555b",1969:"fb502018",1989:"586f7ef1",1992:"46d905db",2012:"e287a33d",2037:"e7f18e2f",2046:"5a500628",2064:"93cb86d9",2072:"2a02237e",2075:"abe93071",2082:"4a94414d",2147:"438ac785",2148:"4c2648ae",2159:"35dfa079",2200:"7510edc6",2202:"134e6643",2258:"575410dd",2267:"5bc9bacd",2322:"40eed792",2327:"0ef72df8",2351:"b417ef6e",2353:"04856910",2357:"09b7cb59",2358:"28e0ce2d",2367:"0269b2d4",2373:"cc1ff217",2396:"ba7c4a65",2404:"742db6fc",2405:"884064cf",2429:"4b6c313e",2448:"d1f1aa9d",2489:"54c5f8d5",2495:"b731557f",2503:"b38e2130",2515:"f5af96e8",2523:"296d577e",2532:"2eced321",2535:"8aba8e45",2574:"0b57166e",2597:"6323037f",2664:"76f8a2d6",2684:"c93dd818",2709:"77fb5fd9",2723:"fe4520e9",2744:"49379215",2759:"9a594f12",2777:"c2d46b11",2801:"ac7a366b",2855:"232897e5",2876:"054d445d",2894:"46a27b10",3010:"4a7c2dc3",3056:"d3aa49a4",3067:"9e584e69",3069:"1504a0ad",3077:"773e0d59",3089:"bacd5c82",3091:"790e061b",3157:"5b06d8d6",3246:"58fc0454",3282:"4657f47a",3284:"f7b52342",3334:"683f749e",3349:"d2d4b559",3367:"ec72415e",3369:"9e87d248",3381:"1b198052",3459:"3ec59774",3545:"5c64ba95",3608:"8e0b2f0c",3629:"f41d8e67",3662:"ccb1640f",3668:"31c4ae48",3693:"3494a9bf",3711:"6464219f",3751:"2a607542",3761:"f2a536db",3803:"8f84833f",3872:"2838e85d",3915:"6de5b7bb",3937:"4724fa84",4013:"12d24c8e",4044:"bdb90c69",4064:"ade91eab",4077:"d066b9fe",4101:"eb3adb67",4114:"f69d4f32",4156:"49102318",4195:"b9664d02",4211:"f5caba8b",4330:"8475ecae",4334:"7f71b24a",4355:"79a83691",4368:"9cf579bd",4390:"01bc5d1a",4399:"2d0a4f5e",4406:"ad8df9b6",4414:"a392a8db",4422:"5e5c7c80",4449:"0964e114",4472:"0101bdf0",4516:"b3a4a6bc",4530:"482ba2a1",4539:"850ba657",4548:"262fbdac",4560:"9338ec3c",4576:"cb7df0b6",4592:"6b1c2e83",4604:"ce8ca5de",4622:"92b4ab3b",4627:"8d904974",4683:"75416d02",4749:"b7d5ac93",4784:"ce47457a",4795:"8c759143",4804:"8b24b5cf",4807:"752151b7",4821:"2302b917",4895:"ef1a03e3",4930:"dbaa8c0a",4958:"d38f1d77",4959:"4278e687",4963:"fcf1290f",4989:"bf265508",5005:"aab01efa",5012:"96d77bfd",5022:"4f4acc7a",5061:"a9c432f7",5084:"41e576e1",5168:"e124e4ca",5197:"c0a1bd58",5203:"a6109f4c",5205:"d3d5041b",5246:"c51ca662",5254:"c85787ef",5259:"89a9368a",5264:"0a4226a9",5307:"49be325b",5351:"8503b263",5376:"9da07fa0",5413:"b5b34a8f",5420:"bd2d6851",5430:"6162dbcb",5442:"37c89ba3",5473:"74d0b244",5504:"317eea67",5561:"ccdcfe19",5584:"18119080",5593:"b0646dc4",5602:"f00dd75d",5669:"3eaa6030",5731:"5eb9f620",5754:"4b45f380",5765:"0892524b",5766:"d5b9329e",5770:"95039b0f",5818:"bedc61b9",5819:"71b0832a",5854:"486a7cd7",5902:"731ca10e",5915:"c7673867",5920:"0a36dd52",5944:"22d6edd6",5949:"ee2f06fc",5962:"0727b30d",5980:"bb650dbb",6006:"3f0b500c",6032:"581ead12",6052:"5035c03e",6085:"a4fcde91",6088:"06a1480a",6103:"e2cc10f2",6107:"9d412ed8",6118:"849da262",6163:"2c9f6002",6200:"648dab39",6204:"6f92ff3e",6216:"b429e52f",6217:"5b92d535",6220:"e4f7642f",6231:"13724363",6242:"374ab957",6245:"6b631f40",6291:"ede7735b",6295:"cc0a3fe1",6303:"77ad1907",6370:"dc1d68c1",6407:"7db74501",6441:"56a8e480",6467:"6b6ecbec",6482:"a296ebb4",6544:"3ca83e90",6549:"08a8f76b",6552:"45caa5a8",6635:"f4594857",6681:"3b5d47f6",6690:"08017b19",6807:"9b34c123",6817:"3ff112b0",6842:"095d7e5f",6845:"c3e329ef",6867:"8df4eb1b",6869:"ba30b19c",6887:"57a7b03c",6914:"8268e047",6933:"d564972e",6950:"f508f4c1",6956:"31729c4f",6971:"71f64a7e",6991:"6631037c",7016:"9769dc71",7061:"ab44e075",7073:"8f95d40d",7096:"96be1ecb",7121:"ed3c9cd0",7129:"1a1a659f",7161:"57ebe089",7231:"04cd3b04",7250:"304e6a77",7279:"dd3a2df1",7282:"3df7814e",7284:"0eafa920",7301:"5c610a16",7375:"c1e52238",7393:"928716a0",7418:"c184744d",7422:"fa8a8445",7433:"32b3db1a",7453:"d8c131bc",7493:"5b3338a4",7501:"8dae17b1",7526:"bae16ff2",7527:"97573de6",7533:"dd5b101e",7569:"aaf3d327",7574:"c38f5cd4",7579:"41395731",7586:"ebf0df84",7588:"677ac94d",7594:"cfdb7c40",7595:"0a464f69",7616:"bd0b4d0d",7633:"3e2d6933",7648:"9e88b978",7651:"249a115e",7705:"d3a1c6a9",7810:"3e7b1d79",7839:"fc45d59a",7843:"7f461301",7899:"03b9472a",7906:"01071acb",7918:"dd037d35",7955:"677a9161",7973:"6fa9b23d",7980:"e904647e",7981:"726d5768",8055:"fc6d3ed6",8075:"2869ca07",8094:"5afc5d50",8121:"50407b83",8168:"ceecc5a2",8187:"96c5303e",8200:"eeaf9a78",8201:"7e3f7375",8225:"0bac7b9a",8245:"7d2508e8",8281:"01d912ff",8349:"145dd154",8375:"366cf6c0",8413:"7e49f8e4",8424:"16f7e680",8426:"1ee451da",8436:"bdb7ff98",8515:"4db020d4",8518:"e29e3484",8580:"74e8081f",8586:"545734d9",8593:"80b43dc0",8595:"f37e9dfb",8610:"4ea91ce1",8620:"d54efec2",8628:"522ff10b",8632:"15c28b44",8668:"41adbb48",8707:"1ab9e98c",8746:"08939e02",8812:"485bb540",8827:"677668ab",8845:"396c1338",8905:"e5dfa28a",8909:"9f3483a7",8927:"31813f51",8932:"9bf2d6e6",8971:"a7615653",8973:"33b9601d",9052:"45f4e320",9094:"43876fae",9103:"4d086881",9113:"a26f7025",9130:"dd7fb21a",9132:"cac4c9fd",9154:"cd847ed7",9158:"de431f76",9192:"b7e7b7d6",9208:"1ec8c594",9250:"ca435e25",9275:"a2c1aca7",9291:"83b3d417",9295:"821cef06",9304:"bf17aa57",9331:"bacae3f5",9336:"4dc46cc3",9362:"10dc4d32",9365:"7d0fafce",9437:"d3329347",9487:"69ce0a4f",9496:"14f7d53a",9547:"e43152de",9605:"3622ff29",9608:"7cfbb479",9611:"cddde400",9613:"b142b66b",9648:"889a70ee",9656:"487b00ba",9661:"0c4238df",9704:"c3753b4e",9706:"62a9dd0b",9732:"ec94f265",9736:"656a9feb",9798:"9d6b1369",9803:"8c577a15",9811:"9ed98597",9817:"cdaea024",9853:"5a6c5b45",9878:"b399aa16",9894:"64de0a23",9904:"87280bf7",9924:"8f479381",9933:"d4e7ac7d",9956:"b4084bbf",9973:"32d4a53a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="gosc:",r.l=(e,a,c,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+c){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+c),t.src=e),f[e]=[a];var l=(a,c)=>{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/gsoc/",r.gca=function(e){return e={17896441:"7918",18491626:"9052",28315084:"1989",29499316:"4784",49284236:"467",66259119:"9956",72129108:"6467",77565992:"557",96273901:"2351","0546864f":"2","6de855fa":"19",e6208298:"41","4986eea2":"110",bebf970d:"152","417aa6bf":"271","738251cf":"300","234d7abe":"309",b9fabb40:"329","0c97ea0a":"358","08063d3c":"374","99c6882e":"382","202295a4":"396","05f52370":"415","2ba61d9f":"422",d8299bcc:"448","008e2980":"474","8a76602d":"477","314d50dd":"503","8394d583":"515","3a01145e":"516",eafba1a1:"518",c3635ea8:"535","06949c14":"542","04e89960":"543","1374829e":"559","3d8d1b23":"566","824bed64":"628",d45f577f:"639","7cef544e":"654",c96f5699:"747",ff7b630c:"749",b574b54c:"759",f8db2e1d:"774","27bed139":"783","273188cf":"808","1bf58ced":"838",e1f55863:"845",ea7c83c3:"873",b063e761:"884","0d4d3e3e":"919",c928beef:"946",ae515947:"976","02c6e69e":"1019","46d3cdc1":"1044","43d0318c":"1052",eaed3ec9:"1068",fcdf28ae:"1098",cea8c87c:"1099","3e191a68":"1126","9dda5328":"1146",a3727c48:"1151","8164a1c9":"1156","16144a8e":"1162","7352dcc5":"1163",a7a07b17:"1175",f52ce5cf:"1199",ab61ba2a:"1218","182aacb7":"1285","1d690242":"1375","263ec88a":"1401",bc87ac89:"1404","6ae2d8c6":"1415",acecf23e:"1454",d4fb24e6:"1471","7dd73571":"1482",d3d51c24:"1504","6ef9a503":"1507","55e1dc83":"1519",a96aad4c:"1534","9bebd0d9":"1550","1e6a3c02":"1570",b3353e9f:"1632","9ea496a9":"1652","935a8806":"1670",d2adff87:"1676","8dfdbdf3":"1696",e172f0a4:"1713","9d90f292":"1728","32232bbe":"1752","9257ef45":"1836","9078adee":"1853","906c0998":"1856",ef97733e:"1864","8c9e2d39":"1908","7bbb3d8c":"1944","5f91dd84":"1964",ec165cb5:"1969","26c67a4b":"1992","4ba0f0ad":"2012","2fd5aa2e":"2037",da9c51e5:"2046",c54eae64:"2064","88c389e0":"2072","02279bec":"2075",b45e70c2:"2082","4c81a1bc":"2147","4c75aaac":"2148","33f65a48":"2159","4ef6f78e":"2200",cb93fa6f:"2202",f2d37c2d:"2258","4b1a116b":"2267","9f3eea2d":"2322",ccb19b74:"2327",b6185957:"2353","87bd4b70":"2357",a5379a4b:"2358","2a2d99b8":"2367",a451cadc:"2373",a1bf526c:"2396","99a3c1f5":"2404","0a23bdf5":"2405",a28343ab:"2429","988d06c4":"2448","4f00ca68":"2489",b971c4de:"2495","21e38604":"2503",e5846d8e:"2515","8535af15":"2523","3a3aa3f9":"2532","814f3328":"2535","47e56d82":"2574","6540906a":"2597","5efb33e7":"2664",d6a7f907:"2684",f2106231:"2709","6f131a30":"2723","07f088a0":"2744","55f0866e":"2759",ccbbc0e7:"2777","276db9af":"2801","2f73850d":"2855","9a78ab14":"2876","7d7964ab":"2894","0d837118":"3010","1f5250dc":"3056","2768a744":"3067",e31d5c21:"3069","9088ab58":"3077",a6aa9e1f:"3089",f1bc92c5:"3091","3fbbd0f4":"3157",dd17a75b:"3246","7e926307":"3282",fe9cdef2:"3284","21a8b2e2":"3334",a49d0071:"3349",f429ef64:"3367","4c8d4bbb":"3369","3a69aa9b":"3381","4f0b91aa":"3459","227cd700":"3545","9e4087bc":"3608",aba21aa0:"3629","39196de0":"3662",b86a477d:"3668","6b404b6c":"3693","9308303c":"3711","3720c009":"3751",c3ddd746:"3761","1a0d015f":"3803",d790d111:"3872","19a24217":"3915","9fa1d9d8":"3937","01a85c17":"4013","6b96ecc6":"4044","54fdf17a":"4064",ced8809e:"4077","97fcf222":"4101","8e0e4a7c":"4114","3a4ef734":"4156",c4f5d8e4:"4195","959dc270":"4211","76f3e499":"4330",f80c10fe:"4334",c11a5439:"4355",a94703ab:"4368","01dc97a1":"4390","69b10dc4":"4399","931055eb":"4406",c73c0369:"4414","6dbcda96":"4422","7bf50317":"4449","720c9529":"4472","60a71940":"4516",e26a7def:"4530","38e13263":"4539",f7a7bc28:"4548","345fcdca":"4560",efa436d5:"4576",baad1fb3:"4592",ad41fe21:"4604",f0c8bc5a:"4622",da5968f3:"4627","028ec75c":"4683",e790ab33:"4749","250dd90a":"4795",fe4c9b3e:"4804","6e6f23f0":"4807","578b1197":"4821","9f48525f":"4895","27ad8414":"4930",f7df880f:"4958",fc400b87:"4959","3997b891":"4963","366365ff":"4989","0e1bb287":"5005","37ce31a4":"5012",ca774ecf:"5022","81cc93ed":"5061",d8d04ad4:"5084","61dfadde":"5168","8d4bf5b6":"5197","5aaea04f":"5203","83e35eb5":"5205","7afcff4c":"5246","80da5d44":"5254","423d9b78":"5259",fd8633b3:"5264","8d1f374f":"5307","41f47303":"5351","5fb82b8f":"5376",aa55d53c:"5413",ed3f6656:"5420",fd55eaa5:"5430",de98e83e:"5442","1fe5bd65":"5473",fa6aa0c2:"5504","729b1647":"5561",aff6cca9:"5584","2ae875ed":"5593","090ff72c":"5602",e40930a3:"5669","97d08d26":"5731","5287211b":"5754","987068a2":"5765","1007bf61":"5766","3f6754b1":"5770","8e291ea1":"5818","2e7d2cd8":"5819","6accd836":"5854",d96c26a6:"5902","8782ef71":"5915",c33a6383:"5920","1b7c4551":"5944","2cb88a4b":"5949","1ae2f0ff":"5962",a7456010:"5980",e8b2c6f3:"6006","746dc50c":"6032","18bed81e":"6052",ffeff597:"6085",f6effec3:"6088",ccc49370:"6103",b7259baa:"6107",aa70e1cd:"6118",c07c256a:"6163",ac0d1e06:"6200",cc6478c2:"6204","2669c513":"6216","34f37eae":"6217",e2791b5f:"6220",fe019f80:"6231","06748857":"6242","38b01e93":"6245",bd3fab85:"6291",b80ef7b8:"6295","33c1fda8":"6303",c2c192ad:"6370",cb6d935a:"6407",d9a66a3b:"6441","52bd7b70":"6482","3cb67e34":"6544","3512fcc1":"6549","5493c0e6":"6552","66572fad":"6635","5bb82e60":"6681","2766d498":"6690",a0b98cfa:"6807",b2810712:"6817","3ba56a83":"6842","19cbecc5":"6845","2a0a0a98":"6867",fa19280c:"6869","8d2724bf":"6887","30d50cc3":"6914","31f75598":"6933","1dace55c":"6956",c377a04b:"6971",f245a7fb:"6991",bacc57da:"7016","72e6a776":"7061","0ec7c0b4":"7073",ce20785b:"7096","744e4968":"7121","186fa67e":"7129",e152e44f:"7161","3423283a":"7231","4f7200c3":"7250",ab75e5ae:"7279","5403b838":"7282",ed4d09e2:"7284","1f716dd2":"7301","41e635b0":"7375","061e6717":"7393","80ff2f3b":"7418",a66288bb:"7422",bf753beb:"7433","98bdcc53":"7453","050e991b":"7493","7c75bbc9":"7501","66defe51":"7526","799444a3":"7527",c891a8e6:"7533",c346eb76:"7569",c0952c37:"7574",cf0ccdf6:"7579","83ae4789":"7586","7391904a":"7588",ff825a2f:"7594",cb1a17e4:"7595","3065bd84":"7616","5fe8cd37":"7633","7656bcd9":"7648","3dacff87":"7651","634ef2d6":"7705","9ecc6cb6":"7810",e89c0067:"7839","8093b439":"7843","51844f27":"7899","1942e039":"7906",f5a24552:"7955","025be6d6":"7973","9be35a5c":"7980","2cb3fda1":"7981",f21dee58:"8055",b6701d2e:"8075","0fdd4856":"8094","7121b741":"8121",dd569b67:"8168",a9eff1ed:"8187",e2d7187d:"8200",e81b33ec:"8201","708890f5":"8225","5a8545f2":"8245",d0c53706:"8349",a2168394:"8375","43b51baa":"8413","2d9862c4":"8424","8218ea4c":"8426",e5add6da:"8436","519b30ff":"8515",a7bd4aaa:"8518",b76ea48f:"8580","89831ac9":"8586","662f7d94":"8593","617ad78a":"8595","6875c492":"8610",d098244b:"8620","764b643c":"8628",aae3891b:"8632",c69247d7:"8668",bc8f2e92:"8707","2078f3e4":"8746",c3075d90:"8812","9f6800f0":"8827","7481d326":"8845","27a55f2d":"8905",cf8e8c6d:"8909","09aa2e1a":"8927",df76972a:"8932",a94b7453:"8971","2e5c4e94":"8973","64da718d":"9094","32c02662":"9103","60d9b5fd":"9113","1ca4eec1":"9130","1e466064":"9132",a4428ea9:"9154","2a92eb23":"9158",c32e947c:"9192","36994c47":"9208",d3e40c0e:"9250",b955e9ef:"9275","552c3796":"9291",d8d678bc:"9295","0a823637":"9304","3383980b":"9331","8ece504f":"9336",fcea6667:"9362","28550c33":"9365","864a049b":"9437",ced86b15:"9487","302dc6c1":"9496","961aaf41":"9547","21d6e7e7":"9605",c55b67b4:"9608",d508c172:"9611",c0b1f1ad:"9613",b55f1bae:"9648","204f1452":"9656","5e95c892":"9661","2c2af5ec":"9704","2d1b92cb":"9706","1185f44c":"9732","8231cc4a":"9736",e8009bb7:"9798","23cfc9f7":"9803","959de7fa":"9811","6955c460":"9817","1228fbea":"9853","0e91f5a0":"9878","78054b94":"9894",bb37066e:"9904",df203c0f:"9924",f56a1479:"9933",aea84821:"9973"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},c=self.webpackChunkgosc=self.webpackChunkgosc||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html new file mode 100644 index 0000000000..31a5629b11 --- /dev/null +++ b/blog/archive/index.html @@ -0,0 +1,14 @@ +<!doctype html> +<html lang="en" dir="ltr" class="plugin-blog plugin-id-default" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.3.2"> +<title data-rh="true">Archive | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 0000000000..3d9f3bdb42 --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,67 @@ + + + https://fossology.github.io/gsoc/blog + GSoC projects at FOSSology Blog + 2021-06-23T00:00:00.000Z + https://github.com/jpmonette/feed + + GSoC projects at FOSSology Blog + https://fossology.github.io/gsoc/img/favicon.ico + + <![CDATA[New build system - Week 3]]> + https://fossology.github.io/gsoc/blog/cmake-cweek3 + + 2021-06-23T00:00:00.000Z + + Attendees + +

Week 2 Progress

+
    +
  1. Version file Implementation
  2. +
  3. Initial functions on obtaining commit and branch info
  4. +
  5. To test the current progress, follow the instructions here
  6. +
+

Discussions

+
    +
  • +

    What is the regex expression used for obtaining version information?

    +
      +
    • The regex has recently been modified to cover recent versions. The latest form is as below: +
      ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*
      +
    • +
    • You can also try alternatives to regex if possible for CMake.
    • +
    +
  • +
  • +

    Should I use git describe --tags or git describe --always HEAD for obtaining version information?

    +
      +
    • In FOSSology we always use :code:git describe --tags, no exception whatsoever.
    • +
    +
  • +
  • +

    CMake provides a preset configuration for the install path on GNU systems, you can see the description here based on the configuration suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. +So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.

    +
      +
    • Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under /usr/local/share/fossology/ with their individual folders instead of going to /usr/local/bin/.
    • +
    • If the same results can be achieved by using the CMAKE_INSTALL_<dir> and CMAKE_INSTALL_PREFIX then yeah, it will be preferred.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Try adding the version and commit hash info.
  • +
  • Implement writing version files for each build.
  • +
]]>
+ + Avinal + https://github.com/avinal/ + + + +
+
\ No newline at end of file diff --git a/blog/cmake-cweek3/index.html b/blog/cmake-cweek3/index.html new file mode 100644 index 0000000000..7cec76f6ea --- /dev/null +++ b/blog/cmake-cweek3/index.html @@ -0,0 +1,57 @@ + + + + + +New build system - Week 3 | GSoC projects at FOSSology + + + + + +

New build system - Week 3

· 2 min read
Avinal
Build system

Attendees

+ +

Week 2 Progress

+
    +
  1. Version file Implementation
  2. +
  3. Initial functions on obtaining commit and branch info
  4. +
  5. To test the current progress, follow the instructions here
  6. +
+

Discussions

+
    +
  • +

    What is the regex expression used for obtaining version information?

    +
      +
    • The regex has recently been modified to cover recent versions. The latest form is as below: +
      ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*
      +
    • +
    • You can also try alternatives to regex if possible for CMake.
    • +
    +
  • +
  • +

    Should I use git describe --tags or git describe --always HEAD for obtaining version information?

    +
      +
    • In FOSSology we always use :code:git describe --tags, no exception whatsoever.
    • +
    +
  • +
  • +

    CMake provides a preset configuration for the install path on GNU systems, you can see the description here based on the configuration suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. +So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.

    +
      +
    • Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under /usr/local/share/fossology/ with their individual folders instead of going to /usr/local/bin/.
    • +
    • If the same results can be achieved by using the CMAKE_INSTALL_<dir> and CMAKE_INSTALL_PREFIX then yeah, it will be preferred.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Try adding the version and commit hash info.
  • +
  • Implement writing version files for each build.
  • +
+ + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000000..742ed6a0f9 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,26 @@ + + + + + +Blog | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml new file mode 100644 index 0000000000..69e1180885 --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,65 @@ + + + + GSoC projects at FOSSology Blog + https://fossology.github.io/gsoc/blog + GSoC projects at FOSSology Blog + Wed, 23 Jun 2021 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[New build system - Week 3]]> + https://fossology.github.io/gsoc/blog/cmake-cweek3 + https://fossology.github.io/gsoc/blog/cmake-cweek3 + Wed, 23 Jun 2021 00:00:00 GMT + + Attendees + +

Week 2 Progress

+
    +
  1. Version file Implementation
  2. +
  3. Initial functions on obtaining commit and branch info
  4. +
  5. To test the current progress, follow the instructions here
  6. +
+

Discussions

+
    +
  • +

    What is the regex expression used for obtaining version information?

    +
      +
    • The regex has recently been modified to cover recent versions. The latest form is as below: +
      ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*
      +
    • +
    • You can also try alternatives to regex if possible for CMake.
    • +
    +
  • +
  • +

    Should I use git describe --tags or git describe --always HEAD for obtaining version information?

    +
      +
    • In FOSSology we always use :code:git describe --tags, no exception whatsoever.
    • +
    +
  • +
  • +

    CMake provides a preset configuration for the install path on GNU systems, you can see the description here based on the configuration suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. +So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.

    +
      +
    • Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under /usr/local/share/fossology/ with their individual folders instead of going to /usr/local/bin/.
    • +
    • If the same results can be achieved by using the CMAKE_INSTALL_<dir> and CMAKE_INSTALL_PREFIX then yeah, it will be preferred.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Try adding the version and commit hash info.
  • +
  • Implement writing version files for each build.
  • +
]]>
+ coding-week + cmake +
+
+
\ No newline at end of file diff --git a/blog/tags/cmake/index.html b/blog/tags/cmake/index.html new file mode 100644 index 0000000000..78206c5925 --- /dev/null +++ b/blog/tags/cmake/index.html @@ -0,0 +1,26 @@ + + + + + +One post tagged with "cmake" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/blog/tags/coding-week/index.html b/blog/tags/coding-week/index.html new file mode 100644 index 0000000000..98366e91f3 --- /dev/null +++ b/blog/tags/coding-week/index.html @@ -0,0 +1,26 @@ + + + + + +One post tagged with "coding-week" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html new file mode 100644 index 0000000000..97f69034d7 --- /dev/null +++ b/blog/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Tags | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2021/buildsystem/build/index.html b/docs/2021/buildsystem/build/index.html new file mode 100644 index 0000000000..0eabee477c --- /dev/null +++ b/docs/2021/buildsystem/build/index.html @@ -0,0 +1,73 @@ + + + + + +Building FOSSology | GSoC projects at FOSSology + + + + + +

Building FOSSology

Install CMake if you haven't already (minimum 3.10 required)

+
    sudo apt install CMake # for Debian based systems
+
    +
  1. +

    Since the new build system is still in review. You must fork +FOSSology and pull the +#2075 pull +request branch. Once you are in FOSSology root, run these commands.

    +
    git fetch https://github.com/avinal/fossology avinal/feat/buildsystem:buildsystem
    git checkout buildsystem
    +
  2. +
  3. +

    The first step towards building is to create a temporary directory +for storing intermediate files and build artifacts. By convention we +use a directory named build, but you can use any +name. (NOTE: For testing do not use other names)

    +
    mkdir build
    cd build
    +
  4. +
  5. +

    In the next steps, we will configure the CMake project and generate +the required configurations. You can use several flags to control +the build. Given below are the flags available for this project.

    +
  6. +
+
CMake FlagsDescriptionDefault
-DCMAKE_INSTALL_PREFIX=<path>Sets the install prefix./usr/local
-DAGENTS="agent1;agent2..."Only configure these agents.ALL AGENTS
-DOFFLINE=<ON/OFF>Controls vendor generation, ON=NOOFF
-DCMAKE_BUILD_TYPE=<type>- Debug, Release, RelWithDebInfo,MinSizeRelDebug
-DTESTING=<ON/OFF>Controls testing config generationOFF
-DMONOPACK=<ON/OFF>Package adj2nest and ununpack seperatelyOFF
-GNinjaUse Ninja instead of Unix MakefilesUnix MakeFiles
+

There are lots of inbuilt CMake command-line options you can see them in the official documentation. Once you have chosen your flags we can now configure the project using the following commands.

+
# From build folder
cd <name-of-build-directory>
cmake <flags> ..
+

4 . The next step is to build the project. You can use parallel jobs to build faster. For more options you can type cmake --help or make --help or ninja --help.

+
# Common build command for all generators,
# Default number of parallel builds depends on generator used
cmake --build . --parallel <no-of-processes>

# For Unix Makefiles, no parallel build by default
make -j <no-of-processes>

# For Ninja, 8+ parallel build by default (depends on system)
ninja -j <no-of-processes>
+
    +
  1. +

    Installing is also as easy as building. You can choose to install +only certain components even if you have built the whole project. If +you directly invoke the install command without building the +project, it will automatically build the project first.

    +
    # For Unix Makefiles
    make install

    # For Ninja
    ninja install
    +
  2. +
  3. +

    While testing has some issues, but most of the testing is working +fine. For now, you must build and run any test from the FOSSology +root directory only. You can choose to configure a single agent if +you want to test one agent only. See ctest --help for +controlling test runs.

    +
    # Common testing command
    ctest --parallel <no-of-processes>

    # For Unix Makefiles
    make test

    # For Ninja
    ninja test
    +
  4. +
  5. +

    You can package FOSSology, the packaging currently lacks copyright +and conf files. But for testing purposes, you can use the following +commands. Similar to installing, if you run the package command +without building the project, it will automatically build the +project first. See cpack --help for more packaging +options.

    +
    # Common testing command
    cpack

    # For Unix Makefiles
    make package

    # For Ninja
    ninja package
    +
  6. +
  7. +

    Some targets are not built by default, you can manually trigger their build by running make ,target-name> or ninja <target-name>. You can list all the targets by running make help or ninja -t targets.

    +
  8. +
  9. +

    You can also use CMake EXtension for VS Code for seamlessly populating and building targets. Can also use gitpod.io for quick setup

    +
  10. +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/final-evaluation/index.html b/docs/2021/buildsystem/final-evaluation/index.html new file mode 100644 index 0000000000..5cea20ec12 --- /dev/null +++ b/docs/2021/buildsystem/final-evaluation/index.html @@ -0,0 +1,257 @@ + + + + + +Final Evaluation | GSoC projects at FOSSology + + + + + +

Final Evaluation

The CMake Build system

+

FOSSology is quite an old and mature project. The project has been using +bare metal Makefiles. As the project is growing with new agents and +modernization it was required to have a modern build system.

+

The FOSSology is a suite of well-integrated and synchronized subprojects +(called agents) written in C, C++, and PHP. Most of the major agents are +in C, C++ and that made CMake an obvious choice for a new build system +for FOSSology. CMake is a versatile set of build, test, and packaging +tools and is the most popular choice of C/C++ developers. CMake can be +extended to create a build system for other languages too via custom +scripts.

+

GitHub Actions CI/CD

+

Since the FOSSology project moved on Github, it has used only the free +Travis CI service for OSS projects. At the time of writing the Travis CI +has reduced its free tier CI services. GitHub Actions provides faster +builds. Since GitHub Actions is a fully managed service by GitHub, we +don't need to know how to scale and operate the infrastructure to run +it.

+

It is straightforward to use with GitHub because when we fork a +repository, the actions automatically get forked. This allows you to +test and build projects very efficiently and even run them closer to the +developer. Also, you have readily available access to the GitHub API, +making it more popular among developers.

+

Improvements over previous build system and CI

+

The new build system and CI brings a lot of improvements and features. +The list below describes them.

+
    +
  • CMake enforces out-of-source builds. This was already possible with +the previous build system but not a strict requirement. This feature +keeps the source code clean and makes cleaning the build artifacts +easy. (Just remove the build folder :)
  • +
  • One of the major improvements over the previous build system is +faster build times. CMake generates parallel build-enabled +configurations for all generators. In our tests, the new build +system is at least twice as fast as the previous one. With further +improvement in configuration, we will be able to further cut the +build times.
  • +
  • Previously FOSSology can only be built using Unix Makefiles. With +CMake, we can now use many other popular generators such as Ninja.
  • +
  • Now it is also very flexible to choose different compilers. This +will help support more platforms and architecture in the future. As +of now, we are experimenting with Clang compilers.
  • +
  • FOSSology is quite an old project and a lot of agent testing code +was written in the last decade. Initially, none of them were +compatible with the new build system, but we were able to hack most +of the test code using better-improved methods. Test times have also +improved.
  • +
  • Migrating from Travis CI to GitHub Actions was another big move and +for the most part, it removes the dependency on a third-party CI +service. Along with that GitHub Actions provides better build times, +tons of new features, and better integration with other GitHub +services.
  • +
+

Deliverables

+ +

CMake Build System Tasks

+
#AgentsBuildInstallTestingPackagingRemarks
1adj2nestYESYES-YES-
2bucketsYESYES-YES-
3cliYESYESFunctionalYES-
4copyrightYESYESFunctional, UnitYES-
5debugYES-YES-
6deciderYESYESFunctional, UnitYES-
7deciderjobYESYESFunctionalYES-
8delagentYESYESFunctional, UnitYES-
9demomodYESYESNONO(Not Used)
10example_wc_agentYESYESNONO(Not Used)
11clibYESYESFunctional, UnitYES-
12cpplibYESYESUnitYES-
13phplibYESYESFunctional, UnitYES1 functional test needs fix
14maintagentYESYES-YES-
15mimetypeYESYESFunctional, UnitYES-
16monkYESYESFunctional, UnitYES-
17ninkaYESYESNONO(Deprecated)
18nomosYESYESFunctional, UnitYES-
19ojoYESYESFunctional, UnitYES1 functional test needs fix
20pkgagentYESYESFunctional, UnitYES-
21readmeossYESYES-YES-
22regexscanYESYES-NO(Deprecated)
23reportImportYESYES-YES-
24reuserYESYESFunctionalYES-
25resoYESYES-YES-
26schedulerYESYESNOYESTests needs fix
27softwareHeritageYESYES-YES-
28spashtYESYES-YES-
29spdx2YESYESFunctional, UnitYES1 Test failing in CI
30unifiedreportYESYESFunctionalYES-
31ununpackYESYESFunctionalYESUnit tests needs fix
32wget_agentYESYESFunctional, UnitYES-
32wwwYESYESNOYES-
+

GitHub Actions CI Tasks

+
#CI TasksStatus
1buildAdded Ubuntu 20.04 GCC 8, 9 and Clang, GCC 7 not working
2c/cpp unit testAdded, delagent, scheduler and ununpack test not working
3phpunit testsAdded, delagent and scheduler test not working
4workflow cahchingNot implemented
5source installNot implemented
+

How it works and how to use it?

+

The new build system retains the modular and hierarchical structure of +the previous build system. On the other hand, the new build system +provides several new flags to control the build. The new build system +forces out-of-source build instead of the previous in-source builds. +This keeps the source clutter-free and reduces the chance of +accidentally deleting source files. Testing still needs some in-source +artifacts, this will be solved once all the tests are fixed according to +the new build system.

+

Each agent is a complete CMake sub-project with its independent +configuration for building, installing, and testing. That means a single +agent can be built and installed separately and even removed from the +default build without breaking other builds. The directory structure is +as below.

+
.
├── build # temporary directory for build artifacts
├── cmake # CMake modules for FOSSology
│ ├── FoPackaging.cmake # CMake Packaging configurations
│ ├── FoUtilities.cmake # Custom CMake utilities
│ ├── FoVersionFile.cmake # VERSION version.php CMake template file
│ ├── SetDefaults.cmake # CMake defaults for this project
│ ├── TestInstall.make.in # Template makefile for install during tests
│ └── VERSION.in # VERSION file template
├── src
│ ├── agent-1 # Agent sub-project
│ │ ├── agent # Agent's source code directory
│ │ │ ├── agent-source-code
│ │ │ └── CMakeLists.txt
│ │ ├── agent_tests # Agent's test directory
│ │ │ ├── Unit
│ │ │ ├── Functional
│ │ │ └── CMakeLists.txt
│ │ ├── ui # Agent's UI source code
│ │ │ ├── templates
│ │ │ └── agent-ui-code
│ │ └── CMakeLists.txt # Agent's top-level CMake configuration
: :
│ ├── other agents
: :
│ └── CMakeLists.txt # Source intermediate CMake configuration
:
├── other directories and files
:
└── CMakeLists.txt # FOSSology Top-level CMake configuration
+

The cmake directory contains customized CMake modules and +templates for FOSSology. This directory is required for all the +operations. The general workflow of the new build system as well as how +to use it as described below.

+
    +
  1. +

    Since the new build system is still in review. You must fork +FOSSology and pull the +#2075 pull +request branch. Once you are in FOSSology root, run these commands.

    +
    git fetch https://github.com/avinal/fossology avinal/feat/buildsystem:buildsystem
    git checkout buildsystem
    +
  2. +
  3. +

    The first step towards building is to create a temporary directory +for storing intermediate files and build artifacts. By convention we +use a directory named build, but you can use any +name. (NOTE: For testing do not use other names)

    +
    mkdir build
    cd build
    +
  4. +
  5. +

    In the next steps, we will configure the CMake project and generate +the required configurations. You can use several flags to control +the build. Given below are the flags available for this project.

    +
  6. +
+
CMake FlagsDescriptionDefault
-DCMAKE_INSTALL_PREFIX=<path>Sets the install prefix./usr/local
-DAGENTS="agent1;agent2..."Only configure these agents.ALL AGENTS
-DOFFLINE=<ON/OFF>Controls vendor generation, ON=NOOFF
-DCMAKE_BUILD_TYPE=<type>- Debug, Release, RelWithDebInfo,MinSizeRelDebug
-DTESTING=<ON/OFF>Controls testing config generationOFF
-DMONOPACK=<ON/OFF>Package adj2nest and ununpack seperatelyOFF
-GNinjaUse Ninja instead of Unix MakefilesUnix MakeFiles
+

There are lots of inbuilt CMake command-line options you can see them in the official documentation. Once you have chosen your flags we can now configure the project using the following commands.

+
# From build folder
cd <name-of-build-directory>
cmake <flags> ..
+

4 . The next step is to build the project. You can use parallel jobs to build faster. For more options you can type cmake --help or make --help or ninja --help.

+
# Common build command for all generators,
# Default number of parallel builds depends on generator used
cmake --build . --parallel <no-of-processes>

# For Unix Makefiles, no parallel build by default
make -j <no-of-processes>

# For Ninja, 8+ parallel build by default (depends on system)
ninja -j <no-of-processes>
+
    +
  1. +

    Installing is also as easy as building. You can choose to install +only certain components even if you have built the whole project. If +you directly invoke the install command without building the +project, it will automatically build the project first.

    +
    # For Unix Makefiles
    make install

    # For Ninja
    ninja install
    +
  2. +
  3. +

    While testing has some issues, but most of the testing is working +fine. For now, you must build and run any test from the FOSSology +root directory only. You can choose to configure a single agent if +you want to test one agent only. See ctest --help for +controlling test runs.

    +
    # Common testing command
    ctest --parallel <no-of-processes>

    # For Unix Makefiles
    make test

    # For Ninja
    ninja test
    +
  4. +
  5. +

    You can package FOSSology, the packaging currently lacks copyright +and conf files. But for testing purposes, you can use the following +commands. Similar to installing, if you run the package command +without building the project, it will automatically build the +project first. See cpack --help for more packaging +options.

    +
    # Common testing command
    cpack

    # For Unix Makefiles
    make package

    # For Ninja
    ninja package
    +
  6. +
+

Known Issues and Drawbacks

+

Although the transition from Makefiles to CMake and Travis CI to GitHub +Actions is almost complete and working as expected. But it is not free +of drawbacks and issues. This section outlines the known issues at the +time of writing.

+
    +
  • Coverage builds may fail with linking errors.
  • +
  • Packaging prefix is the same as the install prefix. This requires +the developer to set the install prefix manually before packaging to +produce packages with the correct directory structure.
  • +
  • Testing and packaging must be used from the FOSSology root +directory. Not doing so may or may not configure the project as +intended.
  • +
  • Previously tests were written hardcoded for the Makefiles. But new +build system requires all artifacts to be generated in a separate +directory. This required me to add symbolic links wherever a +generated script or file is expected. Tests can still leave some +artifacts inside source folders.
  • +
  • There is no easy way to install a particular agent from the +FOSSology root directory.
  • +
  • Packages don't contain copyright, readme, and license files. CMake +doesn't provide a way to include these files. This is being tracked +by issue +#21832.
  • +
  • While packaging the symbolic links may or may not be dereferenced +and hence results in copying the folder too in the target directory.
  • +
  • Running tests locally may require switching to fossy +user.
  • +
  • While configured for testing, it may give permission errors.
  • +
  • Scheduler, Ununpack, and Delagent unit and functional tests are not +working. I have added an issue +#2084 to +track the progress on fixing these tests.
  • +
  • CMake doesn't generates uninstall targets. The closest thing to +uninstall is this +snippet. +This will be later added to the FOSSology.
  • +
+

Challenges Faced

+

While this whole project was challenging, some aspects of it were +unforeseen and more challenging. When I decided to go on with this +project I just had enough CMake knowledge to write a configuration for a +very small project. I had never used CMake on this big scale. On the +other side, the FOSSology community is largely unknown to CMake so for +all of us it was learn, practice, and implement. With support from +mentors, I was able to overcome this challenge with flying colors.

+

The other challenge was to understand the old build system, how they are +all connected and what is the flow. The complexity can be imagined by +the fact that the most of code and configurations were written in the +decade before the last decade and haven't changed much since then.

+

The most challenging task was to make tests work with the new build +system. Since tests were mostly hardcoded and the new build system +refactored many of the files and directory, the tests were failing +initially. The testing part took me the most time. All thanks to my +mentor Gaurav and my friend Sarita I was able to hack them to suit the +new build system.

+ +
    +
  • Fix FOSSology agent tests issue +#2084
  • +
  • feat(CI): Migrate API docs generation and deployment to GitHub +Actions pull request +#1917
  • +
  • feat(CI): Migrate Static Checks and Analysis to GitHub Actions from +Travis CI #1919
  • +
+

Future Development Plans

+

There is a lot to do with the new build system and CI and it will +probably take a year or to reach a maturity point. I was able to meet +most of the goals but some of them are remaining.

+
    +
  • Fix the tests, probably renovate them from the ground up.
  • +
  • Find a hack for packaging problems.
  • +
  • Improve and optimize the build.
  • +
  • Modernise the source code, remove old, bloated code and replace them +according to new standards.
  • +
+

What did I learn from this project?

+

This Google Summer of Code was the busiest time of my life for all good +reasons. I learned a lot about license compliance and how it all works +in the software industry. The next big thing is CMake. As I mentioned I +was just a novice user of CMake. Now I am confident that given any other +large project I will be able to migrate it/improve it. I got to learn +PHP, of which I did not know a single word before GSoC. And finally, I +learned about packing and testing. I had these courses but implementing +them myself and fixing them was a wholesome experience.

+

Other than that I improved on my communication and presentation skills. +Collaborating with fellow participants was one of the great things that +happened during GSoC.

+

Acknowledgments

+

Google Summer of Code is the best thing that has happened to me this +year so far. Although there are numerous people to say thanks to, I want +to mention key people who were my motivation and support during this +period.

+

First of all, I want to thank and appreciate my mentors Gaurav Mishra, Michael C. Jaeger, Anupam Ghosh, and Shaheem Azmal M MD. Without the help and support from them, all this would not have been possible. They are very polite, knowledgeable, and helpful.

+

I want to thank my friend and fellow participant Sarita. Thank you for being a collaborator, support, and motivation for attempting GSoC.

+

Finally, I want to thanks, my family and friends. I got to meet many awesome developers as my fellow participants from around the world, I wish we will do more collaboration in the future.

+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/first-evaluation/index.html b/docs/2021/buildsystem/first-evaluation/index.html new file mode 100644 index 0000000000..0aa102b8b5 --- /dev/null +++ b/docs/2021/buildsystem/first-evaluation/index.html @@ -0,0 +1,43 @@ + + + + + +First Evaluation | GSoC projects at FOSSology + + + + + +

First Evaluation

Updates

+

In the first phase of GSoC 2021 @ The FOSSology Project, I have completed the desired milestone. As of now, FOSSology can be installed completely via CMake and most of the components are working fine in initial testing.

+

List of tasks completed

+
    +
  • Added CMake build configurations for all the C/C++ agents for executables, libraries, and coverages
  • +
  • Added CMake install configuration for all C/C++ and PHP agents as well as extra components
  • +
  • Reworked the shell scripts and generated source files to make them more compatible with CMake as well as better in terms of overall compatibility with the latest tools.
  • +
+

Improvements

+
    +
  • The new CMake build architecture is much more flexible to changes as compared to hard-coded Makefiles.
  • +
  • CMake generated configurations support parallel build by default, this has led to significant improvement in build time. CMake generated configuration can now build the whole project within 2 mins or even faster on more powerful CPUs (Both Ninja and Makefiles with the same number of parallel processes) compared to 4-5 minutes previously. (These results are averaged from initial testing of new build architecture)
  • +
  • CMake supports out-source builds by default, which means the source folders are not touched/modified while building, all build files and residuals get their separate folder and the source tree can be cleaned easily.
  • +
  • Developers can now opt for a long list of generators to build FOSSology e.g Makefiles, Ninja as per their needs.
  • +
+

How to test

+

Instructions to test the new Build system is in this wiki. as well as in Building FOSSology page.

+

Known Issues

+
    +
  • There may be a permission issue with some generated sources while building. This can be bypassed for now by running the sudo chmod +x <filename> command.
  • +
  • Coverage builds may fail.
  • +
+

Postponed Tasks

+
    +
  • configuration for tests are skipped for now
  • +
+

Work in Progress

+
    +
  • Currently, I am working on packaging the FOSSology with CMake.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/index.html b/docs/2021/buildsystem/index.html new file mode 100644 index 0000000000..f0b46b644f --- /dev/null +++ b/docs/2021/buildsystem/index.html @@ -0,0 +1,26 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Avinal Kumar

+

Contact info

+ +

Build System

+

FOSSology’s build system is based on multilevel Make files that work together to supply a build infrastructure for the project. Although make is a robust build system but it is too outdated and slow compared to modern build systems. Although build configurations are not supposed to be updated as often as source files, there are few noticeable problems with make. This project will migrate the build system to a more user-friendly and popular CMake.

+

Workflow (Continuous Integration)

+

FOSSology has been using free Travis CI for all its continuous builds, tests, and deployment purposes throughout the organization. GitHub Actions supplies better integration, faster build times and is versatile in many other ways. This project aims at improving the overall CI/CD for the project as well as upgrade the targets and virtual platforms to the latest compatible versions.

+

Check out Building FOSSology to know how to build FOSSology with CMake.

+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-05-28/index.html b/docs/2021/buildsystem/updates/2021-05-28/index.html new file mode 100644 index 0000000000..7605e2f237 --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-05-28/index.html @@ -0,0 +1,80 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(May 28th, 2021)

+

This meeting is the first of the recurring weekly GSoC project meetings. In this meeting the current status of progress according to the proposal was discussed and some topics related to current build system based on Make and the new build system based on CMake.

+

Attendees

+ +

Discussions

+
    +
  • The current progress according to schedule +
      +
    • The blog on CMake is on the way.
    • +
    • I have gone through the Makefiles to get a rough estimate of the work.
    • +
    • Published the GSoC project blog
    • +
    +
  • +
  • How are agents related to each other in terms of compilation? +
      +
    • Each agent is independently compiled and generally use the source code in lib folder. If any agent needs other agent then it uses the library files instead.
    • +
    +
  • +
  • Does every agent have a executable and library? +
      +
    • Not necessarily, there are agents written in C, C++ and PHP, depending on what is the use the configuration can be different.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • It would be better if I get started by creating CMake configuration for any of the agent.
  • +
  • Fork and create a branch for development and mention the same in blog or wiki.
  • +
  • Add a timeline section in blog or wiki as provided in the project proposal.
  • +
  • Publish the CMake introductory blog.
  • +
  • Prepare a prototype/plan for next week.
  • +
  • Find out the best alternative for handling the global variables.
  • +
+

Meeting 2

+

(June 4th, 2021)

+

In this second meeting points over default Makefiles were discussed. Ninja can be used as an alternative for Makefiles.

+

Attendees

+ +

Discussions

+
    +
  • What is the use of Makefile.deps and Makefile.process files? +
      +
    • Makefile.deps consists of many used and unused snippets. These snippets help setup the build and test environment for fossology. Since there are many directories that are hardcoded, special care is required while replacing this file.
    • +
    • Makefile.process generates a master variable from list of variables. It assists the script in Makefile.conf file. These files together generate a list of variables that can be used throughout the build process.
    • +
    +
  • +
  • The build can be made faster using Ninja instead of Make.
  • +
  • Ninja supports parallel builds by default.
  • +
  • Print the flags used once the CMake configuration is working. That will help us debug the process.
  • +
+

Conclusion and Further Plans

+
    +
  • Write a CMakeLists.txt for lib.
  • +
  • Push the working branch and update the link either on wiki or blog.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-06-11/index.html b/docs/2021/buildsystem/updates/2021-06-11/index.html new file mode 100644 index 0000000000..08db2b94f3 --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-06-11/index.html @@ -0,0 +1,90 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Meeting 3

+

(June 11th, 2021)

+

In this third meeting, I demoed the working build system, currently building executables and libraries, a lot of queries were resolved about writing version files and attaching commits and hashes to the build.

+

Attendees

+ +

Week 1 Progress

+

This week was mainly focused on analyzing the previous build system and framing a skeleton for the new build system.

+
    +
  • Created the build configuration analysis table.
  • +
  • Completed the basic skeleton.
  • +
  • Completed the CMake configuration for libraries
  • +
  • To test the current progress, follow the instructions here
  • +
  • Test on GitPod right inside your browser.
  • +
+

Discussions

+
    +
  • What are the flags needed for C and C++? +
      +
    • The -g flag enables debug.
    • +
    • The -O2 flag is used for optimizing.
    • +
    • In FOSSology these two flags are used together by default for all build purposes because it is desired to have an optimized binary but some level of debugging information is also desired.
    • +
    +
  • +
  • The Makefiles have some compile-time preprocessor macro definitions that need to be passed to each build. The Makefiles have all the path values passed as '"..value.."' format (double quote inside single quotes), however the commands produced by CMake have \"..value..\" format (escaped double quotes). Are they the same or it needs to be changed? +
      +
    • Currently, there is nothing to determine if they work the same or not, but if the compiler would not have accepted them then, it would have thrown an error. As long it is working these should be fine, but will need to be checked in the final build.
    • +
    +
  • +
  • Are all libraries in FOSSology static? +
      +
    • No, by default no library is static. The format lib<library-name>.a is confusing but no need to worry about it for now, if this is working fine then no problem.
    • +
    • In general, this format denotes a static library.
    • +
    +
  • +
  • How to add the version and commit information to the builds? +
      +
    • I have gone through this thread on CMake's official mailing list. And they have suggested a lot of options, but unable to decide which option to use. Gaurav said he will see into this thread and for now, I should try writing a shell script and test if that works.
    • +
    • Same can be tested for the version too.
    • +
    +
  • +
  • What is _squareVisitor.h.pre used for? +
      +
    • They are used to generate source code at build time.
    • +
    +
  • +
  • Is there any inheritance structure in the build system? (Michael) +
      +
    • For now, I am writing separate modules for the default operations needed in most configurations. The final structure will be decided in the final build.
    • +
    +
  • +
  • Where are all the binaries produced? (Gaurav) +
      +
    • They are located in the build folder with the same directory structure as the original project.
    • +
    • While installing the same will be used and none of the source folders are ever disturbed.
    • +
    +
  • +
  • Are all flags taken from the Makefiles itself? (Anupam) +
      +
    • Yes and No, there are some flags that CMake uses by default, they can be altered by changing the value for CMAKE_C_FLAGS and CMAKE_CXX_FLAGS. One can also append their flags. Since not all compilation requires all the flags, I have taken the default one into cache variables, and others are appended while configuring for a particular project.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Try the monkbulk in monk and makefile.sa in nomos.
  • +
  • Try adding the version and commit hash info.
  • +
  • Implement writing version files for each build.
  • +
  • Add proper comments in the CMakeLists.txt files.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-06-18/index.html b/docs/2021/buildsystem/updates/2021-06-18/index.html new file mode 100644 index 0000000000..f796312fbf --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-06-18/index.html @@ -0,0 +1,74 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Meeting 4

+

(June 18th, 2021)

+

In this fourth meeting, a lot of questions were discussed related to the existing build system and what things we have to drop or modify.

+

Attendees

+ +

Week 2 Progress

+

This week was mainly focused on creating CMake configuration for libraries, executables and coverage.

+
    +
  • Added the configuration for libraries and executables
  • +
  • Resolved parallel build problems with coverage configs
  • +
  • Implemented generated source configurations
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • Should I generalize the coverage build for each agent? +
      +
    • Coverage depends on the agent_tests and may or may not be available for all the agent. So follow the Makefiles and add the configuration as it is in them.
    • +
    • Leave coverage for them who don't have it already in their Makefiles.
    • +
    +
  • +
  • What are $(AGENTLIB) $(REPO) $(DB) in the Makefiles? +
      +
    • They seems to be remains of previous build configuration. Until there is a problem, ignore if you can not find the definitions.
    • +
    +
  • +
  • Can I refactor the directory structure of nomos and monk, it will help keep the source code generation out of source directory? +
      +
    • Yeah, sure. As long as it does not affects the working of the project you may refactor them to suit your needs.
    • +
    +
  • +
  • I am facing problems with due to headers included using angled brackets, can I change them to double quotes instead? +
      +
    • Yeah that would be okay, anyway the general practice is to add user header files using double quotes.
    • +
    +
  • +
  • Using -Werror flag in regexscan causes build to fail, should I remove it? +
      +
    • Since regexscan is not the part of default build you can ignore it.
    • +
    +
  • +
  • In scheduler source code the preprocessor macro value for FOSSDB_CONF is different from that in lib, is that correct? +
      +
    • We have made some changes, please change it to the same as in lib.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Try adding the version and commit hash info.
  • +
  • Implement writing version files for each build.
  • +
  • Add proper comments in the CMakeLists.txt files.
  • +
  • Complete the coverage build configuration
  • +
  • Start implementing the install configurations
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-06-22/index.html b/docs/2021/buildsystem/updates/2021-06-22/index.html new file mode 100644 index 0000000000..d1ad6575b5 --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-06-22/index.html @@ -0,0 +1,62 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Meeting 5

+

(June 22nd, 2021)

+

In this fifth meeting, question related to versioning and obtaining commit hash were discussed, this was a short meeting.

+

Attendees

+ +

Week 3 Progress

+
    +
  • Version file Implementation
  • +
  • Initial functions on obtaining commit and branch info
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • +

    What is the regex expression used for obtaining version information?

    +
      +
    • +

      The regex has recently been modified to cover recent versions. The latest form is as below:

      +
      ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*
      +
    • +
    • +

      You can also try alternatives to regex if possible for CMake.

      +
    • +
    +
  • +
  • +

    Should I use git describe --tags or git describe --always HEAD for obtaining version information?

    +
      +
    • In FOSSology we always use git describe --tags, no exception whatsoever.
    • +
    +
  • +
  • +

    CMake provides a preset configuration for the install path on GNU systems, you can see the description here based on the configuration suggested by the GNU After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.

    +
      +
    • Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under /usr/local/share/fossology/ with their individual folders instead of going to /usr/local/bin/.
    • +
    • If the same results can be achieved by using the CMAKE_INSTALL_<dir> and CMAKE_INSTALL_PREFIX then yeah, it will be preferred.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Try adding the version and commit hash info.
  • +
  • Implement writing version files for each build.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-06-29/index.html b/docs/2021/buildsystem/updates/2021-06-29/index.html new file mode 100644 index 0000000000..2eda64abde --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-06-29/index.html @@ -0,0 +1,130 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Meeting 7

+

(June 29th, 2021)

+

In this seventh meeting question related to installing the FOSSology were discussed.

+

Attendees

+ +

Week 4 Progress

+
    +
  • CMake configuration files have been refactored to make each agent as a separate sub-project.
  • +
  • VERSION files can be generated now during configure step
  • +
  • Version parsing logic implemented.
  • +
  • VERSION and COMMIT_HASH added to every executables.
  • +
  • Installing part is complete except cli.
  • +
  • Symbolic Links are installing and working fine.
  • +
  • Version, Symbolic Links, VERSION file generation, version.php generation are now more modular and called via a single function for each agent
  • +
  • Most dependencies are now moved to single configuration file.
  • +
  • Vendor directory generation and installing are now working.
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • There are two types of replacements CMake can configure file with. @VARIABLE@ and ${VARIABLE} +. Since in PHP $variable is used, it may create problem for CMake replacements. So may I replace them? +
      +
    • Yeah sure, go ahead. It will be more robust.
    • +
    • The replacement of $VARIABLE can be stopped by using @ONLY option in configure_file(...) command.
    • +
    +
  • +
  • How to generate vendor directory? +
      +
    • The code for generating vendor directory is in src/Makefile.
    • +
    • Before executing code for the generation, make sure to copy composer.json and composer.lock to the target directory.
    • +
    • There is also a patch that FOSSology needs to function as intended. Make sure to run that patch to check and apply.
    • +
    • For now, we generate vendor while building, but it would be nice if it can be generated in the build step.
    • +
    +
  • +
  • Currently I am generating the VERSION file in configure step itself. Should I move it to the build or install step? +
      +
    • Yeah, please move it to the build step. As in configure step the data might be outdated.
    • +
    +
  • +
  • Is there any configuration for Release that we can use to install or test? (Michael) +
      +
    • Yeah, there are 4 inbuilt configurations for various levels of optimization and can be applied to tests and installation.
    • +
    +
  • +
  • Is the VERSION file is generated for each agent or whole project at once? Because in the latter case, the VERSION file can be generated as the last step. (Sarita) +
      +
    • No agent has a VERSION file along with the main VERSION file for FOSSology.
    • +
    +
  • +
  • How I can build and install a single agent or component? (Sarita) +
      +
    • +

      There are two ways you can build and install a specific agent or component only.

      +
    • +
    • +

      The first one is quite simple. Just change your directory to the specific agent's directory and run all the usual commands for building and installing.

      +
    • +
    • +

      The second one is a bit for typing work. This can be used directly from the top-level directory. After configuring the CMake, you can run the following command to install the specific component.

      +
      # for Unix Makefiles
      make list_install_component # this will list all the available components
      cmake -DCOMPONENT=<component-name> -P cmake_install.cmake
      +
    • +
    • +

      I am writing a macro that will let us install a component by simply running make install component.

      +
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Implement generation of vendor directory.
  • +
  • Move VERSION file generation to build step.
  • +
+

Meeting 8

+

(July 2nd, 2021)

+

In this eighth meeting questions related to post install generation were asked. This was a short meeting.

+

Attendees

+ +

Discussions

+
    +
  • Why all the symbolic links in cli points to fo_wrapper script? +
      +
    • The fo_wrapper script calls the PHP script on the symbolic link that called the fo_wrapper. It also initializes any requirement before calling the scripts.
    • +
    +
  • +
  • How to generate all the other configuration in /usr/local/etc/fossology directory? +
      +
    • You can find the input files for all these configurations in the install/defcon directory.
    • +
    +
  • +
  • What are OBSOLETEFILES in www/ui/Makefile ? +
      +
    • They are kept for compatibility purposes. Although they have been removed in the current versions of FOSSology, if a user installs a new version on top of an older instance, then we should explicitly remove those files.
    • +
    +
  • +
  • I have created a separate folder for generating vendor directory. Is that okay? +
      +
    • Yeah, it should be fine, But it would be better to rename it to something else. Or even better if moved to www itself. Since these files are used by www.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Move vendor scripts to www directory.
  • +
  • Implement installing for FOSSology cli.
  • +
  • Implement installing configuration scripts.
  • +
  • Finish installation for testing
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-07-09/index.html b/docs/2021/buildsystem/updates/2021-07-09/index.html new file mode 100644 index 0000000000..da495b4e4f --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-07-09/index.html @@ -0,0 +1,54 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Meeting 10

+

(July 9th, 2021)

+

Attendees

+ +

Week 5 Progress

+
    +
  • CMake Installation Configuration is almost complete.
  • +
  • FOSSology can be installed completely via CMake
  • +
  • Post install script generation also added
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • +

    There are permission problems while running bash script of nomos, monk and genvendor.

    +
      +
    • One possible fix can be to add bash before each bash scripts.
    • +
    • The other fix is to modify shebang line in each script from #!/bin/sh to #!/bin/bash.
    • +
    +
  • +
  • +

    In copyright agent same files are being compiled thrice, this is slowing down the build.

    +
      +
    • I am working on it. The problem is occurring because of three different executables.
    • +
    • I will try to combine the common objects together.
    • +
    +
  • +
  • +

    There are some redundant files in the installation. And VERSION file is missing in /usr/local/share/fossology.

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Fix copyright build.
  • +
  • Remove redundant files and folders.
  • +
  • Fix permission issues.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-07-23/index.html b/docs/2021/buildsystem/updates/2021-07-23/index.html new file mode 100644 index 0000000000..b74c20e45a --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-07-23/index.html @@ -0,0 +1,86 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Meeting 11

+

(July 23rd, 2021)

+

This week I implemented CMake packaging configuration for FOSSology. There were two meetings in this week and this report covers both of them.

+

Attendees

+ +

Week 7 Progress

+
    +
  • Initial CMake packaging configuration implemented.
  • +
  • Packages can be built according to the FOSSology previous packaging structure.
  • +
  • Copyright, ecc and keyword now builds faster.
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • +

    Where I can find packaging info for FOSSology?

    +
      +
    • All the scripts and companion files are located inside debian folder.
    • +
    • The most important files are control, which contains the dependency and description of each package, and rules file, which contains the make commands for creating the packages.
    • +
    +
  • +
  • +

    What are ${shlibs:Depends} and ${misc:Depends} ?

    +
      +
    • They are dependencies required for creating Debian packages. CMake should be adding them by default so we can safely ignore them.
    • +
    +
  • +
  • +

    Will the new packages have the same structure as the old ones? (Michael)

    +
      +
    • +

      Yes for compatibility purposes Gaurav has suggested exactly follow the same structure as the old one.

      +
    • +
    +
  • +
  • +

    Copyright build is slow because the same object files are being compiled three times, can you improve that? (Gaurav)

    +
      +
    • +

      I can try compiling the common object files beforehand and then adding the executables. But how to know the common object files?

      +
    • +
    • +

      Gaurav showed me where in the Makefiles I can find the common object files.

      +
    • +
    +
  • +
  • +

    There are problems with copying the symbolic link and packaging them. So I have to find some alternatives to resolve that.

    +
  • +
  • +

    With component installing, package description can no longer be set.

    +
  • +
  • +

    The fossology-common package contains file from fossology-db package. And the fossology-db package is empty.

    +
      +
    • Gaurav said this was unexpected and should not happen. This seems to be a very old bug with packaging.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Work more on the packaging.
  • +
  • Improve compilation of copyright and monk agents
  • +
  • Try to solve the packaging bug and add a pull request for that.
  • +
  • Move on to implementing testing configurations.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-07-30/index.html b/docs/2021/buildsystem/updates/2021-07-30/index.html new file mode 100644 index 0000000000..b8262d1cd2 --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-07-30/index.html @@ -0,0 +1,61 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Meeting 12

+

(July 30th, 2021)

+

Attendees

+ +

Week 8 Progress

+
    +
  • CMake Packaging configuration almost completed.
  • +
  • Packages can be built according to the FOSSology previous packaging structure.
  • +
  • Initial testing configuration added.
  • +
  • Ninja build has been fixed.
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • +

    How is the testing implemented in FOSSology?

    +
      +
    • Not all agents have testing implemented.
    • +
    • There are two types of tests Unit and Functional.
    • +
    • At first, the test executable calls multiple PHP scripts to create a test environment. And then tests are executed.
    • +
    • Files related to testing and common for all the agents are in src/testing
    • +
    • Other tests depends on phpunit. This PHPUnit is generated inside vendor.
    • +
    +
  • +
  • +

    As of now, the testing configurations are hardcoded, what should I do, because it seems the testing configuration will require changes to a lot of files?

    +
      +
    • Decide a deadline for the testing configuration and if until that point there is not very productive implementation then move to the next task that is implementing CI.
    • +
    +
  • +
  • +

    As of now building, installation, and packaging via CMake is working and in a stable state. To create an initial Pull Request. This would also be useful in case of the final evaluation and further testing will be based on this PR itself.

    +
  • +
  • +

    Fix any bugs or if there is the scope of improvement in Building, Installation and Packaging do that.

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Prepare for an initial PR.
  • +
  • Fix known bugs and apply Improvements.
  • +
  • Work on testing configurations.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-08-06/index.html b/docs/2021/buildsystem/updates/2021-08-06/index.html new file mode 100644 index 0000000000..dd52914687 --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-08-06/index.html @@ -0,0 +1,99 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Meeting 13

+

(August 6th, 2021)

+

Attendees

+ +

Week 9 Progress

+
    +
  • Initial CMake testing configuration added.
  • +
  • Few tests working, e.g copyright, nomos
  • +
  • Improved packaging configurations
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • +

    Is this a necessity that tests must be run as the fossy user? Because when I run tests as me they as for permissions. But proceeds as the fossy user.

    +
      +
    • No this is not required and this should not happen. They run under fossy as they sometimes require writing into /srv/fossology. But if they can run under other users that is an enhancement.
    • +
    +
  • +
  • +

    I am getting a lot of install issues in C/C++ agent tests?

    +
  • +
+
    Start 3: delagent_unit_test

3: Test command: /home/avinal/Documents/my_git/fossology/build/src/delagent/agent_tests/test_delagent
3: Test timeout computed to be: 10000000
3: install: cannot stat '/home/avinal/Documents/my_git/fossology/build/src/delagent/agent_tests/..//../../install/defconf/Db.conf': No such file or directory
3: install: cannot stat '/home/avinal/Documents/my_git/fossology/build/src/delagent/agent_tests/..//VERSION': No such file or directory
3: sh: 1: ../../../testing/db/createTestDB.php: not found
3: Failed to run ../../../testing/db/createTestDB.php -c /home/avinal/Documents/my_git/fossologbuild/src/delagent/agent_tests/testconf -e, exit code is:127 .
3/8 Test #3: delagent_unit_test ...............***Failed 0.02 sec
+
    +
  • +

    Not sure about the reason. I was suspecting Makefile but since they are gone now, I think PHP files are calling some shell commands causing this.

    +
  • +
+
    +
  • +

    Suggestions/Changes from Gaurav for fixing tests.

    +
      +
    • +

      For clib-tests, it needs to be called from PHP file (via PHPUnit) as it requires setting up a dummy repo. Check the src/lib/c/test/Makefile

      +
    • +
    • +

      For missing services.xml, the test cases include src/lib/php/common-container.php which loads the file. It expects it to be in current dir. Can be solved in two ways

      +
        +
      • Create another common-container.php just for test cases with correct paths.
      • +
      • Edit the current file and take the help of environment variables. For example, if a test variable is exported in env, find the XML relative to it otherwise continue as normal and this variable can be exported by CMake during the test.
      • +
      +
    • +
    • +

      Scheduler tests do need fossology_testconfig from Makefile.deps which set up the srv and create test configurations, DB, etc.

      +
        +
      • Another shell script can be written to do all that and call it from CMake. The PHP file called makes everything required in /tmp so not an issue.
      • +
      • The locations like LOG_DIR, FOSSDB_CONF, etc. in CMakeLists.txt can be changed to some other values. I am guessing this is the reason you were asked for the fossy password.
      • +
      +
    • +
    • +

      File src/copyright/agent_tests/Functional/cli_test.sh needs to be edited to take paths relative to build dir. It can also be made into a .in file which is generated from CMake? So every path can easily be updated.

      +
    • +
    • +

      For PHP agents with missing version.php issue, there is a hack possible

      + +
    • +
    • +

      Other PHP issues like PHP Fatal error: Uncaught Error: Class 'Fossology\Lib\Agent\Agent' not found can only be solved by editing composer.json before doing composer install (look for autoload: psr-4 ).

      +
    • +
    • +

      For delagent, pkgagent, mimetype issues, something can be done here: https://github.com/avinal/fossology/blob/avinal/feat/testing/src/testing/db/c/libfodbreposysconf.c#L349

      +
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • +

    Raise a pull request for all the progress till now.

    +
  • +
  • +

    Refactor the test source code according to suggestions.

    +
  • +
  • +

    Implement remaining testing configurations.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2021/buildsystem/updates/2021-08-13/index.html b/docs/2021/buildsystem/updates/2021-08-13/index.html new file mode 100644 index 0000000000..fbe58fcd32 --- /dev/null +++ b/docs/2021/buildsystem/updates/2021-08-13/index.html @@ -0,0 +1,75 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Meeting 14

+

(August 14th, 2021)

+

Attendees

+ +

Week 9 Progress

+
    +
  • Testing configuration for all agents added
  • +
  • GitHub Actions Configuration added
  • +
  • Fixed and refactored most of the tests
  • +
  • Raised a pull request for all the works till now. #2075
  • +
  • To test the current progress, follow the instructions here
  • +
+

Discussions

+
    +
  • +

    I suspect that the Ojo regression test's expected data file is outdated

    +
      +
    • Michael said that on their internal Jenkins CI, these tests are not being run currently, so this might be possible that the file is outdated.
    • +
    +
  • +
  • +

    Since some of the tests need Makefile to install while testing, CMake generated Makefiles and test Makefiles are conflicting, and hence we are forced to use Ninja for testing. What can I do about it?

    +
      +
    • Michael suggested using --file=filename flag with the make command and change the name of the test Makefile to something else. This will solve the problem.
    • +
    +
  • +
  • +

    Mimetype is detecting executables as shared lib, is that expected or needs to be fixed?

    +
      +
    • Mimetype internally depends on the file command to get the mime-type. If the output of the file command is also the same then it is okay.
    • +
    +
  • +
  • +

    What is folderlist in https://github.com/fossology/fossology/blob/master/src/delagent/agent_tests/Functional/ft_cliDelagentTest.php#L126 ?

    +
      +
    • folderlist is a view. Use createViews() function.
    • +
    +
  • +
  • +

    Suggestions/Changes from Gaurav for fixing phpunit tests.

    +
      +
    • Please note the changes in setUp() function in src/lib/php/tests/test_common_license_file.php
    • +
    • The test database name is given to the constructor of TestPgDb and can be anything as it gets deleted in teardown()
    • +
    • The dbmanager is provided by the object, no need to initialize global PG_CONN (it will be exposed by the library in case some of the functions need it).
    • +
    • All the tables needs to be explicitly mentioned to createPlainTables() and their corresponding createSequences() (you can get them using \d tablename from existing DB easily. Then call the alterTables() to update the sequence. (I am not sure if createConstraints() is required at all, try to remove)
    • +
    • tearDown() is pretty easy, just need to call fullDestruct(). For debugging, you can add exit(-1); after any line you as suspecting, connect to DB and checkout the database, select/inspect tables.
    • +
    • There is also TestInstaller class in case any of test case needs the whole mods-enabled with fossology.conf, VERSION, etc. Please check src/cli/tests/test_fo_copyright_list.php for quick reference.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Fix the remaining tests.
  • +
  • Add week 8, 9 reports.
  • +
  • Add Final Evaluation Report.
  • +
  • Complete Final Evaluation.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/copyrights/index.html b/docs/2021/copyrights/index.html new file mode 100644 index 0000000000..f5ebd0e007 --- /dev/null +++ b/docs/2021/copyrights/index.html @@ -0,0 +1,37 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Kaushlendra Pratap

+

Contact info

+ +

What's the project about?

+

Fossology's copyright detection agent uses a rule-based approach to detect copyright statements but like all the rule based approaches the edge cases in the stock of copyrights statements are increasing day by day thus the agent is showing a lot of False Positives result.

+

Eg:

+
    +
  • "copyright (c) 2021, Kaushlendra Pratap < kaushlendrapratap.9837@gmail.com >" # Seems like a valid copyright statement. +But,
  • +
  • "copyright is something which should be present in the code/software provided by Kaushlendra." # Has been tagged as copyright by current agent but it is a False Positive
  • +
+

What should be done?

+

Just like any other detection technique, we need to build a complete process/pipeline through which the copyright statements will go and the detector will classify it as True Positive or a False Positive.

+

Interesting? Let's discuss about the ways we can do it:

+
    +
  • Developing NLP drived rule based multi-layered checks
  • +
  • Introducing a Machine learning based classifier which will train on existing manually classified copyright statements
  • +
+

What is that I am doing right now?

+

Copyrights are more of a specifically structured statements which can be understood by the entities and Positions of each word. I am implementing NER Model and POS Tagging and through the results of each of it, I will be postulating a multilayered checking which will give good accuracy over detection.Applying checks on multiple levels and limiting it down to only the part where only the copyright statement is present will definitely help in detection of False Positives.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/setup/index.html b/docs/2021/copyrights/setup/index.html new file mode 100644 index 0000000000..64f8b3365d --- /dev/null +++ b/docs/2021/copyrights/setup/index.html @@ -0,0 +1,14 @@ + + + + + +Setup | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-06-07/index.html b/docs/2021/copyrights/updates/2021-06-07/index.html new file mode 100644 index 0000000000..0249f2100d --- /dev/null +++ b/docs/2021/copyrights/updates/2021-06-07/index.html @@ -0,0 +1,42 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Coding Week 1 Meeting

+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • Get Started with Implementing the NER and POS tagging on a sample Copyright
  • +
  • Implement NER and POS tagging on a larger dataset that was observed from Fossology itself.
  • +
  • Look for and Relations that can be implemented and defined as our logical checks for Detection of False Positives.
  • +
  • Use of Spacy/NLTK/Others
  • +
+

Week 1 Progress

+
    +
  • Spacy was decided to be used as the library prompt for NER and POS tagging. As it supports both the functionalities in other languages as well and it is very future proof.
  • +
  • NER and POS Tagging pre-trained models were set up and implemented on test copyright statements.
  • +
  • Set up fossology and gathered a Synthetic dataset by using pre-existed Copyright Agent, which helped us give a dataset with all four quadrants of the prediction.
  • +
  • Codebase has been written in such a way that can help in comparing and finding the relations
  • +
  • Wiki has been Updated
  • +
+

The Collaboratory Gist can be visited.

+

Conclusion and Further Plans

+

Implementation of POS tagging and NER was planned for next few weeks.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-06-15/index.html b/docs/2021/copyrights/updates/2021-06-15/index.html new file mode 100644 index 0000000000..6d827d2251 --- /dev/null +++ b/docs/2021/copyrights/updates/2021-06-15/index.html @@ -0,0 +1,42 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Coding Week 2 Meeting

+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • Implementation of the First level of checks on the calculated NER and POS_TAGS
  • +
  • Implementation of text normalization to improve the timings. Lemmatization and removing of punctuations.
  • +
  • Implementing the checks in such a way as to get maximum results.
  • +
  • Going through documentation of other libraries to be more precise with the efficiency.
  • +
+

Week 2 Progress

+
    +
  • Lemmatization, Stopwords removing has been implemented on the text.
  • +
  • NER and POS Tagging pre-trained models' result has been used to figure out a relation that can be used as a probable filter.
  • +
  • After implementing the first level of check the resulting indexes are being noted into a List which can further be utilised to fetch the exact statements.
  • +
  • Wiki has been Updated
  • +
  • The results are varying with different versions of Spacy**, 726 hits on the 3+ version and 749 on the 2+ version.
  • +
+

The Collaboratory Gist can be visited.

+

Conclusion and Further Plans

+

Understanding the results possessed by the few techniques implemented.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-06-22/index.html b/docs/2021/copyrights/updates/2021-06-22/index.html new file mode 100644 index 0000000000..73431657b4 --- /dev/null +++ b/docs/2021/copyrights/updates/2021-06-22/index.html @@ -0,0 +1,42 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Coding Week 3 Meeting

+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • Implementing the checks and Getting the indexes of the Hit copyright statements.
  • +
  • Then How to represent the results into the CSV itself.
  • +
  • Go through different manually checked copyright CSV provided.
  • +
  • Fetch Results for each of them and Find out about the Accuracy Calculation Formula and Discuss the edge cases.
  • +
  • Going through documentation of other libraries to be more precise with the efficiency.
  • +
+

Week 3 Progress

+
    +
  • A separate column in the CSV itself has been introduced with the predicted results
  • +
  • Implementation of the algorithm over different datasets has been completed.
  • +
  • Posting the results and going through the manually checked datasets to find the loopholes.
  • +
  • Wiki has been Updated
  • +
+

The Drive Link can be visited for The scripts used, Dataset Used and the Resulting CSVs as well.

+

Conclusion and Further Plans

+

Understanding the code better and Implementing techniques over the CSVs.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-07-06/index.html b/docs/2021/copyrights/updates/2021-07-06/index.html new file mode 100644 index 0000000000..e3b764c6df --- /dev/null +++ b/docs/2021/copyrights/updates/2021-07-06/index.html @@ -0,0 +1,43 @@ + + + + + +Week 4 & 5 | GSoC projects at FOSSology + + + + + +

Coding Week 4&5 Meeting

+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • Checking results manually and understanding the edge cases.
  • +
  • Implementation of the edge cases like (c) --> copyright, Date needed to be mandatory.
  • +
  • Go through different manually checked copyright CSV provided and The final CSV provided by Michael.
  • +
  • Traversing the CSV provided by Michael and Implementing the algorithm over it.
  • +
  • Implementing a performance score with which the algorithms performance to detect the copyrights is been calculated.
  • +
+

Week 4&5 Progress

+
    +
  • All the results from the different CSVs were traversed and few edge cases were predicted: Org/person name in a different language is impacting, (c) was not been predicted as copyright and it was excluded, [Date] needed to be an important entity for copyright recognition.
  • +
  • Solution was: (c) --> has been changed to "copyright" string and then it was fed to the algorithm, [Date] check has been implemented inside all the checks which individually helps as a final check before calling it a hit.
  • +
  • CSV provided by Michael contained 13lakh+ datasets that were not ideal to traverse through all of it once (Jupyter server crashed after continuous 10 hours running).
  • +
  • Divided the datasets into chunks of 10,000 and will traverse through it and check the ideal results on all over it.
  • +
  • Performance score was calculated {hitscore/No.of copyrights in list}*100, which came out as 82.65%
  • +
  • Wiki has been Updated
  • +
+

Conclusion and Further Plans

+

Understanding the edge cases and calculating the accuracy score over True Positives.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-07-13/index.html b/docs/2021/copyrights/updates/2021-07-13/index.html new file mode 100644 index 0000000000..64fe355070 --- /dev/null +++ b/docs/2021/copyrights/updates/2021-07-13/index.html @@ -0,0 +1,45 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Coding Week 6 Meeting

+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • Checking results manually and understanding the edge cases.
  • +
  • Implementation of the edge cases like Differentiating between ['Date'] and ['Cardinal].
  • +
  • Figuring out the solutions for the DATE and CARDINAL anomaly.
  • +
  • Go through different manually checked copyright CSV provided and The final CSV provided by Michael.
  • +
  • Generating the Accuracy score for true positives.
  • +
  • Thoughts for implementing our own NER model and creating an entity-based table according to our copyrights.
  • +
+

Week 6 Progress

+
    +
  • [Date] needed to be an important entity for copyright recognition. Various solutions have been implemented to get more and more accurate about it.
  • +
  • Solution was: ['Cardinal'] --> was included into the NER list and then a python date format check has been implemented which will check whether the date is present in the NER["Entity"] list. (This is reducing the accuracy that means it is not working)
  • +
  • I am working on another solution using regex which will help in removing one more kind of edge case.
  • +
  • Divided the datasets into chunks of 10,000 and will traverse through it and check the ideal results on all over it.
  • +
  • Accuracy Score for True Positives was calculated: 87.6% which will further increase after removing few more edge cases.
  • +
  • The dataset also contains human errors and it is impacting our accuracy score for TP as well.
  • +
  • Wiki has been Updated
  • +
+

Conclusion and Further Plans

+

Understanding the edge cases and calculating the accuracy score for statements more than 50 thousand statements.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-07-20/index.html b/docs/2021/copyrights/updates/2021-07-20/index.html new file mode 100644 index 0000000000..5f0df7b126 --- /dev/null +++ b/docs/2021/copyrights/updates/2021-07-20/index.html @@ -0,0 +1,43 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Coding Week 7 Meeting

+

Attendees

+
    +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • Checking results manually and understanding the edge cases.
  • +
  • Implementation of the edge cases like no ['DATE'] and only ['ORG'] or ['PERSON'] is present.
  • +
  • Setting up the next target for the remaining weeks.
  • +
  • Checking up the REGEX on the copyrights to check the validity of the code.
  • +
  • Generating the Accuracy score for TP, FP, FN and TN.
  • +
+

Week 7 Progress

+
    +
  • [Date] needed to be an important entity for copyright recognition but another check for no dates has been implemented to filter across wider results.
  • +
  • Ran the algorithm over 100 thousand copyrights and the time period of 21 mints were scored.
  • +
  • REGEX validity was checked and it can be used for future clutter removal maybe.
  • +
  • Divided the datasets into chunks of 50 and 100 thousand to calculate wider expected results.
  • +
  • More reduction and updation to code was done by removing redundancy of (copyright copyright happening in the statements)
  • +
  • The dataset also contains human errors and it is impacting our accuracy score for TP as well.
  • +
  • Wiki has been Updated
  • +
+

Conclusion and Further Plans

+

The filter of the copyrights needed to be more secured.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-08-03/index.html b/docs/2021/copyrights/updates/2021-08-03/index.html new file mode 100644 index 0000000000..34a0410619 --- /dev/null +++ b/docs/2021/copyrights/updates/2021-08-03/index.html @@ -0,0 +1,115 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Coding Week 8 Meeting

+

Attendees

+
    +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • +

    Provided with more edge cases to retaliate.

    +
  • +
  • +

    Discussion whether a good model will result in good extraction and results.

    +
  • +
  • +

    Discussion over calculating the PRECISION of the algorithm using the predefined accuracies.

    +
  • +
  • +

    Different models for NER was discussed, like "en_core_web_md", "en_core_web_lg" & "en_core_web_trf"

    +
  • +
  • +

    Discussions over the process of clutter removal from the copyrights. E.g.

    +

    Original Copyright: Copyright (c) 2018 Kaushlendra Pratap. Distributed under the MIT license.........

    +

    After Clutter Removal: Copyright (c) 2018 Kaushlendra Pratap.

    +
  • +
  • +

    A REGEX based approach was discussed to extract the exact copyright statements out and decided to keep it as a last resort.

    +
  • +
  • +

    An approach using the heuristic approach was taken as two pointers to go from one NER extracted entity till the exact thing is acquired.

    +
  • +
  • +

    After long discussions over approaches and the edge cases that should be encountered, the final approach included the STRING MANIPULATION.

    +
  • +
  • +

    The edge cases decided was:

    +
      +
    1. ['ORG'] encountered
    2. +
    3. ['PERSON'] encountered
    4. +
    5. ['ORG] and ['PERSON'] both were encountered
    6. +
    7. Hard code string value if "All rights reserved" or "Distributed under the licenses" was present
    8. +
    9. Finally the regex approach for the left out cases.
    10. +
    +
  • +
  • +

    The time complexity of the algorithm was under the close watch

    +
  • +
+

Week 8 Progress

+
    +
  • +

    The edge cases provided were screened through the algorithm and results were improved.

    +
  • +
  • +

    Several models were tried including all the en_core_web(md, lg and trf).

    +
  • +
  • +

    The accuracy was not impacted as such using the heavy models.

    +
  • +
  • +

    The most accuracy was given by "en_core_web_trf", i.e. 89.06 from 89.02 which is a minor change but on the other, the implementation time for 100 thousand copyright statements was 1.2 hours.

    +
  • +
  • +

    Performance over accuracy was chosen. (Stayed with "en_core_web_sm")

    +
  • +
  • +

    The accuracy of 100 thousand copyrights were stretched to 90 - 91% approx.

    +
  • +
  • +

    Final accuracy variable was created with the formula of PRECISION: TP+TN/FP+TP+TN+FN

    +
  • +
  • +

    The PRECISION was calculated to be: 94.07% (for 100 thousand copyright statements)

    +
  • +
  • +

    The clutter removal flag was created and developed in such a way that,

    +
    +

    USER: Provides FLAG => 1

    +
    +
    +

    IF COPYRIGHT is True:

    +
    +
    +

    IF FLAG is True:

    +
    +
    +

    CALL FUNC() -> Remove clutter

    +
    +
  • +
  • +

    TWO edge cases of clutter removal were covered, i.e. the hardcoded string-based and ['ORG'] was present.

    +
  • +
  • +

    Wiki has been Updated

    +
  • +
+

Conclusion and Further Plans

+

Different level of clutter removal should be implemented.

+ + \ No newline at end of file diff --git a/docs/2021/copyrights/updates/2021-08-10/index.html b/docs/2021/copyrights/updates/2021-08-10/index.html new file mode 100644 index 0000000000..e41a70ed82 --- /dev/null +++ b/docs/2021/copyrights/updates/2021-08-10/index.html @@ -0,0 +1,68 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Coding Week 9 Meeting

+

Attendees

+
    +
  • Gaurav Mishra
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Discussions

+
    +
  • +

    Clutter Removal Preview was given and discussed.

    +
  • +
  • +

    Implementation of the trained NER model was discussed using a CUSTOM training data set.

    +
  • +
  • +

    Next target for Final evaluations were discussed:

    +
      +
    1. Training the model using a custom dataset.
    2. +
    3. Integrating the ALgorithm with FOSSOLOGY.
    4. +
    5. Documenting everything and revamping it according to the integration.
    6. +
    +
  • +
  • +

    CUSTOM [ORG] list extraction process was discussed.

    +
  • +
+

Week 9 Progress

+
    +
  • +

    Clutter removal for the other three cases was implemented.

    +
  • +
  • +

    A custom training dataset was created using a list of names of organisations.

    +
  • +
  • +

    Spacy "en_core_web_sm" was trained on that custom dataset used.

    +
  • +
  • +

    Training was done in a way:

    +

    1- This training was more of an instantaneous one i.e. You train it for google, It will work only for google.

    +

    2- Need to figure out the way to keep the trained model while pushing the code. "nlp.to_disk()" internal property was used for saving the trained model to the local system.

    +
  • +
  • +

    More reduction and updation to code was done by removing redundancy and making the code more function-oriented.

    +
  • +
  • +

    Wiki has been Updated

    +
  • +
+

Conclusion and Further Plans

+

Integration of the algorithm with the FOSSOLOGY

+ + \ No newline at end of file diff --git a/docs/2021/index.html b/docs/2021/index.html new file mode 100644 index 0000000000..acc68ac453 --- /dev/null +++ b/docs/2021/index.html @@ -0,0 +1,44 @@ + + + + + +GSoC'21 @ FOSSology | GSoC projects at FOSSology + + + + + +

GSoC'21 @ FOSSology

2021 was the 4th year FOSSology participated in +Google Summer of Code.

+

This year, we had 7 amazing students working with us and spending their summer +contributing to the Open Souce. The contributions made to the project are +superb and will help FOSSology to grow as a richer tool and ecosystem.

+

Projects

+

Following are the important links to projects done in GSoC - 2021 in FOSSology +org.

+
StudentProjectFinal Reports
Aman DwivediReact UIVisit
Avinal KumarNew Build SystemVisit
Kaushlendra Pratap SinghCopyright False Positive detectionVisit
Omar AbdelSameaMicroservice ArchitectureVisit
Sarita SinghScanCode IntegrationVisit
Shreya SinghMinervaVisit
Shruti AgarwalReact UIVisit
+

These links (also on the left sidebar) contains information about the project, +the weekly updates from the students and even technical documentation which +were generated during the Google Summer of Code.

+

Mentors

+ +

Photo

+

Due to tough situations this year, we could not meet anyone in person despite +being in same place sometimes. But with the help of technology, we managed to +capture this screenshot of our concluding call with every student and mentor.

+

group photo

+

Thanks for being part of the community. 💚

+ + \ No newline at end of file diff --git a/docs/2021/microservice/dockerImages/index.html b/docs/2021/microservice/dockerImages/index.html new file mode 100644 index 0000000000..a4d08b424d --- /dev/null +++ b/docs/2021/microservice/dockerImages/index.html @@ -0,0 +1,74 @@ + + + + + +Docker Images | GSoC projects at FOSSology + + + + + +

Docker Images

Base Image

+

Tag

+

fossology/packages

+

Build Command

+

docker build -f Dockerfile.pkg . -t fossology/packages:latest

+

Scheduler

+

Tag

+

fossology/scheduler

+

Build Command

+

docker build -f Dockerfile.scheduler . -t fossology/scheduler:latest

+

web

+

Tag

+

fossology/web

+

Build Command

+

docker build -f Dockerfile.web . -t fossology/web:latest

+

Agents

+
    +
  • +

    ununpack

    +
  • +
+
Tag
+

fossology/ununpack

+
Build Command
+

docker build -f Dockerfile.ununpack . -t fossology/ununpack:latest

+
    +
  • +

    wget_agent

    +
  • +
+
Tag
+

fossology/wgetagent

+
Build Command
+

docker build -f Dockerfile.wgetagnet . -t fossology/wgetagent:latest

+
    +
  • +

    nomos

    +
  • +
+
Tag
+

fossology/nomos

+
Build Command
+

docker build -f Dockerfile.nomos . -t fossology/nomos:latest

+
    +
  • + +
  • +
+
Tag
+

fossology/copyright

+
Build Command
+

docker build -f Dockerfile.copyright . -t fossology/copyright:latest

+ +
Tag
+

fossology/ojo

+
Build Command
+

docker build -f Dockerfile.ojo . -t fossology/ojo:latest

+ + \ No newline at end of file diff --git a/docs/2021/microservice/index.html b/docs/2021/microservice/index.html new file mode 100644 index 0000000000..4b61307256 --- /dev/null +++ b/docs/2021/microservice/index.html @@ -0,0 +1,35 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Author

+

Omar AbdelSamea

+

Contact Info

+ +

Project Description

+

FOSSology is designed in modular fashion but it certainly does not follow micro-service architecture. If there is a change in an agent's logic, the whole source code has to be built again and installed. Whereas in micro-service architecture, only this agent needs to be built and installed/deployed.

+

Current Draw backs of installing FOSSology in cluster mode

+
    +
  • When adding or removing a node, scheduler needs to be restarted.
  • +
  • Every node needs to have same set of agents.
  • +
  • Because of the current version check mechanism on scheduler, for a single change, the whole code base needs to be redeployed to get new version string.
  • +
+

Project Goal

+
    +
  • Ability to add one agent to each node for easier updating and scaling.
  • +
  • Dynamically adding new nodes without the need to restart or stop the scheduler
  • +
  • Kubernetes deployment for easy scaling in or out
  • +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/setup/index.html b/docs/2021/microservice/setup/index.html new file mode 100644 index 0000000000..aa1ab7a4e3 --- /dev/null +++ b/docs/2021/microservice/setup/index.html @@ -0,0 +1,63 @@ + + + + + +Setup | GSoC projects at FOSSology + + + + + +

Setup

    +
  1. +

    Install and run Kubernetes

    +
      +
    1. install minikube or any alternative (k3s, kind, etc..)
    2. +
    3. after succesful installation: +
        +
      1. run minikube start
      2. +
      3. run eval $(minikube -p minikube docker-env)
      4. +
      +
    4. +
    +
  2. +
  3. +

    clone forked fossology repo https://github.com/OmarAbdelSamea/fossology

    +
  4. +
  5. +

    checkout to OmarAbdelSamea/GSoC/Microservices branch

    +
  6. +
  7. +

    Add all images to your machine

    +
      +
    • Option 1 (Suggested for testing) +
        +
      1. Download fossology_images.tar from here
      2. +
      3. run docker load -i fossology_images.tar
      4. +
      +
    • +
    • Option 2 +
        +
      1. cd Docker
      2. +
      3. Build all docker images. the list of all docker images will be found in Docker Images wiki page
      4. +
      5. cd ..
      6. +
      +
    • +
    +
  8. +
  9. +

    run kubectl apply -f k8s/

    +
  10. +
  11. +

    got to UI

    +
      +
    • if you are using minikube run minikube service web and the UI will be opened in the default browser
    • +
    +
  12. +
  13. +

    to delete an agent from the cluster run bash k8s/fo_delete.sh -a <agent-name>

    +
  14. +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-06-07/index.html b/docs/2021/microservice/updates/2021-06-07/index.html new file mode 100644 index 0000000000..9c92f9e3e9 --- /dev/null +++ b/docs/2021/microservice/updates/2021-06-07/index.html @@ -0,0 +1,67 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Coding Week 1

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Ayush Bharadwaj
  • +
  • Vasudev Maduri
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Gaurav illustrated how scheduler starts agents and the communication between them.
  • +
  • Discussed how the db container should be implemented and the process of installing FOSSology schema inside the container.
  • +
+

Meeting 1

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Ayush Bharadwaj
  • +
  • Vasudev Maduri
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Discussed the issues while trying to setup Docker-compse.
  • +
  • Discussed a possible implementation of communication between the scheduler and agents.
  • +
+

Creating network using docker-compose

+

Issues

+

1- While trying to connect the scheduler container with db container using docker-compose. the docker-entrypoint have fo-postinstall inside it to install FOSSology db schema inside the db container, but core-schema.dat wasn't found inside the scheduler container.

+

Solution

+
    +
  • core-schema.dat is found inside fossology-web.deb hence this package is installed inside the scheduler container. Better solution will be provided in the future as the required file core-schema.dat could be copied to the container in the Dockerfile.
  • +
+

2- nomos container exits immediately and it returns status code 0. exec /usr/sbin/sshd -D and exec /bin/bash both added to the docker-entrypoint to keep the container running but it didn't work.

+

End of the week results

+
    +
  • Created a separate container for PostgreSQL database
  • +
  • Solved the issues between the scheduler and database, checked all missing dependencies for correct starting of all containers and configured the docker-entrypoint.sh to work with all the separate containers
  • +
  • Started a network using docker-compose with the new Dockerfiles between scheduler, UI and database.
  • +
  • Started the initial implemntation of K8s cluster.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-06-15/index.html b/docs/2021/microservice/updates/2021-06-15/index.html new file mode 100644 index 0000000000..a53fc73d16 --- /dev/null +++ b/docs/2021/microservice/updates/2021-06-15/index.html @@ -0,0 +1,64 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Coding Week 2

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Ayush Bharadwaj
  • +
  • Vasudev Maduri
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Omar AbdelSamea (Me) presented the initial implementation of Kubernetes cluster, config files and deployments.
  • +
  • Gaurav suggested to schedule a meeting on Sunday to discuss how to modify schedule logic to work with single agent on each host instead of full set of agents on each host
  • +
+

Meeting 0

+

Organizer

+
    +
  • Vasudev Maduri
  • +
+

Attendees

+
    +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Discussed cluster architecture.
  • +
  • Vasudev stated that creating a separate Kubernetes service for each agent won't be suitable with FOSSology
  • +
  • Discussed an alternative of using ClusterIP service for each agent which is using Kubernetes pods DNS and headless services
  • +
+

End of the week results

+

Created the following deployments for Kubernetes

+
    +
  • Web
  • +
  • Scheduler
  • +
  • Database
  • +
  • nomos
  • +
  • copyright
  • +
+

Created the following services

+
    +
  • NodePort service for DB
  • +
  • ClusterIP service for scheduler
  • +
  • ClusterIP for nomos
  • +
  • ClusterIP for copyright
  • +
+

Links: https://github.com/OmarAbdelSamea/fossology/tree/OmarAbdelSamea/GSoC/K8s/k8s

+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-06-22/index.html b/docs/2021/microservice/updates/2021-06-22/index.html new file mode 100644 index 0000000000..e034d6c811 --- /dev/null +++ b/docs/2021/microservice/updates/2021-06-22/index.html @@ -0,0 +1,65 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Coding Week 3

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Traced source code to see how the scheduler should be modified to accept single agent on each host.
  • +
  • we found that:
  • +
  • function agent_test should be modified to only test the agent found inside the host
  • +
  • to get the agent type inside the host a new parameter should be added in fossology.conf
  • +
+

Meeting 1

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Ayush Bharadwaj
  • +
  • Vasudev Maduri
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Presented some enhancement on adding a single service for all agents.
  • +
  • Discussed the Scheduler Host problem and how it could be implemented in the next week.
  • +
+

End of the week results

+
    +
  • Implemented headless services instead of ClusterIP for each agent.
  • +
  • Used headless service for scheduler instead of ClusterIP.
  • +
  • Used ClusterIP with database instead of NodePort as the database doesn't need to be exposed.
  • +
  • Added Config Maps and Secrets for database.
  • +
  • Fixed a bug in Dockerfiles (debian package version was hardcoded, solution was replacing version with *)
  • +
  • Enhanced scheduler Dockerfile, instead of installing web.deb to get chore-schema.dat just copied it from source code.
  • +
  • Used stateful set with database instead of deployment.
  • +
+

Links: https://github.com/OmarAbdelSamea/fossology/tree/OmarAbdelSamea/GSoC/Microservices/k8s

+

Diagrams

+

using ClusterIP with agents

+

image

+

using headless services with agents

+

image

+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-06-29/index.html b/docs/2021/microservice/updates/2021-06-29/index.html new file mode 100644 index 0000000000..6118c36832 --- /dev/null +++ b/docs/2021/microservice/updates/2021-06-29/index.html @@ -0,0 +1,76 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Coding Week 4

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Discussed the issue of meta-agents folder, currently, the scheduler looks for meta-agents in /etc/fossology/mods-enabled inside it's pod which doesn't contain any agent.
  • +
  • As hot fix, Gaurav suggested implementing to mount mods-enabled folder to a PVC.
  • +
  • To continue development until a final decision is taken from the mentors, all required agents will be copied to meta-agents folder inside the scheduler pod.
  • +
+

Meeting 1

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Ayush Bharadwaj
  • +
  • Klaus Gmeinwieser
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Presented how communication between the scheduler and agents will be implemented using kubectl exec instead of ssh.
  • +
  • Tested it with fixed pod name and fixed commands and showed initial good results.
  • +
+

Using kubectl instead of SSH

+
    +
  • As mentioned in this thread using SSH between pods is not recommended.
  • +
+

Using kubectl inside pod

+ +

Issues

+

1- error: error loading config file "/root/.kube/config": open /root/.kube/config: permission denied

+

Description

+
    +
  • this issue occurs as .kube folder is created by default inside the root home directory and fossy folder doesn't have permissions to access this folder
  • +
+

Hot Fix

+
    +
  • add o+rwx permissions to /root/.kube permission
  • +
+

End of the week results

+
    +
  • Initially implemented usage of kubectl instead of SSH on agent nomos with a fixed pod name and fixed command.
  • +
  • Implemented multistage build for fossology:packages base image bringing it down from 2.1GB to 10MB.
  • +
  • Implemented service-account for scheduler to grant needed permission to run kubectl exec.
  • +
+

Diagrams

+

Agent-Scheduler meta agents folder

+

image

+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-07-06/index.html b/docs/2021/microservice/updates/2021-07-06/index.html new file mode 100644 index 0000000000..cc092115a8 --- /dev/null +++ b/docs/2021/microservice/updates/2021-07-06/index.html @@ -0,0 +1,84 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Coding Week 5

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Ayush Bharadwaj
  • +
  • Vasudev Maduri
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Presented a working method of using kubectl exec and tested with agents [ununpack, copyright, nomos]
  • +
+

Spawning agents using kubectl exec

+

Issues

+ +

command: /etc/fossology/mods-enabled/copyright/agent/copyright --scheduler_start --userID=0 --groupID=0 --scheduler_start --jobId=0

+
    +
  • argument --scheduler_start is present twice found in meta_agent_init() 779 and agent_spawn 701
  • +
+
Solution
+
    +
  • removing --scheduler_start from agent_spawn() 701
  • +
+ +
Solution
+
    +
  • adding --config /etc/fossology/mods-enabled to the command. +
      +
    • Didn't work If this argument is added it looks for fossology.conf not copyright.conf +'FATAL libfossscheduler.c.240: unable to open system configuration: unable to open configuration file "/etc/fossology/mods-enabled/fossology.conf"'
    • +
    +
  • +
  • create a soft link from /etc/fossology/mods-enabled/copyright/agent/copyright.conf
    +to /usr/local/share/fossology/copyright/agent/copyright.conf +
      +
    • Worked
    • +
    +
  • +
+

adj2nest debian package not found

+
    +
  • adj2nest is installed with ununpack package.
  • +
+
Solution
+
    +
  • creating adj2nest deployment with ununpack image.
  • +
+

[php7:error] [pid 19] [client 172.17.0.1:7237] PHP Fatal error: Uncaught Exception: unsatisfied dependency 'agent_unpack'

+
    +
  • UI folder from agent is needed inside the web container otherwise it will not load it as a plugin.
  • +
+
Suggested solution
+
    +
  • bundling UI folders of all agents in the fossology-web package.
  • +
+

End of the week results

+
    +
  • Solved presented issues of agent spawning.
  • +
  • Applied some hacks to solve pending issues and proper solution will be provided later +
      +
    • for agents conf, Agents folders are copied into the container.
    • +
    • for web package missing UI folders, Agents folders are copied into the container.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-07-13/index.html b/docs/2021/microservice/updates/2021-07-13/index.html new file mode 100644 index 0000000000..420bca1bbc --- /dev/null +++ b/docs/2021/microservice/updates/2021-07-13/index.html @@ -0,0 +1,76 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Coding Week 6

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Shaheem Azmal
  • +
  • Vasudev Maduri
  • +
  • Klaus Gmeinwieser
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Discussed the issue of having agents conf seperating between containers and the idle solution would be to add all agents conf to a database.
  • +
  • for database system discussed two options etcd and reddis.
  • +
  • Discussed how etcd should be used (seperate high availblity cluster vs deployment) and the discision was using a deployment as the seperate cluster for etcd only will be an overkill
  • +
+

Meeting 1

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Made a small demo for working FOSSology installation applied with some hacks (agents conf and web UI)
  • +
  • Presented manifest of etcd (deployment, service and pvc).
  • +
  • Presented a concept of how etcd will be used inside scheduler code.
  • +
+

Migrating configurations from conf files to etcd

+
    +
  • For microservice architecture each agent has it's own conf file inside it's pod.
  • +
  • FOSSology hosts needs to be hardcoded before deployment.
  • +
  • To solve this all conf files will be added to a key value pair database. The selected db system is etcd
  • +
  • for each new agent added, it'll interface with etcd using RESTful API. The agent will open it's conf file and start making proper PUT request to add configuration in etcd and the agent will add the host details.
  • +
+

End of the week result

+
    +
  • Succesfully scaned files using copyright and nomos (some hacks are applied to get it working)
  • +
  • Compared etcd vs redis and at the end etcd will be used
  • +
  • Started migrating Hosts part from FOSSology conf to etcd by modfying scheduler_foss_config in scheduler
  • +
+

Diagrams and screenshots

+

Interface between k8s, scheduler and etcd.

+

image

+

First scanned file using microservice architecture

+

image

+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-07-20/index.html b/docs/2021/microservice/updates/2021-07-20/index.html new file mode 100644 index 0000000000..d52c3a8696 --- /dev/null +++ b/docs/2021/microservice/updates/2021-07-20/index.html @@ -0,0 +1,62 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Coding Week 7

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Discussed the issue of agent UI folders, agent UI folders are present in each agent container. The web container can't access those folders. The discussed solution will be to bundle all UI folders in the web Debian package.
  • +
  • Presented integration of etcd in scheduler code after migrating the Hosts from fossology.conf to etcd.
  • +
  • Showed the structure of agent configuration in Json format.
  • +
  • Gaurav provided solution for agent UI issue for the current build system.
  • +
+

Meeting 1

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Ayush Bharadwaj
  • +
  • Vasudev Maduri
  • +
  • Kaushlendra Singh
  • +
  • Shreya Pratap
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Showed a demo for a working system using hosts from etcd.
  • +
  • Discussed the migration of agent configuration to etcd.
  • +
+

End of the week result

+
    +
  • Migrated Hosts from fossology.conf to etcd + +
  • +
  • Started on migrating agent configuration to etcd
  • +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-07-27/index.html b/docs/2021/microservice/updates/2021-07-27/index.html new file mode 100644 index 0000000000..5359d4d9c8 --- /dev/null +++ b/docs/2021/microservice/updates/2021-07-27/index.html @@ -0,0 +1,49 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Coding Week 8

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Presented a possible implementation of migrating agent configuration to etcd.
  • +
  • Discussed the issues that happened while trying to apply agent UI issue solution.
  • +
+

Migrating agent configuration to etcd

+
    +
  • in the agent's entrypoint, conf.sh will open agent conf file in /usr/share/fossology/<agent_name>/<agent_name>.conf and start iterating over it and extracts agent conf then create a PUT request to etcd pod for each configuration.
  • +
  • To reload the scheduler configuration fo_cli will be used using --reload option.
  • +
+

End of the week result

+
    +
  • Migrated Agent configuraiton from <agent_name>.conf to etcd + +
  • +
  • created conf.sh to iterate over agent configuration and make the appropriate API calls to etcd container.
  • +
  • Added fo_cli and modified entrypoint to reload scheduler configuration.
  • +
  • Applied discussed solution of bundling UI folders inside web package.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-08-03/index.html b/docs/2021/microservice/updates/2021-08-03/index.html new file mode 100644 index 0000000000..8f9a79cf55 --- /dev/null +++ b/docs/2021/microservice/updates/2021-08-03/index.html @@ -0,0 +1,49 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Coding Week 9

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Presented agent configuration migrated to etcd and working inside the cluster.
  • +
  • made a small demo showing applying agent deployment dynamically and the list of available agents in UI is changing accordingly.
  • +
  • Discussed agent deployment deletion method by creating a shell script that takes the agent name then deletes the deployment, removing the configuration from etcd and reload scheduler configuration.
  • +
+

Available agents in UI

+

in agent_disable function in common-plugin the list of available is hosts is requested from etcd and if the agent isn't present in this list it'll be disabled.

+

Migrating configuration to etcd

+
    +
  • Finalized migrating agent configuration and tested inside the cluster.
  • +
  • Added rest of fossology.conf to etcd
  • +
  • started working on db.conf to etcd
  • +
+

End of the week results

+
    +
  • modified UI to show only available agents during upload.
  • +
  • created fo_delete.sh to handle deployment deletion and scheduler config reload.
  • +
  • finalized migrating fossology.conf and <agent_name>.conf to etcd and tested inside the cluster.
  • +
  • started working on db conf to etcd.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/microservice/updates/2021-08-17/index.html b/docs/2021/microservice/updates/2021-08-17/index.html new file mode 100644 index 0000000000..64cc4d79c5 --- /dev/null +++ b/docs/2021/microservice/updates/2021-08-17/index.html @@ -0,0 +1,44 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Coding Week 10

+

Meeting 0

+

Organizer

+
    +
  • Gaurav Mishra
  • +
+

Attendees

+
    +
  • Anupam Ghosh
  • +
  • Vasudev
  • +
  • Ayush Bharadwaj
  • +
  • Shreya Singh
  • +
  • Kaushlendra Pratap Singh
  • +
  • Omar AbdelSamea
  • +
+

Outcomes

+
    +
  • Discussed load balancing algorithm of headless services and comparing to service like ingress.
  • +
  • Presented adding fossology.conf to etcd.
  • +
  • Decided to discuss the integration of microservice project in fossology repo next week.
  • +
+

load balancing

+
    +
  • The load balancing algorithm used with headless services is DNS round robin and to use more advanced load balancing a service like ingress should be used as it provide more load balancing algorithm based on specfic specs.
  • +
+

End of the week results

+
    +
  • Added installation instructions
  • +
  • Finalised db conf to etcd
  • +
  • Added what left to be done after GSoC
  • +
+ + \ No newline at end of file diff --git a/docs/2021/minerva/index.html b/docs/2021/minerva/index.html new file mode 100644 index 0000000000..63cb4add23 --- /dev/null +++ b/docs/2021/minerva/index.html @@ -0,0 +1,37 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+ +

Contact info

+ +

MINERVA

+

To implement any Machine learning/Deep learning algorithm we need a better and bigger dataset of SPDX Licences. Due to the lack of dataset currently, all the 10 algorithms which have been tested on Atarashi are restricted to 59% accuracy. There exists no such dataset for open source licenses that could be added to the existing dataset.

+

Why do we need to create OSS Dataset -

+
    +
  1. +

    IRREGULARITY IN THE SIZE OF LICENSE TEXTS - The license texts are of different sizes with huge differences in terms of keywords count. Longer license texts contain most of the unique keywords when compared against the uniqueness of keywords in the smaller license texts.

    +
  2. +
  3. +

    DIFFERENT THAN TRADITIONAL TEXT CORPORA - In licenses most of the tokens are similar and the keywords used can be found in almost all of them with a slight variation since they all are open-source licenses stating open source softwares and underlying permissions. These similarities in licenses make them tough to be differentiated by any traditional information retrieval algorithm.

    +
  4. +
+

So, the idea is to generate SPDX OSS license dataset using FOSSOLOGY NOMOS AGENT STRINGS.in REGEX and latest SPDX released Licenses. We can use an existing file as a baseline model for further manipulating and generating texts from those files.

+

What is that I am doing right now?

+

image

+

Till now, I have been able to fully automate the scripts to generate licenses using NLP algorithms and got them validated using Nomos. I have used "intxeger" for regex to text conversion and markov and n-gram algorithms for regex expansion and for initial splitting used Sliding window approach. Nomos can be used as a baseline to validate the generated texts.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/installation/index.html b/docs/2021/minerva/installation/index.html new file mode 100644 index 0000000000..1392d146df --- /dev/null +++ b/docs/2021/minerva/installation/index.html @@ -0,0 +1,14 @@ + + + + + +Installation | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-06-07/index.html b/docs/2021/minerva/updates/2021-06-07/index.html new file mode 100644 index 0000000000..ec7756ab5d --- /dev/null +++ b/docs/2021/minerva/updates/2021-06-07/index.html @@ -0,0 +1,49 @@ + + + + + +Week 0 | GSoC projects at FOSSology + + + + + +

Coding Week-0 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Brainstormed on various ways through which dataset can be generated, and broke it down into different parts.
  2. +
  3. Python library to be used in text generation using regex - Xeger/Intxeger
  4. +
  5. To reuse Script to n-gram the paragraphs of license texts and to generate different permutations and combinations of them.
  6. +
  7. Regex of different licenses can be extracted from licenses.json, exceptions.json, or STRINGS.in
  8. +
  9. Shifting the codebase of Atarashi to dask/vaex will boost the runtime. This to be done in parallel with the contribution. Results from few python files showed a significant boost to runtime.
  10. +
+

Week 0 Progress

+
    +
  1. I reused the script.py file to split the files in different combinations of paras that will create its combinations: like para1+para3, para2+para4 after each traversal.
  2. +
  3. Different org licenses are 60-70% and the ones with different versions are 90% similar. So to the split files, keywords and regex of the specific license_header can be added.
  4. +
  5. Tested Intxeger performance on the regex from STRINGS.in file. We are able to generate "Nsamples", and add them to all the paras, the randomness could be minimized. +
    x = intxeger.build(r"motosoto open source licen[cs]e =FEW= (v|version )0\.?9\.?1") +
    print(x.sample(N=5)) +
    Output : ['motosoto open source license =FEW= version 0.9.1', 'motosoto open source licence =FEW= version 0.9.1', 'motosoto open source licence =FEW= v0.91', 'motosoto open source license =FEW= v0.91', 'motosoto open source license =FEW= v0.9.1']
  6. +
  7. Generated statements in Nsamples were unique which will automatically make the generated text files unique.
  8. +
  9. The number of datasets generated will depend on the number of paras + Nsamples.
  10. +
  11. Regex from SPDX released licenses.json and exceptions.json can be extracted by redirecting to detailsUrl of JSON file -> standardLicenseTemplate (regex) -> licenseText (complete text).
  12. +
  13. Work Samples : Texts-Intxeger.ipynb, Texts-difflibraries.ipynb
  14. +
+

Conclusion and Further Plans

+

Implementation of Intxeger on one of the licenses and generating files using it.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-06-15/index.html b/docs/2021/minerva/updates/2021-06-15/index.html new file mode 100644 index 0000000000..22ad450248 --- /dev/null +++ b/docs/2021/minerva/updates/2021-06-15/index.html @@ -0,0 +1,49 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Coding Week-1 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. To handle Regex expansion - approaches were discussed.
  2. +
  3. The First approach was to generate random characters generated from .{0,30}. This was discarded because it won't +provide semantic meaning to generated texts.
  4. +
  5. Second, to skip the character generation portion but it will hamper similarity matching algorithms based on distances. So it was also discarded.
  6. +
  7. Third approach to generate meaningful sentences using python library and licenses vocabulary.
  8. +
+

Week 1 Progress

+
    +
  1. Extracted License header and regex from STRINGS.in file using extractregex()
  2. +
  3. 935 datasets of Motosoto licenses saved in drive in which regex expansion isn't considered : Drive link
  4. +
  5. Regex Expansion - here are the expansions for the special macros in STRINGS.in file: regex_expansion
  6. +
+

sed -e 's/ =FEW= /.{0,30}/g' -e 's/ =SOME= /.{0,60}/g' -e 's/ =ANY= /.*/g' \ -e 's/=YEAR=/(19|20)[0-9][0-9][ ,-]+/g'

+
    +
  1. To handle regex expansion 3 approaches were discussed which can be found in this colab
  2. +
  3. Worksamples : ExtractRegex, ExtractRough, GeneratingLicenses
  4. +
+

Conclusion and Further Plans

+
    +
  1. To work on 3rd approach and generate words that follow a sequence.
  2. +
+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-06-22/index.html b/docs/2021/minerva/updates/2021-06-22/index.html new file mode 100644 index 0000000000..6e7709ff36 --- /dev/null +++ b/docs/2021/minerva/updates/2021-06-22/index.html @@ -0,0 +1,41 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Coding Week-2 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Using Nomos for baseline validation of generated text files of licenses and compare results.
  2. +
  3. To improve regex expansion, different algorithms were discussed.
  4. +
  5. Results from Markov were discussed and how to improve it so that coherent statements can be generated.
  6. +
+

Week 2 Progress

+
    +
  1. Generated Motosoto files using the Markov approach was validated using Nomos.
  2. +
  3. Implementation of the "n-gram" approach on regex of different licenses so as to generate coherent regex statements.
  4. +
  5. Extracted License header and regex from the STRINGS.in file and stored them in separate CSV files for SPDX and LT.
  6. +
  7. Worksamples : License-Regex, GeneratedMotosotoLicense, FileGenerationUsingMarkov
  8. +
+

Conclusion and Further Plans

+

Implement n-gram approach to Motosoto licenses, so that the performance of Markov and Ngram algorithms can be compared.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-06-29/index.html b/docs/2021/minerva/updates/2021-06-29/index.html new file mode 100644 index 0000000000..94d35e3060 --- /dev/null +++ b/docs/2021/minerva/updates/2021-06-29/index.html @@ -0,0 +1,45 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Coding Week-3 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Results from Markov implemented text files that were validated by nomos.
  2. +
  3. Reusing Unclassified_licenses labeled files by adding significant keywords.
  4. +
  5. To implement the algorithms on few more licenses that are MIT and Apache to get a generalized view on both the approaches.
  6. +
  7. To-do: Validation on n-gram generated licenses and compare both the results.
  8. +
  9. How to not make the dataset biased.
  10. +
+

Week 3 Progress

+
    +
  1. Generated MIT-0, MIT, MITNFA, MIT-CMU, MIT-enna, MIT-feh, MIT-advertising, Apache-1.1, Apache-2.0, Apache-1.0 licenses and got them validated them using nomos.
  2. +
  3. Implemented ngram + markov approach to generate all the files.
  4. +
  5. Tweaked regex implementation while generating files for these licenses which further improved the results during validation.
  6. +
  7. Segregated different labeled license files in different folders.
  8. +
  9. Working on a script to automate the entire process.
  10. +
  11. Worksamples : GeneratedFiles, Markov_implementation, filesgen-markov, fileshen-ngram
  12. +
+

Conclusion and Further Plans

+

Automate the entire process for different licenses and get them validated using Nomos.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-07-05/index.html b/docs/2021/minerva/updates/2021-07-05/index.html new file mode 100644 index 0000000000..75782d3895 --- /dev/null +++ b/docs/2021/minerva/updates/2021-07-05/index.html @@ -0,0 +1,44 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Coding Week-4 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Validate generated files through nomos using the terminal, n-gram generated around 300000 files and Markov generated 134000 files.
  2. +
  3. Included Multiprocessing to the scripts to generate text files, to speed up the process.
  4. +
  5. Using different text Augmentations libraries such as Augly to reduces biasedness from the dataset. Compared results on one of the licenses.
  6. +
  7. Augly simulate_typos and ReplaceSimilarUnicodeChars to be used for further text augmentation.
  8. +
  9. Segregation of files after getting nomos validated into different folders.
  10. +
+

Week 4 Progress

+
    +
  1. Validated Markov and N-gram files through terminals. Since the dataset was large, used multiple cores for the validation.
  2. +
  3. Updated my scripts to automate the entire process.
  4. +
  5. Apart from SPDX licenses, will be implementing the exact approach to other licenses present in Fossology Database. Extracted license_header and texts from the JSON_file
  6. +
  7. Working on a script to remove the discarded files from the validated files and segregate the correctly labeled files.
  8. +
  9. Worksamples : augly_implementation, validation-jaccard, Sample-Script-GeneratingFiles, final_script_markov, final_script_ngram
  10. +
+

Conclusion and Further Plans

+

Segregate validated files in different folders and carry on with Augly implementation.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-07-13/index.html b/docs/2021/minerva/updates/2021-07-13/index.html new file mode 100644 index 0000000000..f2c2aa09de --- /dev/null +++ b/docs/2021/minerva/updates/2021-07-13/index.html @@ -0,0 +1,40 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Coding Week-5 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Multiprocessing implementation to all the scripts to make the process fast.
  2. +
  3. As in last week it was discussed to apply the generation part to all the licenses currently in fossology database, this part was done and the results of which were discussed.
  4. +
  5. Research and implement other NLP algorithms that can be used either in data validation or generation.
  6. +
+

Week-5 Progress

+
    +
  1. Extracted license headers and their text of licenses present in Fossology database from JSON
  2. +
  3. Implemented Script to download the licenses.
  4. +
  5. Created Minerva-Dataset repo, and pushed all my progress so far in dataset generation and validation of licenses.
  6. +
+

Conclusion and Further Plans

+

To discuss the nomos validated results with the mentors and proceed with Augly implementation.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-07-20/index.html b/docs/2021/minerva/updates/2021-07-20/index.html new file mode 100644 index 0000000000..5b429cb47f --- /dev/null +++ b/docs/2021/minerva/updates/2021-07-20/index.html @@ -0,0 +1,39 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Coding Week-6 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Segregated nomos validated files and storing them in different folders
  2. +
  3. 56515 files from Markov were validated and 156000 files from ngram
  4. +
  5. For licenses data augmentation Augly library to be implemented.
  6. +
+

Week-6 Progress

+
    +
  1. Pushed the files generated and scripts used to repo
  2. +
  3. Implemented Augly to different licenses and discussed how to use it later.
  4. +
+

Conclusion and Further Plans

+

To discuss the nomos validated results with the mentors and integrate Augly implementation to the script.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-07-27/index.html b/docs/2021/minerva/updates/2021-07-27/index.html new file mode 100644 index 0000000000..de3702d030 --- /dev/null +++ b/docs/2021/minerva/updates/2021-07-27/index.html @@ -0,0 +1,41 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Coding Week-7 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Drop the files which were validated by nomos but don't belong to a license
  2. +
  3. Finalising the script i.e ngram and markov approach, initial split
  4. +
  5. Extracting latest version of licenses that are SPDX, SPDX-exceptions to a txt file.
  6. +
  7. To automate the script to download all the licenses everytime there is a new release
  8. +
+

Week-7 Progress

+
    +
  1. Updated the Scripts to download the licenses.
  2. +
  3. Alternative code to ngram done and pushed to repo
  4. +
  5. Fixing Initial Split and similar files deletion
  6. +
+

Conclusion and Further Plans

+

To discuss the intial split approaches with the mentors and integrate it to the existing script

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-08-03/index.html b/docs/2021/minerva/updates/2021-08-03/index.html new file mode 100644 index 0000000000..dbd9c08cc6 --- /dev/null +++ b/docs/2021/minerva/updates/2021-08-03/index.html @@ -0,0 +1,40 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Coding Week-8 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. To implement itertools combination for initial splitting of licenses.
  2. +
  3. This approach works well for licenses less than 20 paras but not for larger licenses.
  4. +
  5. Reuse the Split script.
  6. +
+

Week-8 Progress

+
    +
  1. Implemented itertools and ngram on two different length licenses in notebook
  2. +
  3. Downloaded SPDX released licenses, licenseListVersion:3.14 and implemented my script on these licenses.
  4. +
  5. Updated Minerva-Dataset repository.
  6. +
+

Conclusion and Further Plans

+

To get a count of all the license files generated using different approaches for intial split.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-08-10/index.html b/docs/2021/minerva/updates/2021-08-10/index.html new file mode 100644 index 0000000000..3b36d24b22 --- /dev/null +++ b/docs/2021/minerva/updates/2021-08-10/index.html @@ -0,0 +1,41 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Coding Week-9 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. Sliding window approach to be followed in initial split of licenses i.e para1+para2, para2+para3, etc.
  2. +
  3. Adding License GPL-2.0 to the Minerva Dataset so that it can be integrated to Fossology
  4. +
  5. Used Recently released SPDX licenses, licenseListVersion: 3.13
  6. +
  7. Removing duplicate codes from the repository.
  8. +
+

Week-9 Progress

+
    +
  1. Implemented Sliding Window approach.
  2. +
  3. Added Licenses to the repository Minerva Dataset
  4. +
  5. Added license header to the all the scripts of repo.
  6. +
+

Conclusion and Further Plans

+

Discussion on Augly Implementation to produce noise in the Dataset.

+ + \ No newline at end of file diff --git a/docs/2021/minerva/updates/2021-08-17/index.html b/docs/2021/minerva/updates/2021-08-17/index.html new file mode 100644 index 0000000000..53b5f8b181 --- /dev/null +++ b/docs/2021/minerva/updates/2021-08-17/index.html @@ -0,0 +1,39 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Coding Week-10 Meeting

+

Attendees

+ +

Discussions

+
    +
  1. To fix filepaths, remove duplicate scripts and hardcoded paths, update Readme and weekly reports after which the data generation repository could be integrated to Fossology
  2. +
  3. Push all the licenses generated to repo and test different approaches using https://github.com/fossology/FOSSologyML/
  4. +
  5. Integrating the Repo under Fossology.
  6. +
+

Week-10 Progress

+
    +
  1. Fixed the Minerva-Dataset filepaths, imports, duplicated codes.
  2. +
  3. Shifted licenses download from Requests to urllib.
  4. +
  5. Updated Readme,Documentation and related files for final evaluation.
  6. +
  7. Added a README.md to all folders which do not contain Python scripts
  8. +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/copyright/index.html b/docs/2021/scancode/copyright/index.html new file mode 100644 index 0000000000..89226ff6d0 --- /dev/null +++ b/docs/2021/scancode/copyright/index.html @@ -0,0 +1,55 @@ + + + + + +Copyright UI | GSoC projects at FOSSology + + + + + +

Copyright UI

Date:2021-06-28

+

Attendees

+ +

Discussions

+
    +
  • About Copyright UI (Explained by Gaurav) +
      +
    • Starting with copyright-hist, there are two types of content statement, coming from the copyright agent and copyFindings which is manual finding added by user form fossology UI.
    • +
    • HistogramBase is the base class for copyright-hist as well as email-hist.
    • +
    • In template there is DataTables plug-in used which add some advanced feature to HTML tables like Pagination, Instant search, sorting, Use almost any data source.
    • +
    • ajax-copyright-hist has collection of functions for different task like update, delete, undo and depending upon the call, function returns JsonResponse.
    • +
    • When there is an API call(GET/POST request), JavaScript functions in the template folder calls ajax and depending upon type of action, ajax fetch data from database and return in JSON response. These JSON responses are rendered on UI.
    • +
    • Like c/cpp main function, FOSSology has Output function which defines the entry point. We check in this function that what is the thing that user wants to do.
    • +
    +
  • +
  • About Copyright and Author table for ScanCode +
      +
    • Two separate tables would be good.
    • +
    • Number of agent scanning copyright is increasing.
    • +
    • agent_fk in the copyright table is used to know the version of copyright agent.
    • +
    • Functionality to disable copyright should be there.
    • +
    • Using same table, reporting would be straight away but using different table would be hectic to add reporting.
    • +
    • There would be speed, reporting issues.
    • +
    • In case of different tables there could be repetition in the copyright data in fossology finding and scancode finding.
    • +
    • Growing data over years could be one of the main reason to keep table separate.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Start with copyright-hist and email-hist then move to ajax and template.
  • +
  • FOSSology uses Output function as the main function(entry point).
  • +
  • In Initial development we can keep separate tables for fossology copyright and scancode copyright, users can select which agent report they want to see. Later on, based on the performance of these agents we can think of removing redundant data by merging these tables or any other idea.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/first_evaluation/index.html b/docs/2021/scancode/first_evaluation/index.html new file mode 100644 index 0000000000..eefca6d153 --- /dev/null +++ b/docs/2021/scancode/first_evaluation/index.html @@ -0,0 +1,121 @@ + + + + + +First Evaluation | GSoC projects at FOSSology + + + + + +

First Evaluation

First Evaluation Report

+

Date:2021-07-14

+

Updates

+

List of task completed

+
    +
  • +

    Created a jinja template for ScanCode required output

    +
  • +
  • +

    Integrated ScanCode for license scanning

    +
      +
    • Display name of license with percentage matched
    • +
    • Insert new license to license_ref table
    • +
    • Highlight matched text for license scanned
    • +
    +

    image

    +
  • +
  • +

    Integrated ScanCode for Copyright and Author

    +
      +
    • Created following tables in the database +
        +
      • scancode_copyright
      • +
      • scancode_author
      • +
      • scancode_copyright_event
      • +
      • scancode_author_event
      • +
      +
    • +
    • Able to insert scancode scanned output in these tables.
    • +
    • Added a tab named ScanCode Findings in copyright browser and modified Copyright findings by Fossology to FOSSology Findings.
    • +
    +

    image

    +
  • +
+

List of commits

+ +

How to test

+ +

Note Incase facing problem in scancode installation, Install scancode manually with pip(checkout installation page for scancode).

+

Work in progress

+ +

Postponed tasks

+
    +
  • Writing Tests for license integration.
  • +
  • Create a ScanCode plugin to extract license-text. +
      +
    • Will do after integrating scancode copyright/author.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/index.html b/docs/2021/scancode/index.html new file mode 100644 index 0000000000..96746587b4 --- /dev/null +++ b/docs/2021/scancode/index.html @@ -0,0 +1,31 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+ +

Contact info

+ +

Integrating ScanCode to FOSSology

+

Nomos and Monk are the two leading scanners FOSSology uses for license detection and Copyright for scanning copyright, URL, emails, and holders name. FOSSology approach is to detect licenses with either a large (large: 2500 regexes) dataset of regex patterns (nomos) or a full string comparison against license full texts (large: ~400 texts) (monk). Atarashi license scanner implements multiple text statistics and information retrieval algorithms.

+

ScanCode Toolkit is a very established license scanner similar to Nomos or Monk. It is a simple python based command line scanner that runs on Windows, Linux, and Mac. It implements a number of different approaches and integrates these into one application for identifying and classifying license-relevant content in packages.

+

The basic idea is to use the command line interface from the ScanCode package in order to be called right from the FOSSology application. FOSSology will pass a single file and take the result from the ScanCode command line call. Scan result will include license name, the SPDX key, Score, Copyright and Holder name, Emails, and URLs present in the given code and as requested by the user.

+

Check out

+
+ + \ No newline at end of file diff --git a/docs/2021/scancode/installation/index.html b/docs/2021/scancode/installation/index.html new file mode 100644 index 0000000000..587a438ddb --- /dev/null +++ b/docs/2021/scancode/installation/index.html @@ -0,0 +1,30 @@ + + + + + +Installing scancode | GSoC projects at FOSSology + + + + + +

Installing scancode

The steps to install scancode-toolkit:

+
    +
  1. +

    Install Prerequisites

    +

    NOTE: scancode supports all Python versions from 3.6 to 3.9 for pip installation

    +
  2. +
  3. +

    Run $ python3 -m pip install --upgrade pip setuptools wheel to install the latest versions of base utilities.

    +
  4. +
  5. +

    Run $ python3 -m pip install scancode-toolkit to install the latest version of ScanCode.

    +
  6. +
+

The steps to uninstall scancode-toolkit:

+
    +
  1. Run $ python3 -m pip uninstall scancode-toolkit
  2. +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-05-28/index.html b/docs/2021/scancode/updates/2021-05-28/index.html new file mode 100644 index 0000000000..69d6e93782 --- /dev/null +++ b/docs/2021/scancode/updates/2021-05-28/index.html @@ -0,0 +1,111 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Coding Week 0.1 Meeting

+

Date:2021-05-28

+

Attendees

+ +

Current Progress

+
    +
  • Learnt PHP, SQL database.
  • +
  • Lerning API on which Gaurav has suggested to leave it for now.
  • +
  • Working on a project using PHP, SQL, Twig template, should be completed before the next meet.
  • +
+

Discussions

+
    +
  • Gaurav suggested to make GSoC timeline accessible to everyone and prepare a meeting report for others.
  • +
  • About the wrapper +
      +
    • I found the Ninka wrapper to be the suitable match for scancode plugin for FOSSology: +
        +
      • useful functions for license integration are available so some changes or addition should work.
      • +
      • I have already used this wrapper to create a prototype.
      • +
      • Mentors approved to use the wrapper used for Ninka.
      • +
      +
    • +
    +
  • +
  • About spdx key dispute +-A NOMOS and ScanCode scan output comparison list. +
      +
    • same licenses with slight variation in spdx key ex. LGPL-2.1-or-later (scancode) and LGPL-2.1+ (NOMOS) will be taken care as ojo agent does.
    • +
    • Write a regex to make license keys case insensitive ex. inner-net-2.0 (scancode) and InnerNet-2.00 (NOMOS).
    • +
    • Add new license to the license database table.
    • +
    +
  • +
  • About the Project Proposal +
      +
    • Gaurav said everything looks fine in the proposal except the UI part. Ninka wrapper UI could work for license integration. copyright and email will required changes.
    • +
    • Once license integration will be completed, have to see for parallel processing supported by scancode to optimize the speed.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Ninka Wrapper finalised.
  • +
  • Spdx key dispute solve like ojo.
  • +
  • Create scancode Jinja template.
  • +
  • Add new scan output to wrapper.
  • +
  • Fork and create a branch for development and mention the same in blog/wiki.
  • +
  • Add a timeline section in blog/wiki as provided in the project proposal.
  • +
  • Prepare a prototype/plan for the next week.
  • +
+

Coding Week 0.2 Meeting

+

Date:2021-06-04

+

Attendees

+ +

Week 0.1 Progress

+
    +
  • ScanCode custom output for license, copyright and holders is working.
  • +
  • Currently scancode doesn't support emails and urls custom output.
  • +
  • Opened a pr for this
  • +
+

Discussions

+
    +
  • About the DatabaseHandler +
      +
    • Gaurav explained how ojos databasehandler workes.
    • +
    • Convert shortname to lower-case.
    • +
    • Remove last occurrence of + and -or-later.
    • +
    • Remove last occurrence of -only.
    • +
    • Similar approach can work for license spdx key differnece in scancode and fossology database.
    • +
    +
  • +
  • About the UI +
      +
    • ScanCode simple UI (License integration) will resemble more with ojo.
    • +
    • When it will be parametrized( copyrights, emails, urls along with license), It will resemble closely with decider UI.
    • +
    • When scancode UI will have licenses, coyright, email, urls options then user can select more than one options at once. +write a plugin containg a switch case will give execute based on the options selected. Decider uses this.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Scancode Jinja template is working for license and copyright.
  • +
  • Start working on scancode integration for license scanning.
  • +
  • There would be a meet at May 7, 2021.
  • +
  • Fork and create a branch for development and mention the same in blog/wiki done.
  • +
  • Add a timeline section in blog/wiki as provided in the project proposal done.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-06-11/index.html b/docs/2021/scancode/updates/2021-06-11/index.html new file mode 100644 index 0000000000..e44cebe7cf --- /dev/null +++ b/docs/2021/scancode/updates/2021-06-11/index.html @@ -0,0 +1,86 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Coding Week 1 Meeting

+

Date:2021-06-11

+

Attendees

+ +

Current Update

+
    +
  • Working on populating database for license scanning.
  • +
  • Trying different approach to highlight matched text on scanning a code file.
  • +
+

Discussions

+
    +
  • +

    What is pfile and why are we using it?

    +
      +
    • We are using pfile to keep record of user's input file.
    • +
    • It's name is derived by using query.
    • +
    +
        select pfile_sha1 || '.' || pfile_md5 ||'.'|| pfile_size AS pfilename from pfile where pfile_pk=___
    +
  • +
  • +

    What is license_candidate in ojo databasehandler?

    +
      +
    • license_candidate is used to temporary hold the licenses found by ojo, there can be a case when an invalid license is detected by ojo, it can't be added to license_ref table unless verified.
    • +
    • No need to add in scancode databasehandler.
    • +
    +
  • +
  • +

    What is groupId in ojo databasehandler?

    +
      +
    • groupId is used for the candidate license.
    • +
    +
  • +
  • +

    After removing +, -or-later here, why are we adding them again here?

    +
      +
    • We don't know what suffix will be used in the license available in the database, so first we remove them from scanned license but in the next block of code we add them so that we can search in database for match.
    • +
    +
  • +
  • +

    About text highlighting

    +
      +
    • Problem: - +
        +
      • Unable to parse the text due to double quote present inside the text string.
      • +
      • Using this code to highlight match text, since this code is using string buffer, it has limited size.
      • +
      +
    • +
    • Solution: +
        +
      • I can use escape character to escape double quote in the matched text. But then I have to do this thing again while matching here to highlight.
      • +
      • For the second problem, Gaurav suggested to divide the scanned result into a certain range of characters and scan for match.
      • +
      • Scancode default JSON output escapes these double quotes and gives valid JSON so Anupam suggested to use that and think about optimising that later. But again I can't use this code.
      • +
      • Michael suggested to use line number and transform that to position using number of characters present in a line. (It will be inaccurate as the code file could have irregular number of characters per line.)
      • +
      • I asked if I couldn't find anything working then I can talk to Phillip and update about the same.
      • +
      +
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Got clarity about populating database.
  • +
  • Find a way for text highlighting problem.
  • +
  • Work upon UI for license scanning before the next meeting.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-06-18/index.html b/docs/2021/scancode/updates/2021-06-18/index.html new file mode 100644 index 0000000000..14dbcb9961 --- /dev/null +++ b/docs/2021/scancode/updates/2021-06-18/index.html @@ -0,0 +1,42 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Coding Week 2 Meeting

+

Date:2021-06-18

+

Attendees

+ +

Week 1 Progress

+
    +
  • Able to escape double quote and get a valid JSON output for matched license text. Gist link to the code.
  • +
  • Text highlighting for license highlighting is working. Gist link to code.
  • +
  • UI for license scanning is working fine.
  • +
+

Discussions

+
    +
  • ModuleNotFoundError: No module named 'scancode' Gaurav suggested to install scancode with root privilege.
  • +
  • Tested database queries, working but unless UI won't work can't say if it'll work for scancode or not.
  • +
  • FOSSology uses python with later version than 3.6 which is required for scancode. Gaurav said we can make python3.6 as default version for fossology but for now make scancode installation working on my local system and we'll discuss about the same later.
  • +
+

Conclusion and Further Plans

+
    +
  • Fixing bug for license scanning. Checkout the code .
  • +
  • Text highlighting problem solved I'll try to integrate this before next meet on friday.
  • +
  • Once done with license scanning, I'll start writing Unit test for scancode agent and UI testing.
  • +
  • There is a meeting on coming Tuesday.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-06-22/index.html b/docs/2021/scancode/updates/2021-06-22/index.html new file mode 100644 index 0000000000..82327cb4b6 --- /dev/null +++ b/docs/2021/scancode/updates/2021-06-22/index.html @@ -0,0 +1,70 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Coding Week 3 Meeting 1

+

Date:2021-06-22

+

Attendees

+ +

Week 2 Progress

+
    +
  • Populated scancode database successfully.
  • +
  • license relevant text highlight is working.
  • +
  • Scancode is working fine for license scanning.
  • +
+

Discussions

+
    +
  • Agent testing would be done after implementing rest of information (copyright, emails, urls).
  • +
  • Start implementing copyright, email and urls scanning for scancode toolkit.
  • +
  • Optimisation related to showing percentage match for a license is required. Scancode have a plugin --license-score INTEGER for this purpose. +
      +
    • shows only those licenses above a certain threshold value.
    • +
    +
  • +
  • Change detector type to 4.
  • +
  • Gaurav Solved queries related to various fields present in fossology database.
  • +
+

Conclusion and Further Plans

+
    +
  • Adding text url and name for license inserting for the first time.
  • +
  • Search how to get reference text for match licenses.
  • +
  • start implementing agent for copyright, email and urls scanned results.
  • +
+

Coding Week 3 Meeting 2

+

Date:2021-06-25

+

Attendees

+ +

Discussions

+
    +
  • How many numbers of tables should be created in the FOSSology database? +
      +
    • Gaurav, Shaheem suggested that two new tables, one for copyright and other for author information would be fine.
    • +
    • Still have to vote what majority of mentors will suggest on Monday on the slack channel.
    • +
    +
  • +
  • Facing difficulties to understand FOSSology UI code so there will be a meeting on Monday in which we'll discuss about the flow of copyright agent's UI code.
  • +
+

Conclusion and Further Plans

+
    +
  • Create copyright and author tables in FOSSology database.
  • +
  • Update scheduler code to add these information after extracting from ScanCode scan result.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-06-29/index.html b/docs/2021/scancode/updates/2021-06-29/index.html new file mode 100644 index 0000000000..d3d134199e --- /dev/null +++ b/docs/2021/scancode/updates/2021-06-29/index.html @@ -0,0 +1,102 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Coding Week 4 Meeting 1

+

Date:2021-06-29

+

Attendees

+ +

Week 3 Progress

+
    +
  • Populated ScanCode wrapper to include copyright and author information.
  • +
  • Currently using FOSSology copyright and author database tables to insert these information.
  • +
  • FOSSology Scheduler is calling ScanCode for copyright and author along with licenses.
  • +
+

Discussions

+
    +
  • Asked how to copyright agent is generating hash for copyright and author tables? +
      +
    • Hash is md5(content).
    • +
    +
  • +
  • What is clearing table in copyright agent database here ? +
      +
    • This code block creates copyright_decision table.
    • +
    • This table is used to store user's decision.
    • +
    • Similarly there are license_decision table which stores user's clearing decision for licenses.
    • +
    +
  • +
  • Gaurav explained how copyright agent/user finding works. +
      +
    • Agent findings contain what scanners has found, if a user makes changes in the agents finding that changes will be recorded into copyright_event table.
    • +
    • For the same pfile that agent will give edited result.
    • +
    • User finding table records user_decision during clearing in the UI and that content is inserted into copyright_decision table in the database.
    • +
    • These clearing results are helpful during creating report.
    • +
    • Scancode will also include reporting.
    • +
    +
  • +
  • Avinal asked question about how to reuse an upload for different agent without reloading? +
      +
    • Gaurav explained following:
    • +
    • Under Jobs go to Schedule agents, there select an upload to analyse and the agent who will do analysis.
    • +
    +
  • +
  • Gaurav suggested a FOSSology Using: End-to-end workflow video on YouTube.
  • +
+

Conclusion and Further Plans

+
    +
  • Creating tables for scancode copyright and author.
  • +
  • Watch end-to-end fossology workflow video and understand fossology UI and working.
  • +
+

Coding Week 4 Meeting 2

+

Date:2021-07-02

+

Attendees

+ +

Discussions

+
    +
  • +

    Using S instead of L for ScanCode type field in the highlight table where S will be match property of the highlight class in HighlightDao.php.

    +
      +
    • Added a new type S in the HighlightDao.php also changed type from signature to match as like monk agent ScanCode matches text.
    • +
    • Gaurav explained about identical displayed on the UI by monk scanner as, It highlight those text which are identical with the license text in the license_ref table. Whereas license relevant text means the highlighted text has been matched with license text or rules written for the license.
    • +
    • So license relevant text is suitable for the ScanCode highlight.
    • +
    • Also Gaurav suggested to reuse the resources already present and no need to add a new type for scancode highlight, nomos type could be reused.
    • +
    +
  • +
  • +

    Sarita(Me) shows newly created tables for scancode_copyright and scancode_author. Gaurav approved changes.

    +
  • +
  • +

    Added a function in the scancode database to insert no license in the license_file table for a code zip have no license.

    +
      bool ScancodeDatabaseHandler::insertNoResultInDatabase(int agentId, long pFileId ){
    return saveLicenseMatch(agentId, pFileId, 320, NULL);
    }
    +
  • +
  • +

    Gaurav clarified that 320 is not constant licenseId for no-license. So instead leave licenseId null.

    +
  • +
  • +

    There is still a discussion needed (with other mentors) to decide is no license case is needed to take care for ScanCode or not.

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Start implementing UI to make scancode a parameterized agent.
  • +
  • Discuss about no license/copyright/author case for scancode.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-07-06/index.html b/docs/2021/scancode/updates/2021-07-06/index.html new file mode 100644 index 0000000000..777203d86d --- /dev/null +++ b/docs/2021/scancode/updates/2021-07-06/index.html @@ -0,0 +1,115 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Coding Week 5 Meeting 1

+

Date:2021-07-06

+

Attendees

+ +

Week 4 Progress

+
    +
  • Created scancode_copyright and scancode_author table in the FOSSology database.
  • +
  • Copyright and author information coming from scancode scan result is inserted in these newly created tables.
  • +
  • Improved license data insertion in the license_file and highlight tables by inserting only unique entries based upon rf_fk, agent_fk, and pfile_fk. It solved UI glitch in license relevant text highlighting for scancode.
  • +
  • Latest commit having code to create tables.
  • +
  • Created UI Wireframes with Figma for ScanCode copyright and author.
  • +
+

Discussions

+
    +
  • +

    The first idea is to have a separate browser for ScanCode agent link.

    +
      +
    • Michael suggested not to use these as ScanCode-Toolkit project is recognized mainly for it's license scanning now keeping only Copyright and Author information in this section whereas licenses in another section will be confusing for users.
    • +
    • Gaurav also didn't approve this idea.
    • +
    +
  • +
  • +

    The second idea is to reuse existing Copyright and Email/URL/Author browser link.

    +
      +
    • Reusing copyright and Email/URL/Author browser section seems to be nice idea.
    • +
    • Michael didn't find navigation between ScanCode agent and FOSSology Copyright agent using drop-down a good options. It seems to be lost. So instead of drop-down using tabs would looks nice.
    • +
    • No need to repeat users finding for ScanCode agent as user is not interested in providing decision for a particular agent but instead they do for a file.
    • +
    +
  • +
  • +

    Michael proposed following idea instead

    +

    image +image

    +
      +
    • It reuses Copyright and Author browser space.
    • +
    • There is no redundant user decision for copyright agent.
    • +
    • Looks nice to all the attendees.
    • +
    +
  • +
  • +

    Discussion regarding how to display scanner findings in the Copyright/Email/Url/Author clearing section for a file.

    +
      +
    • Michael, Avinal and Sarita disused to add a column named source in the scanner finding table like license table in the clearing section.
    • +
    • Under this source column two keyword could be use one S for ScanCode findings and F for FOSSology Copyright agent findings.
    • +
    • Gaurav suggested not to use this idea because for the same copyright statement, Fossology and ScanCode can have different scan result.
    • +
    • In case of license, there is License_ref table which provides same license name for all the different agents for a license do no mismatching is there.
    • +
    • Doing same for Copyright will require lot of time.
    • +
    +
  • +
  • +

    Gaurav Suggested two ideas for the same

    +
      +
    • There can be two tabs to switch between ScanCode Findings and FOSSology Copyright Findings.
    • +
    • Second idea is to ask user about a default agent out of FOSSology copyright and ScanCode for an upload and display copyright/email/url/author result by the default agent.
    • +
    +
  • +
  • +

    Gaurav would like to discuss further in the next meeting.

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Implement Micheal's proposed idea for copyright browser and Email/URL/Author Browser.
  • +
  • Take feedback from other mentors too.
  • +
+

Coding Week 5 Meeting 2

+

Date:2021-07-09

+

Attendees

+ +

Discussions

+ +
    +
  • Copyright UI could be modified to integrate Scancode_Copyright and Scancode_Author UI.
  • +
  • CopyrightDao could be modified to include scancode copyright and author data too, no need to create a separate file for scancodeDao.
  • +
  • Users Findings are independent of any agent so no agentID has to be update in the copyright UI code for scancode but we have to take care for the type.
  • +
  • Gaurav suggested to use different type for copyright statement from what is used by copyright agent. Scancode will be using scancode_statement for copyright type and statement is used by copyright agent.
  • +
  • Two new tables named scancode_copyright_event , and scancode_author_event are required to store Deactivated ScanCode findings statements and Deactivated Author statements respectively.
  • +
  • To generate report copyright agent is hard coded at several places, figure out some way to add scancode data also.
  • +
+

Discussion regarding Documentation

+
    +
  • Gaurav gave this as a reference to add copyright in the project code files.
  • +
  • Michael suggested to look into coding guidelines for default license for the project code files.
  • +
  • Micheal suggested prepare a document for fossology wiki section like other agents have.
  • +
  • Gaurav in the last GSoC meeting suggested to document the working of scancode agent for first evaluation and adding comments to the code written till now.
  • +
+

Conclusion and Further Plans

+
    +
  • Documentation for scancode project in my project wiki .
  • +
  • Refactor code written till now.
  • +
  • Populating scancode copyright UI table.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-07-13/index.html b/docs/2021/scancode/updates/2021-07-13/index.html new file mode 100644 index 0000000000..8fd1bccfbf --- /dev/null +++ b/docs/2021/scancode/updates/2021-07-13/index.html @@ -0,0 +1,53 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Coding Week 6

+

Date:2021-07-13

+

Attendees

+ +

Week 5 Progress

+
    +
  • Added ScanCodeFindings table in Copyright Browser on UI.
  • +
  • Working on populating this table with scancode_copyright data.
  • +
  • Created tables for scancode_copyright_event and scancode_author_event.
  • +
  • Added copyright and license text in source code.
  • +
  • Added comments for source code.
  • +
  • Merged LicenseMatch to Match class
  • +
  • Instead of using vector of LicenseMatch class, using map of type Match class in scancode_wrapper to save parsed value of result scanned by ScanCode.
  • +
+

Discussions

+
    +
  • Instead of using RuleBits as done by decider, using flags as scancode CLI options conventions would be nice.
  • +
  • These could be various flags: +
      +
    • -l -> license
    • +
    • -c -> copyright and holder
    • +
    • -e -> email in the file, and
    • +
    • -u -> URL in the file
    • +
    +
  • +
  • These flags would be used in ScanCode command.
  • +
  • Gaurav suggested to look for Maintagent UI. It uses flags ( more verbose ).
  • +
  • It would be nice to implement ScanCode for CLI, can do this after once done with copyright/author UI.
  • +
+

Conclusion and Further Plans

+
    +
  • Add flags for ScanCode command to keep it verbose and match with scancode CLI flags.
  • +
  • Try to complete copyright UI by next meet.
  • +
  • Next task would be to implement ScanCode for CLI options once done with copyright/author UI.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-07-20/index.html b/docs/2021/scancode/updates/2021-07-20/index.html new file mode 100644 index 0000000000..b870cf9069 --- /dev/null +++ b/docs/2021/scancode/updates/2021-07-20/index.html @@ -0,0 +1,79 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Coding Week 7 Meeting 1

+

Date:2021-07-20

+

Attendees

+ +

Week 6 Progress

+
    +
  • +

    Populated copyright table for scancode.

    +
  • +
  • +

    Extended Email/URL/Author Browser to add scan result by ScanCode.

    +
  • +
  • +

    There are two levels of pagination one for FOSSology and ScanCode and other for email/url/author tabs.

    +

    image

    +
  • +
  • +

    All the available options for Test replacement, Replace selected rows and, Deactivate selected rows are working good.

    +
  • +
+

Discussions

+
    +
  • There is a bug in the pagination of the Email/URL/Author Browser. It could be possibly because of cookies. Check out storage of the inspect page, there will be index for different cookies and it would be helpful in debugging.
  • +
  • Maintagent can be taken as a reference to create verbose flags. ScanCode UI will look like reuser/desider in the upload section.
  • +
  • There is a problem in finding start byte of copyright due to unicode character.
  • +
  • ScanCode change © to (c) and also removes some of the characters like : from copyright(c): Sarita Singh and scan results to copyright (c) Sarita Singh. This thing causes issue in finding start byte of copyright and also integrating scancode copyright to report(unable to remove redundant data).
  • +
  • Michael suggested to drop copyright and unicode characters and then use sub-string matching to find approx. position(but it would be inaccurate).
  • +
  • Creating a ScanCode plugin to get copyright text like matched license text would solve the issue.
  • +
+

Conclusion and Further Plans

+
    +
  • Fix author tabs.
  • +
  • Use verbose flags for scancode agent like maintagent.
  • +
  • creating a scancode plugin to get copyright text can work.
  • +
+

Coding Week 7 Meeting 2

+

Date:2021-07-23

+

Attendees

+ +

Discussions

+
    +
  • ScheduleAgent function code in scancode/ui/agent_scancode.php is correct.
  • +
  • Format of flag for jq_cmd_args depends upon the code we are using to parse this flag inside the ScanCode agent.
  • +
  • Gaurav suggested to take reference for cliOptions from copyright or ojo agent.
  • +
  • They are using Boost.Program_options library which can be used to parse command line arguments and get ScanCode flags.
  • +
  • Further, this code can be reused for adding ScanCode agent to run by command line.
  • +
+

Conclusion and Further Plans

+
    +
  • ScheduleAgent function in scancode/ui/agent_scancode.php.
  • +
  • Next step is to parse the scancode args to get scancode CLI flags.
  • +
  • Use Boost program options for scancode CLI.
  • +
+ + \ No newline at end of file diff --git a/docs/2021/scancode/updates/2021-07-27/index.html b/docs/2021/scancode/updates/2021-07-27/index.html new file mode 100644 index 0000000000..e031b0acd3 --- /dev/null +++ b/docs/2021/scancode/updates/2021-07-27/index.html @@ -0,0 +1,116 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Coding Week 8 Meeting 1

+

Date:2021-07-27

+

Attendees

+ +

Week 7 Progress

+
    +
  • +

    Added boost program_options library to get scan flags.

    +
  • +
  • +

    Changed state class of ScanCode agent to include cliOptions along with agentId.

    +
  • +
  • +

    Upload from VCS is working now for ScanCode and other parameterize agents.

    +
  • +
  • +

    Working upon email/url/author tabs cookies, they are not working as expected.

    +
  • +
  • +

    Added parameters for ScanCode Toolkit in the upload section.

    +

    image

    +
  • +
  • +

    Flags are inserted in the jobqueue table under jq_cmd_args.

    +
  • +
  • +

    Upload from version control is not working for ScanCode with new parameters.

    +
  • +
+

Discussions

+
    +
  • +

    Under Email/URL/Author bulk view, sticky tabs are not working correctly.

    +
      +
    • Whenever we refresh the page, active tab according to cookies is not sync with UI.
    • +
    • Gaurav would see the code if it can be fixed.
    • +
    +
  • +
  • +

    cmd_args for ScanCode will have prefix as scan=

    +
  • +
  • +

    Upload from VCS have agents schedules in two levels as shown below

    +

    image

    +

    Gaurav confirmed it to be normal as levels of schedules depends on the scheduler working.

    +
  • +
  • +

    scheduleAgents function in php code has

    +
  • +
+

Conclusion and Further Plans

+
    +
  • +

    Add ScanCode in copyright single file view along with FOSSology copyright agent.

    +
  • +
  • +

    There would be two sticky tabs each for ScanCode and FOSSology in the single file view under scanners findings.

    +
  • +
  • +

    Fix schedule tabs for ScanCode and FOSSology

    +

    image

    +
  • +
+

Coding Week 8 Meeting 2

+

Date:2021-07-31

+

Attendees

+ +

Discussions

+
    +
  • List of tasks remains: +
      +
    • Minimum score fix to 50
    • +
    • Error handling in ScanCode
    • +
    • URL tabs fix
    • +
    • Installation script for ScanCode
    • +
    • Initial PR for integrating ScanCode-Toolkit to FOSSology
    • +
    • Custom template PR(ScanCode toolkit project)
    • +
    • Create a ScanCode plugin to get license text
    • +
    • Copyright agent schedule
    • +
    • code refactoring
    • +
    • Write tests for scancode agent
    • +
    • Copyright Highlight
    • +
    • Complete CLI for scancode agent
    • +
    • Integrate scancode copyright in the report
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • This list of tasks are according to priority
  • +
  • complete first four tasks and raise an initial pr ASAP
  • +
  • It would be easier to review code with pr and suggest changes needed
  • +
+ + \ No newline at end of file diff --git a/docs/2021/ui/index.html b/docs/2021/ui/index.html new file mode 100644 index 0000000000..8bc38eea44 --- /dev/null +++ b/docs/2021/ui/index.html @@ -0,0 +1,42 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Migration of UI @ FOSSology

+

Project Overview

+

The UI Migration project is an effort focused on generating the new component-based architecture with the integration of the APIs. To make the project more efficient and easily accessible, an entire code base shift from Symfony-Twig to React.js is proposed. React.js features an incrementally adaptable architecture that focuses on declarative rendering and component composition. React.js component system will enable us to organize the current working APIs appropriately.

+

Mentors: Michael, Gaurav Mishra, Vivek, Sahil Jha, Shaheem Azmal

+

Objectives

+
    +
  • Working on good interactive design, with a modern look.
  • +
  • Integrating the APIs to the new component-based UI structure.
  • +
  • Seamless routing and page transitions.
  • +
  • Giving the power of the node engine to our UI. Making all NPM accessible.
  • +
  • Writing detailed ​ documentation of the project, to make the +codebase simpler for other contributors.
  • +
+

Check out the installation steps for the project.

+

Authors

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/installation/index.html b/docs/2021/ui/installation/index.html new file mode 100644 index 0000000000..1660bab851 --- /dev/null +++ b/docs/2021/ui/installation/index.html @@ -0,0 +1,69 @@ + + + + + +Installation | GSoC projects at FOSSology + + + + + +

Installation

Requirements 📜

+
    +
  1. +

    Your machine should have Yarn (preferable) or Npm or Docker installed.

    +
  2. +
  3. +

    A working FOSSology setup.

    +
  4. +
  5. +

    Setup CORS in FOSSology

    +
  6. +
+
    +
  • Open FOSSology and go to Admin > Customize.
  • +
  • Look out for "Allowed origins for REST API"
  • +
  • Set the value to "http://localhost:3000"
  • +
+

image

+

Installation Steps :walking:

+

1. Fork it 🍴

+

You can get your own fork/copy of FOSSologyUI by using the Fork button.

+

Fork Button

+

2. Clone it 👥

+

You need to clone (download) it to a local machine using

+
git clone https://github.com/Your_Username/FOSSologyUI.git
+
+

This makes a local copy of the repository in your machine.

+
+

Once you have cloned the FOSSologyUI repository in GitHub, move to that folder first using the change directory command.

+
# This will change directory to a folder FOSSologyUI
cd FOSSologyUI
+

Move to this folder for all other commands.

+

3. Set it up ⬆️

+

Run the following commands to see that your local copy has a reference to your forked remote repository in GitHub :octocat:

+
git remote -v
origin https://github.com/Your_Username/FOSSologyUI.git (fetch)
origin https://github.com/Your_Username/FOSSologyUI.git (push)
+

Now, add a reference to the original FOSSologyUI repository using

+
git remote add upstream https://github.com/fossology/FOSSologyUI.git
+
+

This adds a new remote named upstream.

+
+

See the changes using

+
git remote -v
origin https://github.com/Your_Username/FOSSologyUI.git (fetch)
origin https://github.com/Your_Username/FOSSologyUI.git (push)
upstream https://github.com/fossology/FOSSologyUI.git (fetch)
upstream https://github.com/fossology/FOSSologyUI.git (push)
+

4. Run it 🏁

+

Using Yarn (preferable)

+
# To install all the dependencies
yarn install

# To start the application
yarn start
+

OR

+

using NPM

+
# To install all the dependencies
npm install

# To start the application
npm start
+

The React application will start on port 3000. +Go to: http://localhost:3000

+

OR

+

using Docker

+

FOSSology comes with a Dockerfile allowing the containerized execution.

+

Run the following commands inside the project directory.

+
docker build \
-t fossologyui:react1.0 \
--build-arg REACT_APP_SERVER_URL="localhost/repo/api/v1" \
--build-arg REACT_APP_HTTPS="false" .
+
docker run -p 3000:3000 fossologyui:react1.0
+

The UI can then be accessed at http://IP_OF_DOCKER_HOST:3000/, user fossy password fossy.

+ + \ No newline at end of file diff --git a/docs/2021/ui/styleGuide/index.html b/docs/2021/ui/styleGuide/index.html new file mode 100644 index 0000000000..97b62b1c13 --- /dev/null +++ b/docs/2021/ui/styleGuide/index.html @@ -0,0 +1,61 @@ + + + + + +Style Guide | GSoC projects at FOSSology + + + + + +

Style Guide

We are following the Airbnb JavaScript Style Guide for the FOSSology UI project.

+

ESlint (a pluggable and configurable linter tool) and Prettier (an opinionated code formatter) are used to enforce the style guide.

+

Coding Conventions

+
    +
  • +

    All files using JSX syntax should have .jsx extension.

    +
  • +
  • +

    Use Pascal case for naming React components.

    +
  • +
  • +

    Use Camel case for the function name and variable name.

    +
  • +
  • +

    Prefer using default export.

    +
  • +
  • +

    Prefer using arrow functions.

    +
  • +
  • +

    Prefer using functional components.

    +
  • +
  • +

    Avoid using PropTypes.array or PropTypes.object. Instead use PropTypes.arrayOf(PropTypes.string) or PropTypes.shape({id: PropTypes.number}) respectively.

    +
  • +
+

General Naming Convention

+

In the code and documentation prefer using non-offensive terminology, for example:

+
    +
  • allowlist / denylist (instead of whitelist / blacklist).
  • +
  • primary / replica (instead of master / slave).
  • +
  • openbox / closedbox (instead of whitebox / blackbox).
  • +
+

Before making any pull request one should:

+
    +
  • +

    Run yarn fix:all to fix all auto fixable errors and warnings.

    +
  • +
  • +

    Run yarn test to run all react tests.

    +
  • +
  • +

    Ensure that your commit contains a Signed-off-by line, also known as the Developer Certificate of Origin (DCO).

    +
  • +
  • +

    Ensure that you have added your name and email in the license headers of all the files that you have modified.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-06-15/index.html b/docs/2021/ui/updates/aman/2021-06-15/index.html new file mode 100644 index 0000000000..dccad8569e --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-06-15/index.html @@ -0,0 +1,53 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

    +
  • Created wireframes of different colour scheme
  • +
  • Had discussions on wireframe
  • +
  • Finalized the wireframe
  • +
  • Decided the libraries to be used
  • +
  • Finalized the architecture of the codebase
  • +
  • Created a pull request to add the folder structure in the main branch
  • +
  • Added storage helper functions for cookies and local storage
  • +
+

Proposed Folder Structure:

+
|-- public
|-- src
|-- api
|-- assets
|-- [+] images
|-- [+] fonts
|-- components
|-- Header
|-- Footer
|-- Widgets
|-- Buttons
|-- [+] tests
|-- index.jsx
|-- constants
|-- endpoints.js
|-- externalLinks.js
|-- routes.js
|-- pages
|-- Browse
|-- index.jsx
|-- [+] services
|-- [+] shared
|-- [+] styles
|-- App.js
|-- Routes.js
|-- index.jsx
|-- package.json
+

Note: [+] indicates folder

+
    +
  • Api: Contains the list of all the API functions.
  • +
  • Assets: Holds all the static assets like images and fonts.
  • +
  • Components: Consists of shared elements that can be used by all the pages such as header and footer. Widgets sub folder contains helper components such as Button, Input Container, Image etc.
  • +
  • Constants: Includes all the application wide constants like API endpoints and the list of all the routes.
  • +
  • Pages: Consists of all the pages to be displayed.
  • +
  • Services: Defines all the API services.
  • +
  • Shared: Contains application wide utility functions like auth helpers, storage helpers, date helpers etc. It also carry 3 types of auth guards, public layout, private layout and admin layout.
  • +
  • Styles: This folder contains mainly three files: +
      +
    • Theme: It consists of all the variables related to themes such as primary-color, secondary-color, primary-text etc.
    • +
    • GlobalStyle.js: It consists of all the css related to theme.
    • +
    • global.css: It consists of all the default css such as spacing.
    • +
    +
  • +
  • App.jsx: This file is used for application wide state and style managements. It includes theme provider, global styles and imports of all the external CSS libraries.
  • +
  • Routes.js: maps all the url routes to the JSX components
  • +
  • index.jsx: the entry point of the application
  • +
+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-06-22/index.html b/docs/2021/ui/updates/aman/2021-06-22/index.html new file mode 100644 index 0000000000..ede19e2c6f --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-06-22/index.html @@ -0,0 +1,70 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

    +
  • +

    Added CONTRIBUTING.md file

    +
  • +
  • +

    Added the following GitHub infrastructure files

    +
      +
    • bug_report.md
    • +
    • feature_request.md
    • +
    • PULL_REQUEST_TEMPLATE.md
    • +
    +
  • +
  • +

    Created a routes.js file inside constant folder for url mapping

    +
  • +
  • +

    Added Eslint for static code analysis

    +
  • +
  • +

    Added Prettier for code formating and ensuring consistent style throughout the code

    +
  • +
  • +

    Added script for testing and formatting the code using ESlint and Prettier

    +
  • +
  • +

    Added prop-types to validate the props of all components

    +
  • +
  • +

    Added getting started overview page

    +
  • +
  • +

    Added random string generator function for generating token name

    +
  • +
  • +

    Added getDate function to get a date d days from today in YYYY-MM-DD format for generating token expiry date

    +
  • +
+

Screenshots

+

help overview page

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-06-29/index.html b/docs/2021/ui/updates/aman/2021-06-29/index.html new file mode 100644 index 0000000000..05d25a6327 --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-06-29/index.html @@ -0,0 +1,84 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

    +
  • +

    Added license browser page

    +
  • +
  • +

    Added the login mechanism (login page, error alert, conditional login form, saving JWT tokens in cookie)

    +
  • +
  • +

    Made cookie storage secure by adding sameSite: 'strict' and secure: true in cookies

    +
  • +
  • +

    Added upload instructions page

    +
  • +
  • +

    Added fossology documentation wiki link

    +
  • +
  • +

    Added third party licenses page

    +
  • +
  • +

    Added error 404 page

    +
  • +
  • +

    Integrated GitHub actions for CI/CD test

    +
  • +
  • +

    Added create folder page

    +
  • +
+

Screenshots

+

Github actions

+

help license browser page

+

upload Instruction page

+

login page

+

hidden Login Form page

+

loading spinner page

+

login error page

+

login page

+

logout page

+

Error 404 page

+

Create Folder page

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-07-06/index.html b/docs/2021/ui/updates/aman/2021-07-06/index.html new file mode 100644 index 0000000000..10b09bfb37 --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-07-06/index.html @@ -0,0 +1,90 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

    +
  • +

    Added delete folder page

    +
  • +
  • +

    Integrated /users/self API

    +
  • +
  • +

    Display username in the user dropdown

    +
  • +
  • +

    Added edit folder page

    +
  • +
  • +

    Added move folder page

    +
  • +
  • +

    Added error check in API call on search page

    +
  • +
  • +

    Fixed duplicate CSS ids on the search page

    +
  • +
  • +

    Added unlink folder or upload page

    +
  • +
  • +

    Fixed headings and open external links in new tab

    +
  • +
  • +

    Added folder navigation component

    +
  • +
  • +

    Integrated the Airbnb style guide

    +
  • +
  • +

    Updated Eslint and Prettier to enforce Airbnb style guide

    +
  • +
+

Screenshots

+

delete folder page

+

user self API integration

+

edit folder page

+

move folder page

+

folder navigation page

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-07-13/index.html b/docs/2021/ui/updates/aman/2021-07-13/index.html new file mode 100644 index 0000000000..aff25db3c7 --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-07-13/index.html @@ -0,0 +1,100 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

    +
  • +

    Added create group page under admin dropdown

    +
  • +
  • +

    Added delete user page under admin dropdown

    +
  • +
  • +

    Added schedule analysis page under jobs dropdown

    +
  • +
  • +

    Removed duplicate Api functions

    +
  • +
  • +

    Logout user when token is revoked from backend

    +
  • +
  • +

    Added auth gaurd for admin pages (added admin layout)

    +
  • +
  • +

    Added prettier check to GitHub actions

    +
  • +
  • +

    Add storybook initial setup

    +
  • +
  • +

    Fixed header on small screen size

    +
  • +
  • +

    Integrated agent preference from local storage

    +
  • +
  • +

    Updated folder navigation pull request to use react-virtualized-tree and +array-to-tree library

    +
  • +
  • +

    Recreated the same design of folder navigation component using external library

    +
  • +
  • +

    Fixed folder navigation component to be fully expanded on initial page load

    +
  • +
  • +

    Created installation Guide Wiki to explain the process of installation and contributing to FOSSology UI

    +
  • +
  • +

    Created Style Guide of the project elaborating the coding style guide and conventions followed. Also explained the tools used to enfore the style guide.

    +
  • +
+

Screenshots

+

create group page

+

delete user page

+

schedule analysis page

+

small screen header page

+

folder navigation page

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-07-20/index.html b/docs/2021/ui/updates/aman/2021-07-20/index.html new file mode 100644 index 0000000000..981d621e54 --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-07-20/index.html @@ -0,0 +1,94 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

    +
  • +

    Created dynamic reusable text icon image component

    +
  • +
  • +

    Ensured text icon component to use color based on the current active theme

    +
  • +
  • +

    Updated login mechanism to fetch group list on login

    +
  • +
  • +

    Saved the group list and current group in local storage for quick access

    +
  • +
  • +

    Displayed group list on the header as a dropdown

    +
  • +
  • +

    Passed the current group name as header to every subsequent API request

    +
  • +
  • +

    Delete user data from local storage and cookie after user logs out

    +
  • +
  • +

    Added reusable error handling function to reduce duplicate code

    +
  • +
  • +

    Fixed Eslint warnings in copyright script

    +
  • +
  • +

    Updated absolute import to relative imports in all layout components

    +
  • +
  • +

    Organized links to keep external links in externalLinks.js file and internal links in routes object

    +
  • +
  • +

    Fixed the broken upload list on the schedule jobs page

    +
  • +
  • +

    Sanitized URL query parameters using query-string library

    +
  • +
  • +

    Fixed typo on the browse page

    +
  • +
  • +

    Refactored the complete codebase to fix all the console warnings

    +
  • +
+

Screenshot of added pages

+

Group name light

+

Group name dark

+

Schedule Analysis page

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-07-27/index.html b/docs/2021/ui/updates/aman/2021-07-27/index.html new file mode 100644 index 0000000000..0f65016ffd --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-07-27/index.html @@ -0,0 +1,61 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

    +
  • +

    Added reusable function for error handling

    +
  • +
  • +

    Fixed Eslint warnings in copyright script

    +
  • +
  • +

    Updated logout function to accept error message as a parameter

    +
  • +
  • +

    Updated home page to display the error message from URL query parameter

    +
  • +
  • +

    Replaced react-helmet with react-helmet-async to fix console warning

    +
  • +
  • +

    Added reuse_report and reuse_copyright boolean option

    +
  • +
  • +

    Created dropdown to select reuse group from the list of accessible groups +Displayed option to select reuse folder within the selected group (Updates whenever reuse group changes)

    +
  • +
  • +

    Gave an option to select an upload within the previously selected folder (Updates whenever reuse group or reuse folder changes)

    +
  • +
  • +

    Fixed prop type check error for the reuse_upload field. A number was expected but event.target.value was returning a string

    +
  • +
+

Screenshot of added pages

+

error passing

+

reuse options

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-08-03/index.html b/docs/2021/ui/updates/aman/2021-08-03/index.html new file mode 100644 index 0000000000..68709bc966 --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-08-03/index.html @@ -0,0 +1,59 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

    +
  • +

    Studied API architecture of Fossology

    +
  • +
  • +

    Added default group name in user self API

    +
  • +
  • +

    Updated frontend to use the default group from API

    +
  • +
  • +

    Added Fossology version in the info endpoint

    +
  • +
  • +

    Updated API version from V1 to V2 in frontend

    +
  • +
  • +

    Added check for null in name initials function

    +
  • +
  • +

    Integrated fossology version API in frontend

    +
  • +
+

Screenshot of added pages

+

footer

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-08-10/index.html b/docs/2021/ui/updates/aman/2021-08-10/index.html new file mode 100644 index 0000000000..2db990aa4b --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-08-10/index.html @@ -0,0 +1,67 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

    +
  • +

    Updated the Fossology version API pull request

    +
  • +
  • +

    Updated the styling of the group dropdown to highlight the currently selected group

    +
  • +
  • +

    Added border to login form in dark theme

    +
  • +
  • +

    Created copyright table using react-table library

    +
  • +
  • +

    Added select option, pagination, sorting features

    +
  • +
  • +

    Added a cross button to deactivate the copyright statement

    +
  • +
  • +

    Created test cases for the copyright table

    +
  • +
  • +

    Added export report option on the browse page

    +
  • +
  • +

    Update the backend code to expose the Content-Disposition header required for downloading a file

    +
  • +
+

Screenshot of added pages

+

copyright table

+

login form border

+

highlighted current user group

+

Pull requests

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/aman/2021-08-17/index.html b/docs/2021/ui/updates/aman/2021-08-17/index.html new file mode 100644 index 0000000000..0c6a5096a0 --- /dev/null +++ b/docs/2021/ui/updates/aman/2021-08-17/index.html @@ -0,0 +1,49 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

    +
  • +

    Fixed the copyright table in dark theme

    +
  • +
  • +

    Added the groupname header in the download report request

    +
  • +
  • +

    Built the docker image of Fossology API Version 2 repo and hosted it on dockerhub at amancodes/fossology-rest-api

    +
  • +
  • +

    Investigated about the CORS error issue with docker image

    +
  • +
  • +

    Updated the FossologyUI wiki

    +
  • +
+

Screenshot of added pages

+

copyright table

+

copyright table dark theme

+

export report

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-06-15/index.html b/docs/2021/ui/updates/shruti/2021-06-15/index.html new file mode 100644 index 0000000000..af3c0960ae --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-06-15/index.html @@ -0,0 +1,52 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

    +
  • Created wireframes of different colour schemes.
  • +
  • Had discussions on wireframes.
  • +
  • Finalized the wireframes.
  • +
  • Decided the libraries to be used.
  • +
  • Finalized the architecture of the codebase.
  • +
  • Created a pull request for the basic folder structure.
  • +
+

Explanation

+

Web application architecture defines the interactions between applications, middleware systems, and databases to ensure multiple applications can work together.

+

Sequence Diagram

+

sequence-diagram

+

Folder Structure

+
|-- public
|-- src
|-- api
|-- assets
|-- [+] images
|-- [+] fonts
|-- components
|-- Header
|-- Footer
|-- [+]
|-- Widgets
|-- [+] Buttons
|-- [+] tests
|-- index.js
|-- constants
|-- endpoints.js
|-- pages
|-- services
|-- styles
|-- App.js
|-- index.js
|-- package.json
+
    +
  • Api: This folder consists the list of all the API functions.
  • +
  • Assets: This folder consists of all the fonts and other media particularly images.
  • +
  • Components: This folder consists of shared elements that can be used by all the pages such as header and footer and consists of sub folder widgets with contains helper components for the pages such as Button, Text Field, Image etc.
  • +
  • Constants: This folder consists the list of all the endpoints for the API and the object for the routes.
  • +
  • Pages: This folder consists of all the pages to be displayed.
  • +
  • Services: This folder defines all the API services.
  • +
  • Styles: This folder contains mainly three files: +
      +
    • Theme: It consists of all the variables related to themes such as primary-color, secondary-color, primary-text etc.
    • +
    • GlobalStyle.js: It consists of all the css related to theme.
    • +
    • global.css: It consists of all the default css such as spacing.
    • +
    +
  • +
+

Wireframes

+

Every project starts with a clear vision. Hence our first step was to design the user interface, taking reference from modern web apps. +A good interface design should be attractive. It means that the use of that interface is enjoyable. The design should include cool user-friendly features with visual appeal. Clarity is the most important characteristic of our user interface design. +We have prepared many prototypes and low as well as high fidelity wireframes for FOSSology.

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-06-22/index.html b/docs/2021/ui/updates/shruti/2021-06-22/index.html new file mode 100644 index 0000000000..821bec0f44 --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-06-22/index.html @@ -0,0 +1,69 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

    +
  • Added the Global style theme provider for the codebase to easily switch between the red theme and grey theme with Styled components.
  • +
  • Updated the copyright and license Header as suggested my mentors.
  • +
  • Added the footer with some global styling.
  • +
  • Added the navbar, created the required pages and added the routes for the pages.
  • +
  • Updated the header for both the themes (lightTheme, darkTheme). +
      +
    • Created the pages for: +
        +
      • Search
      • +
      • Jobs +
          +
        • My Recent Jobs
        • +
        • All Recent Jobs
        • +
        • Schedule Agents
        • +
        +
      • +
      • Organize +
          +
        • Folders
        • +
        • Licenses
        • +
        • Uploads
        • +
        +
      • +
      • Uploads +
          +
        • File
        • +
        • Server
        • +
        +
      • +
      +
    • +
    +
  • +
  • Added the constant routes for all the pages in src/Routes.js
  • +
  • Added react-bootstrap-icons for the icons in Navbar and for the other components.
  • +
  • Updated the favicon.
  • +
  • Updated the README of the codebase.
  • +
  • Added the Home page with features cards to it.
  • +
+

Screenshots

+ +

footer

+ +

navbar

+

Home

+

home

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-06-29/index.html b/docs/2021/ui/updates/shruti/2021-06-29/index.html new file mode 100644 index 0000000000..3df0d9ddf2 --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-06-29/index.html @@ -0,0 +1,57 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

    +
  • Added the fonts and helper classes for font and updated the existing code classes with the new font style.
  • +
  • Fixed the routes for all the pages , previously the pages were getting refreshed on changing of route.
  • +
  • Added the meta tags, that will describes and summarizes the content of our page.
  • +
  • Replaced all the react logos with fossology and updated the manifest.json.
  • +
  • Created the array for all the copyrights in and mapped that array in About Page.
  • +
  • Updated the entities in overview page with plain text.
  • +
  • Updated the navbar other items to display only when user is authenticated as in the current implementation.
  • +
  • Added the sub dropdowns and updated the background color with our theme colours.
  • +
  • Added the theme toggle functionality in the navbar.
  • +
  • Created the context for the global state maintenance.
  • +
  • Added the light and dark theme option in Header.
  • +
  • Added the Report Import page.
  • +
  • Added Input widget for the type radio checkbox and other types which can be used with all the pages. +Note: Added all the state variables for the page as soon as we get the api we have to just link them.
  • +
  • Added the Dockerfile (alternative method) for installation.
  • +
  • Updated the installation method in README.
  • +
+

Screenshots

+

Dark Theme

+

dark-theme

+

Light Theme

+

light-theme

+

Header Sub Dropdown

+

header-sub-dropdown

+

About

+

about

+

about-terms-and-conditions

+

Report Import

+

report-import

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-07-06/index.html b/docs/2021/ui/updates/shruti/2021-07-06/index.html new file mode 100644 index 0000000000..a19a61472c --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-07-06/index.html @@ -0,0 +1,66 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

    +
  • Added the separate button widget related to our theme and replaced the react-bootstrap button with our custom component.
  • +
  • Fixed the login button style.
  • +
  • Added the InputContainer in the widget for all the types which can be reusable by all the components.
  • +
  • Added the search page.
  • +
  • Added the Upload File page for which created the reusable components of IgnoreScm, AccessLevel, Optional Analysis and Upload Reuse which can be reused by the other uploads page of server, vcs, url and schedule analysis in Jobs.
  • +
  • On creating the upload, we are simultaneously doing three processes, creating the upload and checking that it got unpacked or not, and scheduling the analysis.
  • +
  • Created the custom component for Alert and Tooltip.
  • +
  • Replaced the login alert with the custom component.
  • +
  • Added all the pages for the routes and linked them.
  • +
  • Added the prototype for the browse page.
  • +
  • Added the delete Uploads page. Created the getFolders page from where it is fetching all the folders. Created the organizeUploads which contains deleteUploadFile and getUploadsById.
  • +
  • Added the move or copy page in the organize/uploads.
  • +
  • Added the additional information for the components with Tooltip widget.
  • +
  • Added the fossology website target attribute, updated the Move Folder title and updated the styling of search page.
  • +
+

Screenshots

+

Home

+

fix-home

+ +

search

+

file-search

+

Upload File

+

upload-file-error

+

uploaded-file

+

upload-file-reusable-options

+

Custom Alert

+

custom-alert

+

Browse Page Prototype

+

browse-page-prototype

+

Move Uploads

+

move-uploads

+

Copy Uploads

+

copy-uploads

+

Delete Uploads

+

delete-uploads

+

Tooltip

+

tooltip

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-07-13/index.html b/docs/2021/ui/updates/shruti/2021-07-13/index.html new file mode 100644 index 0000000000..928108d71b --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-07-13/index.html @@ -0,0 +1,64 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

    +
  • Added the edit Uploads page. Created the getFolders page from where it is fetching all the folders. Created the organizeUploads which contains deleteUploadFile and getUploadsById.
  • +
  • Replaced the getFolders Api function with the common function in editUploads.
  • +
  • Updated the alerts styling to snackbars. Closes issue #67.
  • +
  • Added the vcs upload page.
  • +
  • Added the recursive request for the request of /uploads/{id}, retries is set to be for 10 now.
  • +
  • Created the issue for single request for the upload and analysis as discussed in the meeting with which user don't have to wait for the analysis process.
  • +
  • Currently, we are not having REST API for edit the uploads, we need to expose the edit upload from api, so created the issue for it.
  • +
  • Remove the redundancy of credentials in the api by setting initial value of credentials to include.
  • +
  • Added the one-shot license analysis page and all the related states to it.
  • +
  • Added the one-shot copyright/email/url page and all the related states to it.
  • +
  • Added the one-shot monk page and all the related states to it.
  • +
  • Created the issue for Access-Control-Expose-Headers response header indicates which headers can be exposed as part of the response by listing their names.
  • +
  • Added the list of all Access control headers and Expose headers used in the fossology.
  • +
  • Added the pagination feature in browse page.
  • +
  • Added the entries field and pagination just like the current implementation.
  • +
  • Stored the response header of x-total-pages in localStorage.
  • +
+

Screenshots

+

Edit Uploads

+

edit-uploads

+

Snackbar

+

danger-snackbar

+

sucess-snackbar

+

One-Shot License Analysis

+

one-shot-license-analysis

+

One-Shot Copright/Email/URL Analysis

+

one-shot-copyright-email-url-analysis

+

One-Shot Monk

+

one-shot-monk

+

Upload From Version Control System

+

upload-from-version-control-system

+

upload-from-version-control-system-request

+

Browse Page Pagination

+

browse-page-pagination

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-07-20/index.html b/docs/2021/ui/updates/shruti/2021-07-20/index.html new file mode 100644 index 0000000000..8c6b49aad2 --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-07-20/index.html @@ -0,0 +1,58 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

    +
  • Added the candidate license page.
  • +
  • Added the prototype for add candidate license page in Admin.
  • +
  • Created the sample page for select license.
  • +
  • Added the downloading of License CSV in admin.
  • +
  • Fixed the styling textarea in dark mode.
  • +
  • Created the widget index.js file where created the imports of all the widgets we required in the codebase.
  • +
  • Refactor the widgets imports it will help us to not import the widget again and again.
  • +
  • Fixed the license headers in all the files to maintain the symmtery.
  • +
  • Added the comments in all the files of services, apis, components, pages, data and many more.
  • +
  • Added the comments for all the imports and state variables.
  • +
  • Fixed the tokens in all the apis.
  • +
  • On clicking the close button of snackbars in the deleteUploads and unlinkFolder it is breaking replaced the onClose function to setShow.
  • +
  • Added the small pop up for loading while changing the pagination or entries, enhances the UX and closes #91
  • +
  • Added the jsconfig.json for the relative paths.
  • +
  • modified the .eslintrc.json fro resolving the imports.
  • +
  • Fixed all the imports to relative paths.
  • +
+

Screenshots

+

Candidate License

+

candidate-license

+

candidate-license

+

Candidate License Pagination

+

candidate-license-pagination

+

candidate-license-pagination

+

candidate-license-dark-theme

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-07-27/index.html b/docs/2021/ui/updates/shruti/2021-07-27/index.html new file mode 100644 index 0000000000..a3a48d8cd0 --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-07-27/index.html @@ -0,0 +1,66 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

    +
  • Blank screen is coming on https://fossology.github.io/FOSSologyUI/, added the public url to the deploy.yml.
  • +
  • Created the .env file from .env.sample for the deployment.
  • +
  • Added the route basename so that later it can also serve on localhost/react.
  • +
  • Added the auth variables needed for login mechanism in env.
  • +
  • Fixed the invalid errors in all the pages, due to airbnb style we have converted the error message to new Error class and which was giving invalid errors on the bad requests.
  • +
  • Added the active class to nav-items and changed the dropdown item colour to the theme primary colour instead of bootstrap primary colour. +
      +
    • Added the secondary colour to the theme.js for the darker shade of active element.
    • +
    • Added the styling in the globalStyle.js for the hover, focus and dropdown.
    • +
    • Added the location for the paths in header component.
    • +
    +
  • +
  • Added the import-parse property in .eslintrc to resolve the parsing errors.
  • +
  • Fixed the groups api function by removing credentials which is defined in sendRequest.
  • +
  • Vcs page was getting broken on making the request. Closes #111. +
      +
    • Changed the promise rejection parameter.
    • +
    • Changd the retries left property in sendrequest.
    • +
    • Returned the function if retries are greater than 0.
    • +
    +
  • +
  • Added the React helmet dependency which also has MIT license.
  • +
  • Created the helper component for the customize title on all the pages.
  • +
  • Updated all the titles of pages.
  • +
  • Fixed the names of api and services functions.
  • +
+

Screenshots

+

Fix errors

+

fix-errors

+

Header hover

+

header-hover

+

Header active

+

header-active

+

Header dropdown

+

header-dropdown

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-08-03/index.html b/docs/2021/ui/updates/shruti/2021-08-03/index.html new file mode 100644 index 0000000000..93f542698f --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-08-03/index.html @@ -0,0 +1,63 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

    +
  • Added the create new license page for candidate. +
      +
    • Added the endpoint and route for createCandidateLicense in constant folder.
    • +
    • Created the function for it in services and api.
    • +
    • Shifted the listing of license page in organize/license folder.
    • +
    +
  • +
  • Fixed the groups error which leads to logout the user again and again.
  • +
  • Added the upload server page and the required state variables for it. +Currently, upload from server api is unavailable.
  • +
  • Code is getting broken if no upload is selected to delete. Added the error checks in deleteUploads.
  • +
  • Fixed the analysis options in vcs. Added the defaultAgentsList function instead of hard coded analysis options.
  • +
  • Fixed the user experience for uploads page since uploads page are longer than one page so on clicking the upload button user have to manually scroll to see the snackbar that whether the file is uploaded or not and for the first time user it may be bit confusing.
  • +
  • Created the separate repository for fossology rest apis.
  • +
  • Added the open pull requests of rest api in the new repository. Added prs are: #2064 and #2038
  • +
  • Opened the issues for required rest apis. +
      +
    • Pagination feature request in the Search api.
    • +
    • Single request for the upload and analysis.
    • +
    • Edit request for the Uploads.
    • +
    • Upload from URL api has missing dependencies.
    • +
    • Jobs api is not giving complete data.
    • +
    +
  • +
+

Screenshots

+

Add new Candidate License

+

add-new-candidate-license

+

add-new-candidate-success

+

Upload From Server

+

upload-from-server

+

Fix Delete Uploads

+

fix-delete-uploads

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-08-10/index.html b/docs/2021/ui/updates/shruti/2021-08-10/index.html new file mode 100644 index 0000000000..f53cfd8f88 --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-08-10/index.html @@ -0,0 +1,82 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

    +
  • No fallback condition is there if no upload is selected in move or copy. +
      +
    • Added the condition for move upload and copy upload.
    • +
    • Added the spinner in buttons.
    • +
    +
  • +
  • Added the browsing of uploads with folders. Closes #131.
  • +
  • Studied API architecture of Fossology.
  • +
  • Added pagination in /search request. Closes #1. +
      +
    • Added the page and limit as header in searchController.php
    • +
    • Updated the maxperpage in search-helper.php
    • +
    • Returned the total number of pages in search result.
    • +
    • Updated the openapi.yaml with the mentioned changes.
    • +
    +
  • +
  • Fixed the version in openapi.yaml closes #10.
  • +
  • Added the pagination in search page. Since new api exposed the pages and limit params.
  • +
  • Added the pages for browseUploads: +
      +
    • Software Heritage
    • +
    • License Browser
    • +
    • File Browser
    • +
    • Copyright
    • +
    • ECC
    • +
    +
  • +
  • Added the browse Uploads separate header.
  • +
  • The ui is shifting down whenever the snackbar is appearing which leads to bad user experience. +
      +
    • Added the styling for keeping the snackbar fixed.
    • +
    • Fixed all the pages.
    • +
    • Shifted snackbar code inside main container to remove the flicker effect.
    • +
    +
  • +
+

Screenshots

+

Search Pagination

+

search-pagination

+

Software Heritage Details

+

software-heritage-details

+ +

copyright-browser

+

File Browser

+

file-browser

+

ECC

+

ecc

+

License Browser

+

license-browser

+

Fixed Snackbar

+

fixed-snackbar

+

fixed-snackbar-search

+

Search API

+

search-api-postman

+

search-api-swagger

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2021/ui/updates/shruti/2021-08-17/index.html b/docs/2021/ui/updates/shruti/2021-08-17/index.html new file mode 100644 index 0000000000..9d73fa46bf --- /dev/null +++ b/docs/2021/ui/updates/shruti/2021-08-17/index.html @@ -0,0 +1,80 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

    +
  • Moved the scheduleAnalysis route in jobs object.
  • +
  • Shifted the scheduleAnalysis function in api/jobs and services/jobs.
  • +
  • Fixed all the uploads such as vcs, url and file and scheduleAgents in jobs.
  • +
  • Fixed the footer text alignment.
  • +
  • Fixed the browse headings size.
  • +
  • Made the header sticky on the top when we scroll down the page.
  • +
  • Added the license browser page.
  • +
  • Added the api endpoints for summary and license of the uploads.
  • +
  • Integrated the api for uploads summary and upload license api.
  • +
  • Since, upload license api has problem of pagination, improper file paths, and it also requires the agent as a header which currently no api is returning, so hard coded the agents for the time being i.e ojo, nomos and monk.
  • +
  • The font inside textareas are weirdly bold and their sizes are inconsistent at different places, so fixed the textareas in all the pages.
  • +
  • Fixed the text-area of license text to monospace font because maximum licenses are optimized for text files of fixed width and thus formatted like that.
  • +
  • Hide the Snackbar after couple of seconds which improves the user experience.
  • +
  • Added the conditions on search headers. +
      +
    • Created the variables for pageParam, pageLimt.
    • +
    • Added the conditions on pages, limit and totalPages.
    • +
    +
  • +
  • Added the updatedUpload function in UpdateController.php.
  • +
  • Added the patch request for /uploads.
  • +
  • Added the function call in RestAuthMiddleware.php
  • +
  • Updated the openapi.yaml with upload patch request.
  • +
  • Added the detailed explanation of folder structure.
  • +
+

Screenshots

+

Schedule Analysis Api

+

schedule-analysis-api

+ +

fixed-footer

+

Browse

+

browse-headings

+ +

sticky-header

+

Upload Summary

+

upload-summary

+

Upload License

+

upload-license +upload-license-table

+

Fix Textarea

+

fix-textarea

+

License Textarea

+

license-textarea

+

Snackbar

+

fixed-snackbar

+

Search API (conditional checks)

+

search-api-conditional-check

+

Edit Upload API

+

edit-upload-api-postman +edit-upload-api-swagger

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2022/GSoC-projects/index.html b/docs/2022/GSoC-projects/index.html new file mode 100644 index 0000000000..33c7bb06ed --- /dev/null +++ b/docs/2022/GSoC-projects/index.html @@ -0,0 +1,370 @@ + + + + + +Google Summer of Code Proposals 2022 | GSoC projects at FOSSology + + + + + +

Google Summer of Code Proposals 2022

Welcome to the main page for all GSoC 2022 related information.

+ +

Intro

+

We from the fossology project would like to apply for GSOC. Please see two main resources for finding out more FOSSology in general:

+ +

Meetings: Checkout the Meetings table

+

Interested in Application? - Getting Grip

+

If you are interested in an application - great! We encourage your application. So the question is how to get started with the topic, just a few points:

+ +

Examples from past programs

+

In 2020, we were awarded seven slots, please see here what was the result of it:

+ +

Also - very much fun - There are some YouTube videos created:

+ +

In 2021, the GSOC program awarded the fossology project with 7 slots. It was a lot bigger and a lot of fun for 2021, a dedicated page has been set up. Please see the GOSC works here.

+

From this page you can also get an idea about the work being carried out: check the weekly reporting, for example for the UI project.

+

Mentors

+

Interested in becoming a mentor? Please reach out to us!

+

Proposals so far:

+ +

Topic Proposals

+

Please reach out to us to add more proposals for GSoC 2022.

+

Currently discussion happening on https://github.com/fossology/fossology/discussions/2140

+

Topic Proposals from 2022

+
    +
  1. SPDX naming updates and reporting
  2. +
  3. REST API and UI improvements
  4. +
  5. Integrating Open Source Review Toolkit
  6. +
  7. Adopting REUSE standards in FOSSology
  8. +
  9. Improving FOSSology CI scanner image
  10. +
  11. Enhancement with ClearlyDefined.io (spasht)
  12. +
  13. Compatibility for PHP-8
  14. +
  15. Introduce concept of project in FOSSology
  16. +
  17. Improve Minerva OSS Dataset and implement models for Atarashi
  18. +
  19. Overhauling scheduler design
  20. +
  21. Debian packaging for Debian repository
  22. +
+

SPDX naming updates and reporting

+

Goal: Update SPDX license names and support for report formats

+
    +
  1. Updating SPDX license names to new naming convention. Resource
  2. +
  3. Fixing issues with SPDX RDF (see notes bellow).
  4. +
  5. Other SPDX format reports, five file formats possible:
  6. +
+
    +
  • Tag/value (.spdx) +
      +
    • Exists
    • +
    +
  • +
  • JSON(.spdx.json) +
      +
    • Can be implemented
    • +
    +
  • +
  • YAML(.spdx.yml) +
      +
    • Can be implemented
    • +
    +
  • +
  • RDF/xml(spdx.rdf) +
      +
    • Exists
    • +
    +
  • +
  • Spreadsheets (.xls) + +
  • +
+

References:

+ +
CategoryRating
Low Hanging Fruit***
Risk/Exploratory**
Fun/Periphial**
Core Development***
Project Infrastructure***
Possible mentorsGaurav, Shaheem, Michael
Project size175 hour
Preferred contributorStudent
+

Notes from SPDX DocFest:

+ +

REST API and UI improvements

+

Goal: Bringing new FOSSologyUI towards completion

+
    +
  1. Continue work on React repo.
  2. +
+
    +
  • Bring in new features.
  • +
  • New design patterns.
  • +
+
    +
  1. Improve REST API and expose more endpoints
  2. +
+ +
CategoryRating
Low Hanging Fruit-
Risk/Exploratory*
Fun/Periphial***
Core Development**
Project Infrastructure***
Possible mentorsShruti, Shaheem, Sahil, Vivek
Project size350 hour
Preferred contributorStudent/Professional
+

Integrating Open Source Review Toolkit

+

Goal: Using ORT to fetch dependencies and generate SBOM

+

Build systems fetch the required dependencies (library/artifact) for a project while building the project. Its important to get an insight of these dependencies for license compliance check.

+

The OSS Review Toolkit is an open source project helps to find dependencies in a project.

+

The goal of this project is to render the project dependencies created by ort and display those in the fossology-UI. Dependencies can be scheduled directly from the UI and scan with fossology.

+

Alternative: oss-review-toolkit/ort#2694

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory-
Fun/Periphial**
Core Development***
Project Infrastructure*
Possible mentorsGaurav, Shaheem, Avinal, Michael
Project size350 hour
Preferred contributorStudent/Professional
+

Adopting REUSE standards in FOSSology

+

Goal: Adopting REUSE.software specs in FOSSology codebase

+

Copyright and licensing is difficult, especially when reusing software from different projects that are released under various different licenses. REUSE make it easier for you to declare the licenses under which your works are released, but they also make it easier for a computer to understand how your project is licensed. This specification defines a standardized method for declaring copyright and licensing for software projects. REUSE also helps in creating a bill of materials with just one simple command.

+

FOSSology currently uses old methods of defining licenses on source files which can lead to some ambiguity. Following the REUSE specs, the code base of FOSSology should be updated with new licensing format.

+

Note: On its own, the project is very small for being a GSoC project. We can club it with other tasks, like working on issue #1592

+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Periphial*
Core Development*
Project Infrastructure***
Possible mentorsGaurav, Michael, Nicolas
Project size175 hour
Preferred contributorStudent
+

Improving FOSSology CI scanner image

+

Goal: Enhancing current scanner image with new reports and features

+

As a fun project, FOSSology started combining scanners in a simple and small Docker image which can be run on CI providers. The +image is currently capable of understanding build environment (GitLab/GitHub Actions/Travis) and use their API's to fetch diff of +a branch or scan the complete repo. The capabilities of image include license scanning with Nomos and ojo scanners, copyright and keyword scanning with respective scanners. The image makes use of a Python script to perform all the tasks.

+
    +
  1. The script, however, currently prints report in text format on console and generate the same as an artifact. It can be improved +by generating reports in other formats like SPDX reports. See their Python API.
  2. +
  3. The integration with GitHub Actions can be improved by reporting line number where a license violation is found.
  4. +
  5. Allowing user to provide a different list of Keywords for scanning (currently stored at /usr/local/share/fossology/keyword/agent/keyword.conf).
  6. +
  7. Improving on whitelist format with feature +to provide it from other sources, currently it is read from a file which is expected to be in the root of repo being scanned.
  8. +
  9. Create a server backed image +
      +
    • There will be a server running on a remote machine.
    • +
    • The CI script will push the package to the server for scan with auto conclusion.
    • +
    • The package will become a version of a project.
    • +
    • Downloads the report and make it available as an artifact.
    • +
    • If there are unidentified licenses left, provide a link for manual review.
    • +
    • This can be extended to integrate with ticket management systems like Jira and redmine.
    • +
    +
  10. +
+

Resources:

+ +
CategoryRating
Low Hanging Fruit-
Risk/Exploratory**
Fun/Periphial***
Core Development**
Project Infrastructure***
Possible mentorsGaurav, Anupam
Project size350 hour
Preferred contributorStudent/Professional
+

Enhancement with ClearlyDefined.io (spasht)

+

Goal: Contribute compliance metadata back to ClearlyDefined.io and community

+

Clearly defined is a project for collecting metadata about published software. This metadata shall help, among other things, for achieving OSS license compliance. More info can be found at:

+ +

The spasht agent is already pulling the data from ClearlyDefined, following enhancements are required:

+
    +
  • Fetch the main license of the package.
  • +
  • What to do if package does not exist on ClearlyDefined.io
  • +
  • Push the curated data back to ClearlyDefined.io +
      +
    • Current understanding: Send a patch request to PATCH /curations and in response, there will be a GitHub prNumber and url
    • +
    • +
      {
      "contributionInfo": {
      "summary": "title (100 char)",
      "details": "What's the problem",
      "resolution": "What's fixed and how",
      "type": "missing/incorrect/incomplete/ambiguous/other",
      "removeDefinitions": false
      },
      "patches": [
      {
      "coordinates": {"type": "composer", "provider": "packagist",
      "namespace": "athome", "name": "odtphp", "revision": "1.5"},
      "revisions": {
      "1.5": {
      "files": [
      {
      "path": "Listeur-odtphp-9f31202/library/zip/pclzip/pclzip.lib.php",
      "license": "LGPL-2.1-or-later",
      "attributions": [
      "123123"
      ]
      }
      ]
      }
      }
      }
      ]
      }
      +
    • +
    +
  • +
+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Periphial**
Core Development**
Project Infrastructure*
Possible mentorsGaurav, Kaushlendra
Project size175 hour
Preferred contributorStudent/Professional
+

Compatibility for PHP-8

+

Goal: FOSSology should be compatible with the PHP-8 version

+
    +
  1. Syntax compatibility for PHP-8
  2. +
  3. Backward compatibility with PHP-7.2.24
  4. +
  5. Omit all the deprecated features.
  6. +
  7. Migrating views from plain PHP to Twig.
  8. +
  9. Introduction to OPcache or other compatible caching mechanism
  10. +
  11. FOSSology should run on top of PHP8
  12. +
+

References

+ +

Docs:

+ +
CategoryRating
Low Hanging Fruit*
Risk/Exploratory**
Fun/Periphial*
Core Development***
Project Infrastructure***
Possible MentorsShaheem, Kaushlendra, Avinal
Project size175 hour
Preferred contributorStudent
+

Good to have: Improving the MVC architecture of Fossology using Symfony +Symfony as of now is used purely for dependency injection but it can do a lot more. Introducing the capabilities and making the architecture more stable is a good extension to the project.

+

Introduce concept of project in FOSSology

+

Goal: Gather uploads under identified projects

+

Originally described in #1738 +A project would be defined by:

+
    +
  • a project ID (as primary key)
  • +
  • a project name
  • +
  • a root folder in Fossology
  • +
  • one or more Group IDs and associated access.
  • +
  • a URL / ID / Free field to link the project to an external tool
  • +
+

This could be used, for example:

+
    +
  • to gather multiple uploads under the same umbrella, +
      +
    • and make bulk changes changes to all uploads / sub-directories that belong to a given project
    • +
    • reuse (cleared) findings from previous scan of same Project (or same component)
    • +
    +
  • +
  • to associate a link to a ticketing system or project management solution
  • +
  • to produce metrics with Work-In-Progress dashboard
  • +
+

In terms of UI integration:

+
    +
  • Add an optional selection of project for new uploads
  • +
  • Add pages to list, edit, delete projects (in Organize or Admin menu)
  • +
  • Display the project name in the "Folder Navigation" window, and in the yellow band
  • +
+

Other extensions:

+
    +
  • inside Projects, create Components +
      +
    • have a proper name
    • +
    • are versioned
    • +
    +
  • +
  • leverage the use of Fossology tags
  • +
+

Practical use example:

+
    +
  • I have a new project FooBar
  • +
  • This project is composed of 3 components: Front-end, Back-end and Mobile application
  • +
  • I want uploads to be stored in folders projects/FooBar/Front-end, ...
  • +
  • I want to be able to give permissions for all Folders and Uploads for that Project
  • +
  • I want to automatically reuse findings from previous scans of same components
  • +
+
CategoryRating
Low Hanging Fruit*
Risk/Exploratory**
Fun/Periphial*
Core Development***
Project Infrastructure*
Possible mentorsNicolas, Anupam
Project size175 hour
Preferred contributorStudent
+

Improve Minerva OSS Dataset and implement models for Atarashi

+

Goal: To implement a semantic text model for finding out OSS license similarity with best accuracy

+

OSS Dataset Repository: Minerva Dataset Generation; +Atarashi Repository: FOSSology/Atarashi

+

In GSoC 2021 @FOSSology we have created our initial OSS License Dataset "Minerva Dataset Generation" which can be used to build Machine Learning models +for license detection in Atarashi. We are now planning to try out few machine learning models to be trained on our dataset for the use case of Atarashi (OSS License Detection). As the open source license texts differ +by very few tokens only which changes the meaning of the text. Semantic Similarity models might be the good place to try but we +are open to discuss more about any other models that can fit our use case perfectly.

+

Tasks:

+
    +
  • Improve Minerva Dataset Generation for more accurate license files
  • +
  • Research and suggest various ML/DL models to be implemented for Atarashi (open for discussion)
  • +
  • Implement the best model discussed for Atarashi
  • +
  • Improve the performance
  • +
+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Periphial***
Core Development**
Project Infrastructure*
Possible mentorsAnupam, Ayush, Kaushlendra, Vasudev
Project size175 hour
Preferred contributorStudent/Professional
+

Overhauling scheduler design

+

Goal: Improving FOSSology scheduler or replacing with OTS solution

+

The existing scheduler design is causing new issues which need to be addressed. Moreover, existing scheduler design is not touched in years.

+

Concerning points

+
    +
  1. The scheduler is written in C which makes it next to impossible to find cause of a failure.
  2. +
  3. The C language does not support exception handling out of the box. It makes code less readable and prone to errors.
  4. +
  5. The linear queue design causes issue when there should be only one instance of an agent running for an upload, but overall the agent is not mutually exclusive. +
    +

    For example, if the monkbulk has a limit set to 1, it should be implied for only single upload. But with linear queue, this monkbulk job will block all other agents from executing even when they are not effected by the results of monkbulk.

    +

    This essentially makes the agent mutually exclusive even though, there is a special flag EXCLUSIVE for the very same purpose: https://github.com/fossology/fossology/wiki/Job-Scheduler#agentconfs

    +
    +
  6. +
+
    +
  • +

    One idea on redesigning the queue, it can be broken into buckets per upload each maintaining its own priority queue. There can be another queue for global operations like maintenance, delagent, etc.

    +
  • +
  • +

    Doing so, each bucket can be traversed in round-robin and pick first pending job and check against host limit. This will eliminate the scenario mentioned in point 3. Also, exclusive agents can be sent to global queue.

    +
      upload specific queue
    |-<upload_2> -> nomos, copyright, ojo, keyword
    |-<upload_3> -> monkbulk, decider, monkbulk, decider
    |-<upload_4> -> reuser, decider

    global queue
    -> delagent,
    +
  • +
+
    +
  1. Since the FOSSology is released, there can be number of new scheduling libraries being released which needs to be explored. They can be a nice addition to the project.
  2. +
+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory**
Fun/Periphial***
Core Development***
Project Infrastructure*
Possible mentorsGaurav, Anupam, Michael
Project size350 hour
Preferred contributorProfessional
+

Debian packaging for Debian repository

+

Goal: Improve Debian packaging and make it acceptable for APT

+

The existing effort to put FOSSology under Debian packaging list needs to be taken forward. A repository under Debian Salsa was setup initially but not maintained any more: https://salsa.debian.org/fossology-team/fossology
+It is configured to use gbp.

+

Blockers

+
    +
  1. The Debian building mechanism does not allow installation from sources other than apt. The Composer packages need to be packed as Debian packages and shipped with FOSSology.
  2. +
  3. Packaging and shipping other tools needs to satisfy their licensing terms.
  4. +
  5. The versions of packages in APT and actual versions used are different.
  6. +
  7. APT also provides JS libraries like JQuery and DataTables but RHL does not.
  8. +
+

See also

+ +
CategoryRating
Low Hanging Fruit*
Risk/Exploratory**
Fun/Periphial***
Core Development*
Project Infrastructure***
Possible mentorsGaurav, Michael
Project size175 hour
Preferred contributorStudent/Professional
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/index.html b/docs/2022/atarashi/index.html new file mode 100644 index 0000000000..8eb20cb5af --- /dev/null +++ b/docs/2022/atarashi/index.html @@ -0,0 +1,27 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-06-02/index.html b/docs/2022/atarashi/updates/2022-06-02/index.html new file mode 100644 index 0000000000..258ac36e39 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-06-02/index.html @@ -0,0 +1,85 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Project setup done.
  • +
  • Since it was the first meeting of community bonding period, we were introduced to every mentors and contributers.
  • +
  • Deciding upon two ideas to import dataset.
  • +
+

Conclusion and Further Plans

+
    +
  • Compatible meeting timing was decided
  • +
  • Need to keep gsoc page updated
  • +
+

Meeting 2

+

(June 9th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Created one pr and get it merged
  • +
  • Had a discussion on logistic regression model and we are going to implement it
  • +
  • Created a collab notebook for simple implementation of lr model and get it tested on atarashi agent locally
  • +
+

Conclusion and Further Plans

+
    +
  • Will try to optimize the model parameters
  • +
  • Learn and try out different ways of using the trained model: +
      +
    • Either training part can be done in atarashi itself
    • +
    • Or we can use separate repo for training purpose
    • +
    +
  • +
  • Discuss different models with mentors
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-06-13/index.html b/docs/2022/atarashi/updates/2022-06-13/index.html new file mode 100644 index 0000000000..900cbb9853 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-06-13/index.html @@ -0,0 +1,46 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Meeting 3

+

(June 16th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Was majorly working on model training and improving the accuracy. Last week +I was geeting the accuracy of 56% for logistic regression model, now after +some modification model accuracy is increased to 59%.
  • +
  • Also tried some other supervised learning models like RandomForest and lsvm.
  • +
  • And had a discussion with mentors regarding where the training scripts should +be kept and we came to conclusion that the model should be trained in our +Minerva repo itself +and Atarashi will just have to import +the model binary from there.
  • +
+

Conclusion and Further Plans

+
    +
  • Will explore some semantic similarity models for text classification
  • +
  • Also try to improve accuracy further
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-06-20/index.html b/docs/2022/atarashi/updates/2022-06-20/index.html new file mode 100644 index 0000000000..c7108dc503 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-06-20/index.html @@ -0,0 +1,62 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Meeting 4

+

(June 23rd, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • +

    Implemented SGDClassifier +on the dataset and got the accuracy of 55 percent.

    +

    Total files scanned = 100, +Successfully matched = 55

    +
    ++++++++++++++++++ Result ++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++
    ---> Total time elapsed: 6.29 Seconds <---
    ---> Accuracy: 55.0% <---
    ++++++++++++++++++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++
    +
  • +
  • +

    Also the accuracy of previously implemented LogisticRegression is increased to 63 percent.

    +

    Total files scanned = 100, +Successfully matched = 63

    +
    ++++++++++++++++++ Result ++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++
    ---> Total time elapsed: 4.19 Seconds <---
    ---> Accuracy: 63.0% <---
    ++++++++++++++++++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++
    +
  • +
  • +

    Raised one PR +on Minerva to add the +tested model of Logistic Regression.

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Will implement sklearn's Linear support vector machine on the +dataset.
  • +
  • And will raise prs for the implemented model and their agents on both +Minerva and +Atarashi repository in upcoming days.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-06-27/index.html b/docs/2022/atarashi/updates/2022-06-27/index.html new file mode 100644 index 0000000000..96de77edee --- /dev/null +++ b/docs/2022/atarashi/updates/2022-06-27/index.html @@ -0,0 +1,64 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Meeting 5

+

(June 30th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • +

    Raised PR's on both Minerva and +Atarashi

    + +
  • +
  • +

    Started working on creating the packages for the trained model. For example the folder structure for +LogisticRegression model should look like:

    +

    └── logreg +├── MANIFEST.in +├── README.md +├── setup.py +└── src +├── LICENSE +├── logreg +│ ├── data +│ │ └── logreg +│ └── init.py +└── model_train.py

    +
  • +
  • +

    Implemented Linear support vector machine +model on dataset and got the accuracy of 63%

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Will create the python package for both models that +has been implemented till now.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-07-04/index.html b/docs/2022/atarashi/updates/2022-07-04/index.html new file mode 100644 index 0000000000..fe1fc63ed0 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-07-04/index.html @@ -0,0 +1,69 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Meeting 6

+

(July 07th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+ +
                  +-- linearsvc
│ +-- LICENSE
│ +-- MANIFEST.in
│ +-- README.md
│ +-- setup.py
│ +-- src
│ +-- linearsvc
│ │ +-- data
│ │ │ +-- linearsvc
│ │ +-- __init__.py
│ +-- model_train.py
+-- logreg
+-- LICENSE
+-- MANIFEST.in
+-- README.md
+-- setup.py
+-- src
+-- logreg
│ +-- data
│ │ +-- logreg
│ +-- __init__.py
+-- model_train.py
+
    +
  • +

    Modified init.py from the src folder of both the python packages as suggested:

    +
      +
    • In the code below, it can be seen that the linearsvc class have two functions: +
        +
      1. linearsvc.classify() can be called to get the model classifier and the classifier can +be further used to predict the license shortname for atarshi +agent just by using the predict() +function.
      2. +
      3. And in linearsvc.predict_shortname(), we can directly pass the preprocessed file and it will +return the license shortname.
      4. +
      +
    • +
    • Similar functions has been implemented for logreg model also.
    • +
    +
  • +
+
            class linearsvc():
def __init__(self, preprocessed_file):
self.preprocessed_file = preprocessed_file

def classify(self):
data = resource_filename("linearsvc", "data/linearsvc")
with open(data, 'rb') as f:
Classifier = pickle.load(f)
return Classifier

def predict_shortname(self):
predictor = self.classify()
return predictor.predict(self.preprocessed_file)
+ +

Conclusion and Further Plans

+
    +
  • Will make the changes according to further suggestion.
  • +
  • Will start implementing okapi_BM25 in place of +tfidftransformer +for ranking the license text on dataset for training the models and compare which among the two is working better +on dataset.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-07-11/index.html b/docs/2022/atarashi/updates/2022-07-11/index.html new file mode 100644 index 0000000000..b36db7ee7b --- /dev/null +++ b/docs/2022/atarashi/updates/2022-07-11/index.html @@ -0,0 +1,58 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Meeting 6

+

(July 14th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • +

    Made changes suggested by the mentors on the pr +creted on Minerva.

    +
  • +
  • +

    Implemented agent on atarashi for +okapibm25 and got the accuracy score of 62%.

    +
              Total files scanned = 100
    Successfully matched = 62

    ++++++++++++++++++ Result ++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++
    ---> Total time elapsed: 11.67 Seconds <---
    ---> Accuracy: 62.0% <---
    ++++++++++++++++++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++
    +
  • +
  • +

    And raised the pr for the same.

    + +
     def scan(self, filePath):
    '''
    Read the content of filename, extract the comments and preprocess them.
    Find the license of the preprocessed file.
    :param filePath: Path of the file to scan
    :return: Returns the license's short name with highest similarity scores
    '''
    processedData = super().loadFile(filePath)

    with open(filePath) as file:
    raw_data = file.read()
    spdx_identifers = spdx_identifer(raw_data,
    self.licenseList['shortname'])

    match = []
    if spdx_identifers:
    match.extend(spdx_identifers)
    else:
    tokenize_corpus = []
    corpus_identifier = []
    for idx in range(len(self.licenseList)):
    tok = self.licenseList.iloc[idx]['processed_text'].split(" ")
    tokenize_corpus.append(tok)
    tok_identifier = self.licenseList.iloc[idx]['shortname']
    corpus_identifier.append(tok_identifier)

    bm25 = BM25Okapi(tokenize_corpus)
    doc_scores = bm25.get_scores(processedData.split(" "))
    indices = np.argsort(doc_scores)[::-1][:10]

    for index in indices:
    match.append({
    "shortname": str(corpus_identifier[index]),
    "sim_score": doc_scores[index],
    "sim_type": "bm25",
    "description": ""
    })

    return match
    +
      +
    • In above given code it can be seen that I have used bm25 to transform +processed text and then the similarity score has been calculated.
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Will make the changes according to further suggestion.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-07-19/index.html b/docs/2022/atarashi/updates/2022-07-19/index.html new file mode 100644 index 0000000000..11d1e0d2bc --- /dev/null +++ b/docs/2022/atarashi/updates/2022-07-19/index.html @@ -0,0 +1,77 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Meeting 8

+

(July 21st, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • +

    This week I was wrapping up my all contributions till mid-term evaluation.

    +
  • +
  • +

    Major Pull Requests:

    +
      +
    • +

      Add agent for Logistic Regression model on atarashi

      +
        +
      • This pull requested was created for the Logistic Regression agent that I have implemented +on atarashi. Currently the agent is giving the accuracy of +63 percent.
      • +
      +
    • +
    • +

      Add agent for Linear Support vector machine

      +
        +
      • This agent is also giving the accuracy of 63 percent. And the pull request for the same has +been created on atarashi.
      • +
      +
    • +
    • +

      Add Okapibm25 agent

      +
        +
      • The agent for Okapibm25 is the very basic implementation. I have used +Rank_bm25 package for +transformation and the accuracy score is 62 percent.
      • +
      +
    • +
    • +

      Add model packages

      +
        +
      • This pull request was created for the package that I have created for trained models. The +package can be used in atarashi agent for predicting the license short name from source code.
      • +
      +
    • +
    +
  • +
+

Conclusion and Further Plans

+
    +
  • Will start working further and train some deep learning model on +minerva dataset
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-07-26/index.html b/docs/2022/atarashi/updates/2022-07-26/index.html new file mode 100644 index 0000000000..e70fb9cfba --- /dev/null +++ b/docs/2022/atarashi/updates/2022-07-26/index.html @@ -0,0 +1,38 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-08-02/index.html b/docs/2022/atarashi/updates/2022-08-02/index.html new file mode 100644 index 0000000000..ce389d855e --- /dev/null +++ b/docs/2022/atarashi/updates/2022-08-02/index.html @@ -0,0 +1,53 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Meeting 10

+

(August 4th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Updates

+
    +
  • Doc2vec Model requires tagged document for training the model, +such that it can make a vector for each document that can be further use to calculate cosine similarity for the +license statement. Due to lack of memory in my computer I was not able to tag whole dataset. +So currently for checking the working of model, this week I have trained a smaller part of dataset on +Doc2vec Model.
  • +
  • Created agent for the same trained model on atarashi +and got the accuracy score of 8 percent.
  • +
+
 Total files scanned = 100
Successfully matched = 8

++++++++++++++++++ Result ++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++
---> Total time elapsed: 13.02 Seconds <---
---> Accuracy: 8.0% <---
++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++
+
    +
  • Working of agent is shown below:
  • +
+
{
"file": "/home/shushant/check.py",
"results": [
{
"description": "",
"shortname": "BSD-1-Clause",
"sim_score": 0.5472090244293213,
"sim_type": "semanticTextSim"
}
]
}
+

Conclusion and Further Plans

+
    +
  • Trainig has been done on a smaller part of dataset. Will train +Doc2vec Model on whole dataset and see if any further improvement is +needed or not.
  • +
  • Will start working on the documentation for final evalutation.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-08-09/index.html b/docs/2022/atarashi/updates/2022-08-09/index.html new file mode 100644 index 0000000000..042d5fe0b0 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-08-09/index.html @@ -0,0 +1,44 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Meeting 11

+

(August 11th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Updates

+
    +
  • Created a report of my project for final evaluation. Report can be seen here
  • +
  • Traning of Doc2vec Model is on hold for now because the model +is taking too long to train.
  • +
  • Started learning transformers for implementing it on minerva dataset
  • +
+

Conclusion and Further Plans

+
    +
  • As the main part of my project is completed and currently I am working on some optional part of the project, will +work accordingly as per the suggestions from mentors.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-08-16/index.html b/docs/2022/atarashi/updates/2022-08-16/index.html new file mode 100644 index 0000000000..66ed74c5e2 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-08-16/index.html @@ -0,0 +1,27 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-08-23/index.html b/docs/2022/atarashi/updates/2022-08-23/index.html new file mode 100644 index 0000000000..19ad37d1e8 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-08-23/index.html @@ -0,0 +1,37 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

Meeting 13

+

(August 25th, 2022)

+

GSOC 2022 weekly update

+

Updates

+
    +
  • Implemented algorithm for bert transformer: +
      +
    • Basically the implementation is done using the labelling of different classes and create a dictionary where the +license short name is key and it's label is value.
    • +
    +
        possible_labels = df.short_name.unique()

    label_dict = {}
    for index, possible_label in enumerate(possible_labels):
    label_dict[possible_label] = index
    +
      +
    • And for tokenizing and encoding bert-base-uncased pretrained model is used.
    • +
    +
        tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', 
    do_lower_case=True)

    encoded_data_train = tokenizer.batch_encode_plus(
    df[df.data_type=='train'].text.values,
    add_special_tokens=True,
    return_attention_mask=True,
    pad_to_max_length=True,
    max_length=256,
    return_tensors='pt'
    )
    +
  • +
  • And for now trained a transformer model on smaller part of minerva dataset +because the model requires a lot of RAM and time for training the whole dataset.
  • +
  • Created a simple notebook for the trained model. It can be seen here.
  • +
+

Conclusion and Further Plans

+
    +
  • Will keep contributing to the organization.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/atarashi/updates/2022-08-30/index.html b/docs/2022/atarashi/updates/2022-08-30/index.html new file mode 100644 index 0000000000..a600217be0 --- /dev/null +++ b/docs/2022/atarashi/updates/2022-08-30/index.html @@ -0,0 +1,33 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/index.html b/docs/2022/index.html new file mode 100644 index 0000000000..8da02f5321 --- /dev/null +++ b/docs/2022/index.html @@ -0,0 +1,55 @@ + + + + + +GSoC'22 @ FOSSology | GSoC projects at FOSSology + + + + + +

GSoC'22 @ FOSSology

2022 was the fifth time participation for FOSSology in +Google Summer of Code.

+

You can visit our idea page for GSoC 2022.

+

This year, we had 8 amazing contributors working with us and spending their summer +contributing to the Open Source. The contributions made to the project are +superb and will help FOSSology to grow as a richer tool and ecosystem.

+

Projects

+

Following are the important links to projects.

+
ContributorProjectFinal Reports
Ayush KumarReact UI<- couldn't complete
Feng WenhanConcept of ProjectVisit
Krishna MahatoReact UIVisit
Rohit PandeyREUSE standardsVisit
Samuel DushimimanaReact UIVisit
Soham BanerjeeReact UIVisit
Sushant KumarMinerva-AtarashiVisit
Thanvi Lahari PendyalaSpasht<- Discontinued
+

These links (also on the left sidebar) contains information about the project, +the weekly updates from the students and even technical documentation which +were generated during the Google Summer of Code.

+

Mentors

+ +

Meetings table

+
Topic(s)TimingsMeeting linkICS
General MeetingThursdays 12:30 - 13:30 UTCMicrosoft Teams.ics
----
Atarashi - MinervaWednesdays 04:30 - 05:00 UTCMicrosoft Teams.ics
REUSE projectTuesdays 12:00 - 12:30 UTCMicrosoft Teams.ics
React UITuesdays 14:30 - 15:30 UTCMicrosoft Teams.ics
Spasht---
Concept of projectThursdays 09:00 - 09:30 UTCMicrosoft Teams.ics
+

Photo

+

Due to tough situations this year, we could not meet anyone in person despite +being in same place sometimes. But with the help of technology, we managed to +capture som screenshots of our concluding call with every student and mentor.

+

group photo1 +[Participants photo 1]

+

group photo2 +[Participants photo 2]

+

group photo3 +[Participants photo 3]

+

Thanks for being part of the community. 💚

+ + \ No newline at end of file diff --git a/docs/2022/minutes/02-06-2022/index.html b/docs/2022/minutes/02-06-2022/index.html new file mode 100644 index 0000000000..84131bd2cf --- /dev/null +++ b/docs/2022/minutes/02-06-2022/index.html @@ -0,0 +1,104 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Welcome to meeting minutes page for GSoC 2022.

+

Attendees:

+ +

General

+

Welcome to the first updates meeting from Shaheem Azmal M MD.

+

Tool to track the updates. +Every student need to update the weekly progress. +For more details refer GSOC 2021.

+

Gaurav Mishra explains about the tool.

+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Project setup done. Deciding upon two ideas to import dataset. Actively contacting mentors
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Was able to set up project. Couldn't do much as I was busy with exams.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Project setup done contributed few PRs for fossology community(merged). Looking in to reuse project.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Project setup done. Contacting mentors, understanding Spasht. Need to work on open PR's from fossology community.
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Done with project set up. Contributed few PRs. Contacted Shruthi for quesions and understanding.
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Sent/shared a document with mentors about what needs to be done. Installed and set up project done. Doing some research on project.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Project setup done. Fixed some issues for UI project. Looking in to the code to find more issues.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • I've done setting up the project .
    • +
    • I've mastered the front-end (FossologyUI) project structure.
    • +
    • I've got familiar to your flow of the project built on top of PHP Slim framework. +and I went across through your APIs documentation and saw the done and the ones still on the queue.
    • +
    +
  • +
+

Meetings & Timings for individual projects

+
    +
  • UI Project - every tuesday 8:00 pm to 9:00 pm IST (4:30 pm to 5:30 pm europe).
  • +
  • Spasht - every wednesday 4:30 pm to 5:00 pm IST.
  • +
  • Reuse - every tuesday 5:30 pm to 6:00 pm IST.
  • +
  • Atarashi - every tuesday 5:00 pm to 5:30 pm IST.
  • +
  • Introduction of Project - every thursday 5:00 pm to 5:30pm for Feng, 2:30 pm to 3:00pm in India. # , 11:00 am to 11:30 am in Europe.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/04-08-2022/index.html b/docs/2022/minutes/04-08-2022/index.html new file mode 100644 index 0000000000..352446dd78 --- /dev/null +++ b/docs/2022/minutes/04-08-2022/index.html @@ -0,0 +1,72 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Welcome to meeting minutes page for GSoC 2022 at FOSSology 04-08-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion/KT on database needs to be done by Shaheem Azmal M MD. which is planned on next week.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Working on remaining comments my mentors and training a doc to vec modal. as siggested by mentors.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Last week i have modified the text content. was facing some issue with debug and was not getting anything in UI clarified with mentors.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Worked on documentation part and finished. currently working in coping license results from license folder to files. facing some issues with database clarified with mentors.
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Finished my exams and worked on token API. facing some cors issue on my browser. clarified my it with mentors.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Since last week im working in getting clearing status of file tree view. currently struck on writing a query. clarified my quesions with mentors.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • I was not able to contribute much last week as this the last week of my college. But i have added a confirmation message if someone tries to delete a group.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/07-07-2022/index.html b/docs/2022/minutes/07-07-2022/index.html new file mode 100644 index 0000000000..0f7e5985ff --- /dev/null +++ b/docs/2022/minutes/07-07-2022/index.html @@ -0,0 +1,90 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Welcome to meeting minutes page for GSoC 2022 at FOSSology 07-07-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion om REUSE Standard abiut the ignorim=ng the test data.
  • +
  • STUDENTS: Better to share the screen while updating the status.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • I was working on the suggetions by mentors on the PR. Training the dataset on docker.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • I have created the duplicate of browse page. and looked into the code which adds/manages the project. will work on this next week.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Working on the copyright agent, explored the regular expression. Created a issue in REUSE community and got a reply.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • I have connected the weeekly call after my exams this week and i have understood how to curate the data or create a pull request in clearly defined will work further.
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • I tried the VM installation and installed fossology. will start the development soon, as im facing some issues in filesystem.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Demo Fixed the browse page pagination and small issue in folder view endpoint of jobs.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    + +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/09-06-2022/index.html b/docs/2022/minutes/09-06-2022/index.html new file mode 100644 index 0000000000..28447cddb7 --- /dev/null +++ b/docs/2022/minutes/09-06-2022/index.html @@ -0,0 +1,89 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Welcome to meeting minutes page for GSoC 2022 at FOSSology 09-06-2022.

+

Attendees:

+ +

General

+
    +
  • +

    Vivek Kumar

    +
  • +
  • +

    Will create a video/doc on setting up the FOSSology and FOSSologyUI project.

    +
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Already started working on atarashi. Raised a PR in community. A model developed which is giving around 56% accuracy.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Explored the blog links shared by mentors. Would like to raise a PR with few changes just for review from mentors.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Understood how curations are done in the weekly call. Understood atarashi, will install it and work soon.
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Started with development, recently created a PR. Clarified styling issues with fellow mentee, reading codebase.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Looked into code base for issues, reported a issue and mentor referred to work on existing issue. Explored upload directory I think we can reuse constants.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Exploring backend. Looked in to some youtube videos on rest API, ready to work on backend.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/11-08-2022/index.html b/docs/2022/minutes/11-08-2022/index.html new file mode 100644 index 0000000000..8fa9f3b3e2 --- /dev/null +++ b/docs/2022/minutes/11-08-2022/index.html @@ -0,0 +1,69 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

Welcome to meeting minutes page for GSoC 2022 at FOSSology 11-08-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion/KT on database needs to be done by Shaheem Azmal M MD. As he was busy with some other work it is planned on 16th and 17th august.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • I have trained a doc to vec modal. the dataset for the agent is working but with very low accuracy of 8%. Looking for the options to improve it.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Worked on adding the project to upload from file page and i was successful. currently getting a duplicate of select trying to remove it.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Worked on documentation part of RESO agent. i have implemented both the tasks now i have to work on displaying it in UI.
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • License endpoint with clearing status has been raised in community. now working on creating the scope. and also working on updating the UI pull requests.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Worked on merging the multiple API calls to one. also working on API of maintainance Agent.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/14-07-2022/index.html b/docs/2022/minutes/14-07-2022/index.html new file mode 100644 index 0000000000..402ee9584b --- /dev/null +++ b/docs/2022/minutes/14-07-2022/index.html @@ -0,0 +1,101 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Welcome to meeting minutes page for GSoC 2022 at FOSSology 14-07-2022.

+

Attendees:

+ +

General

+
    +
  • We are currently heading towards the first results phase and we see that the most of the students are lagging on what they have estimated. As mentors and admins, We also see that what you have promised and what you delivered. Please dedicate some more time so that you can finish what is lagging.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Made changes on the pull request of Minerva project. Created a agent with PM25 Transformer which gave accuracy of 67%. PM25 has a apache license for which we have to search for a alternative.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Demo about the changes on concept of project. Now will work on unlink content page and move or copy page. And make the current pages dynamic..
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Will add Ignore syntax for the test data pages and clarified few questions with mentors. Also working on regular expression of the second part.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Demo on current implementation. I tried to get license as we discussed in the yesterday's meet. Once I finish the license and then I can get the part and attributions, if these 3 are done, the entire patch will be ready to send back to the data. I also created the API request.
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Started working on REST API. After fixing the SSH issue on my side. Also contributed a PR for adding a User Via Rest. As suggested by Gaurav need to simplify/refactor the add user function. Currently working on edit User.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Last week I have worked on jobs endpoint also changes as requested by mentors. Currently the pull request is under review. Also the PR which fixes the columns in showjobs page.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    + +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/16-06-2022/index.html b/docs/2022/minutes/16-06-2022/index.html new file mode 100644 index 0000000000..7ad2153bb5 --- /dev/null +++ b/docs/2022/minutes/16-06-2022/index.html @@ -0,0 +1,82 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Welcome to meeting minutes page for GSoC 2022 at FOSSology 16-06-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion on UI. Proposes to show new UI pages.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Focusing on Modal training. Accuracy improved with some modifications. Atarashi needs to import modal as binary.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Just set up done was reading the documents, discussed how to add the project concept to FOSSology. Mentors need to share the requirement document with feng.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Working on comments by mentors. Noted that we should not add author to copyright so making the changes.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Created the basic UI for contribute back to clearly defined. I have added the fields like name, provider etc.. to post back to clearly defined.
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Wanted to work on pages like create user, edit user, Rest does not exist so will create pages first and work on rest API.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Stared working on all jobs page finished it and created the PR. Mentors need to review. Looking forward to work on my recent jobs.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • I prefer to work on backend. Explored the flow just going to start working. Have some questions will post it in slack channel.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/18-08-2022/index.html b/docs/2022/minutes/18-08-2022/index.html new file mode 100644 index 0000000000..b335b6ce13 --- /dev/null +++ b/docs/2022/minutes/18-08-2022/index.html @@ -0,0 +1,72 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + +

Week 12

Welcome to meeting minutes page for GSoC 2022 at FOSSology 18-08-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion/KT on database has been done by Shaheem Azmal M MD on 16th and 17th august.
  • +
  • In person meeting didnt happen as most of the mentors and org Admins and on vacation.
  • +
  • Shaheem Azmal M MD asked students to send updates via message through slack.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • No Updates.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • No Updates.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • No Updates.
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • No Updates.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • In the past week I have been following your database sessions and trying to understand the database of the fossology more. I was working on all the raised PRs and updated them with the changes requested by the respective mentors. I was also working on a method to display the clearing decision on the UI itself. Will raise a PR for this as soon as the PR for the backend is merged. In addition to that I was able to plan out a way to return the number of decisions to be cleared for each file name and will try to implement them soon. Also I am currently lagging behind in the gsoc docs section which I plan to clear it out asap.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Integrated Fossology Maintenance Page, Added UI tests for UPLOAD functionality, Added get license candidates API, Added A REST API TO import a csv-license file, Added all the requested changes to the API to initiate Fossology Maintenance.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/21-07-2022/index.html b/docs/2022/minutes/21-07-2022/index.html new file mode 100644 index 0000000000..d82c0a34bc --- /dev/null +++ b/docs/2022/minutes/21-07-2022/index.html @@ -0,0 +1,82 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Welcome to meeting minutes page for GSoC 2022 at FOSSology 21-07-2022.

+

Attendees:

+ +

General

+
    +
  • We are currently heading towards the first results phase and we see that the most of the students are lagging on what they have estimated. As mentors and admins, We also see that what you have promised and what you delivered. Please dedicate some more time so that you can finish what is lagging.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Fixing warnings in the agent i have created. Also resolved the comments by mentors on the pull request.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Raised two pullrequests for reuse standerd. Apart from that working on second part to identify "SPDX-FileCopyrightText:" and copyright license findings.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Dropped
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Last week I have worked on jobs endpoint also changes as requested by mentors. Currently the pull request is under review. Also the PR which fixes the columns in showjobs page.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • +

      Test some of my renaming APIs that are on the test queue and learned to how to solve particular errors which i used to encounter while testing.

      +
    • +
    • +

      Released a new API To remove a particular user from a specific group: https://github.com/fossology/fossology/pull/2269 (edited)

      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/23-06-2022/index.html b/docs/2022/minutes/23-06-2022/index.html new file mode 100644 index 0000000000..16fcd972b8 --- /dev/null +++ b/docs/2022/minutes/23-06-2022/index.html @@ -0,0 +1,87 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Welcome to meeting minutes page for GSoC 2022 at FOSSology 23-06-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion on updating of reports regularly by students.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Worked on SGD Classifier it is giving 55% accuracy. Also improved the accuracy of logistic regression to 65%, Mentors suggested to use pipeline for modal training.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Last week I have created few videos for basic workflow of FOSSology in English and Chinese (https://b23.tv/7MEyr04). I have also checked the code related to groups. and understood the requirements of "concept of projects". I will start working on this and will be ready with a PR by next week.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Created a second PR with changes suggested by mentors. Added copyright text of empty copyright files to "(c) FOSSology Contributors". Will continue with more changes.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Worked on pages like create user, edit user completed with UI. Rest does not exist so will work on rest API.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Worked on all recent jobs page and my recent jobs page last week and implemented changes/ comments proposed by mentors. Also worked on search functionality in browse page.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • I have worked on two pages one is maintenance page and other one is duplicate bucketpool page. Now working on integrating RESTAPI for maintenance page. Also looking forward to work on different pages.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/25-08-2022/index.html b/docs/2022/minutes/25-08-2022/index.html new file mode 100644 index 0000000000..9e11074385 --- /dev/null +++ b/docs/2022/minutes/25-08-2022/index.html @@ -0,0 +1,69 @@ + + + + + +Week 13 | GSoC projects at FOSSology + + + + + +

Week 13

Welcome to meeting minutes page for GSoC 2022 at FOSSology 25-08-2022.

+

Attendees:

+ +

General

+
    +
  • Discussed FOSSology community updates.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Created a documentation report. already on last part of my project training a Model.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Worked on create, edit and delete project. Also view project page through browse.
    • +
    • Cleaning the code so that it can be pushed and reviewed by mentors.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Working on clearing status as mentors asked not to modify the existing code, So im thinking of creating seperate functions and work on it.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Working on review comments by mentors. Also worked on delete candidate license Via REST API. will create a pull request soon.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/28-07-2022/index.html b/docs/2022/minutes/28-07-2022/index.html new file mode 100644 index 0000000000..a27508d9d7 --- /dev/null +++ b/docs/2022/minutes/28-07-2022/index.html @@ -0,0 +1,80 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Welcome to meeting minutes page for GSoC 2022 at FOSSology 28-07-2022.

+

Attendees:

+ +

General

+
    +
  • We are currently heading towards the first results phase and we see that the most of the students are lagging on what they have estimated. As mentors and admins, We also see that what you have promised and what you delivered. Please dedicate some more time so that you can finish what is lagging.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Last week i have mofified the text content of the project also i tried to work on upload page.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Raised a pull request in fossology community for identifing "SPDX-FileCopyrightText:" it is currently under review. also im creating documentation.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Dropped.
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Implemented license browser page. understood that it needs more REST endpoints. currently working on replicating clearing status. clarified my quesions with mentors.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Absent
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/minutes/30-06-2022/index.html b/docs/2022/minutes/30-06-2022/index.html new file mode 100644 index 0000000000..f1ff313396 --- /dev/null +++ b/docs/2022/minutes/30-06-2022/index.html @@ -0,0 +1,82 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Welcome to meeting minutes page for GSoC 2022 at FOSSology 30-06-2022.

+

Attendees:

+ +

General

+
    +
  • Discussion on database tables upload, uploadtree, pfile.
  • +
+

Updates from students

+
    +
  • +

    Sushant Kumar

    +
      +
    • Raised two pull requests in atarashi and Minerva repositories. I was mainly working on packaging and linear spectrum model.
    • +
    +
  • +
  • +

    Feng Wenhan

    +
      +
    • Last week I have tried to add project into the menu but felt it was difficult. Mentors have clarified my questions and explained the flow about menu. I will try to finish this week.
    • +
    +
  • +
  • +

    Rohit Pandey

    +
      +
    • Implemented all the suggestions proposed by Gaurav Mishra. Trying to finish further files. Thinking of finishing the first part by 4th week.
    • +
    +
  • +
  • +

    Thanvi Lahari Pendyala

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Ayush Kumar

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Krishna Mahato

    +
      +
    • Absent
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Demo on all recent jobs page and my recent jobs page. Worked on rest api of showjobs page mentors suggested some changes working on it.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Wanted to start with simple API so selected Groups. Two pull requests created in fossology community. Which is under review.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/index.html b/docs/2022/project/index.html new file mode 100644 index 0000000000..b61483647f --- /dev/null +++ b/docs/2022/project/index.html @@ -0,0 +1,44 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+ +

Contact info

+ + + +

Introduce concept of project in FOSSology

+

I would like to participate in the project “Introduce concept of project in +FOSSology” which can be founded in the idea list. The “project” is defined by:

+
    +
  1. a project ID (as primary key)
  2. +
  3. a project name
  4. +
  5. a root folder in Fossology
  6. +
  7. one or more Group IDs and associated access.
  8. +
  9. a URL / ID / Free field to link the project to an external tool
  10. +
+

The “project” concept is put by Nicolas Toussaint in the issue +#1738. As described, it +could be useful in many ways, such as gathering multiple uploads under the same +umbrella, and making bulk changes to all uploads / sub-directories that belong +to a given project. This project is like a web project. I need to modify both +back-end logic and front-end pages. And the product of this project will be a +new-version website that could support the operations on “project” level.

+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-06-02/index.html b/docs/2022/project/updates/2022-06-02/index.html new file mode 100644 index 0000000000..b00911a95a --- /dev/null +++ b/docs/2022/project/updates/2022-06-02/index.html @@ -0,0 +1,43 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

Attendees

+
    +
  • Katharina
  • +
  • Michael
  • +
  • Nicolas
  • +
  • Anupam
  • +
  • Gaurav
  • +
  • Shaheem
  • +
  • Kaushalendra
  • +
  • Ayush
  • +
  • Shruthi
  • +
  • Avinal
  • +
  • Sushant Kumar
  • +
  • Feng Wenhan
  • +
  • Rohit Pandey
  • +
  • Thanvi Lahari Pendyala
  • +
  • Ayush Kumar
  • +
  • Krishna Mahato
  • +
  • Soham Banerjee
  • +
+

Discussions

+

Discussion about the progress and the time of next weekly discussion

+

Conclusion and Further Plans

+
    +
  • Was able to set up project. However, I didn't do much as i was busy with final exams.
  • +
  • Will begin my work the next week
  • +
  • The time of weekly discussion is arranged on every thursday 5:00 pm to 5:30pm for me(in China), 2:00 pm to 2:30pm in India. # , 11:00 am to 11:30 am in Europe.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-06-09/index.html b/docs/2022/project/updates/2022-06-09/index.html new file mode 100644 index 0000000000..4ecef3e0bd --- /dev/null +++ b/docs/2022/project/updates/2022-06-09/index.html @@ -0,0 +1,37 @@ + + + + + +Week1 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-06-16/index.html b/docs/2022/project/updates/2022-06-16/index.html new file mode 100644 index 0000000000..aa97d22e41 --- /dev/null +++ b/docs/2022/project/updates/2022-06-16/index.html @@ -0,0 +1,37 @@ + + + + + +Week2 | GSoC projects at FOSSology + + + + + +

Week2

Meeting 3

+

(June 16th, 2022)

+

Attendees

+
    +
  • Shaheem Azmal M MD
  • +
  • Vivek Kumar
  • +
  • Avinal Kumar
  • +
  • Sahil Jha
  • +
  • Sushant Kumar
  • +
  • Rohit Pandey
  • +
  • Feng Wenhan
  • +
  • Thanvi Lahari Pendyala
  • +
  • Krishna Mahato
  • +
  • Soham Banerjee
  • +
+

Discussions

+

Discussion about how to learn code more efficiently and where I should begin with. +Mentors will share a google doc about the detailed requirement of this project for me.

+

Conclusion and Further Plans

+
    +
  • I have learned some basic knowledge about PHP and Fossology.
  • +
  • I could begin with reading the codes about group and user.
  • +
  • I will try to upload a video about the basic work flow of Fossology.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-06-23/index.html b/docs/2022/project/updates/2022-06-23/index.html new file mode 100644 index 0000000000..87497ba302 --- /dev/null +++ b/docs/2022/project/updates/2022-06-23/index.html @@ -0,0 +1,39 @@ + + + + + +Week3 | GSoC projects at FOSSology + + + + + +

Week3

Meeting 4

+

(June 23rd, 2022)

+

Attendees

+
    +
  • Katharina Ettinger
  • +
  • Gaurav Mishra
  • +
  • Anupam Ghosh
  • +
  • Kaushlendra Pratap
  • +
  • Ayush Bhardwaj
  • +
  • Shruti Agarwal
  • +
  • Vasudev Maduri
  • +
  • Avinal Kumar
  • +
  • Sushant Kumar
  • +
  • Rohit Pandey
  • +
  • Feng Wenhan
  • +
  • Krishna Mahato
  • +
  • Soham Banerjee
  • +
  • Samuel Dushimimana
  • +
+

Discussions

+

Discussion about the videos I uploaded to YouTube and bilibili about the basic work flow of fossology. +Discussion about the Google doc of detailed requirement.

+

Conclusion and Further Plans

+
    +
  • I will try to create a new directory and copy the code file about group to it and make my first PR.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-06-30/index.html b/docs/2022/project/updates/2022-06-30/index.html new file mode 100644 index 0000000000..43e063d69a --- /dev/null +++ b/docs/2022/project/updates/2022-06-30/index.html @@ -0,0 +1,34 @@ + + + + + +Week4 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-07-07/index.html b/docs/2022/project/updates/2022-07-07/index.html new file mode 100644 index 0000000000..3e1b062326 --- /dev/null +++ b/docs/2022/project/updates/2022-07-07/index.html @@ -0,0 +1,39 @@ + + + + + +Week5 | GSoC projects at FOSSology + + + + + +

Week5

Meeting 6

+

(July 7th, 2022)

+

Attendees

+
    +
  • Katharina Ettinger
  • +
  • Gaurav Mishra
  • +
  • Kaushlendra Pratap
  • +
  • Shaheem Azmal M MD
  • +
  • Anupam Ghosh
  • +
  • Ayush Bhardwaj
  • +
  • Shruti Agarwal
  • +
  • Avinal Kumar
  • +
  • Sushant Kumar
  • +
  • Rohit Pandey
  • +
  • Feng Wenhan
  • +
  • Soham Banerjee
  • +
  • Samuel Dushimimana
  • +
  • Thanvi Lahari Pendyala
  • +
+

Discussions

+

I have created the BrowseProject page. However, I don't know how to add a menu item with 2 sub items but no content. So there are 3 pages now. Browse(the same code with BrowseFolder), BrowseFolder and BrowseProject. Mentors tell me there could be some problems and I could turn to next part for now.

+

Conclusion and Further Plans

+
    +
  • Add a BrowseProject page
  • +
  • In next week, I will study the code about how to manage a folder, and try to use them for project.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-07-14/index.html b/docs/2022/project/updates/2022-07-14/index.html new file mode 100644 index 0000000000..512501e9e0 --- /dev/null +++ b/docs/2022/project/updates/2022-07-14/index.html @@ -0,0 +1,37 @@ + + + + + +Week6 | GSoC projects at FOSSology + + + + + +

Week6

Meeting 7

+

(July 14th, 2022)

+

Attendees

+
    +
  • Gaurav Mishra
  • +
  • Kaushlendra Pratap
  • +
  • Shaheem Azmal M MD
  • +
  • Ayush Bhardwaj
  • +
  • Shruti Agarwal
  • +
  • Vasudev Maduri
  • +
  • Sushant Kumar
  • +
  • Rohit Pandey
  • +
  • Feng Wenhan
  • +
  • Soham Banerjee
  • +
  • Samuel Dushimimana
  • +
  • Thanvi Lahari Pendyala
  • +
+

Discussions

+

I have created Project Add, Project Delete and Project Edit pages. However, this pages are static and couln't provide their function now because most of their codes are just copy from the folder pages. However, for now I can show what I will do for other GSOC members. Mentors give me some advices for next steps (where the code is and how to begin)

+

Conclusion and Further Plans

+
    +
  • Created some new pages but not completely work
  • +
  • In next week, I will try to make the pages dynamic and able to provide their functions.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-07-21/index.html b/docs/2022/project/updates/2022-07-21/index.html new file mode 100644 index 0000000000..fc46b84c31 --- /dev/null +++ b/docs/2022/project/updates/2022-07-21/index.html @@ -0,0 +1,29 @@ + + + + + +Week7 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-07-28/index.html b/docs/2022/project/updates/2022-07-28/index.html new file mode 100644 index 0000000000..b2054aab89 --- /dev/null +++ b/docs/2022/project/updates/2022-07-28/index.html @@ -0,0 +1,32 @@ + + + + + +Week8 | GSoC projects at FOSSology + + + + + +

Week8

Meeting 9

+

(July 28th, 2022)

+

Attendees

+
    +
  • Katharina Ettinger
  • +
  • Gaurav Mishra
  • +
  • Kaushlendra Pratap
  • +
  • Shaheem Azmal M MD
  • +
  • Ayush Bhardwa
  • +
  • Shruti Agarwal
  • +
  • Rohit Pandey
  • +
  • Soham Banerjee
  • +
+

Discussions

+

I modify the project related pages text contents. This is not a big progress. But I am studying the code about handling folders. (Which is expected to reuse in project handling)

+

Conclusion and Further Plans

+
    +
  • I will try to implement the function of upload a file to a certain project in the next week.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-08-04/index.html b/docs/2022/project/updates/2022-08-04/index.html new file mode 100644 index 0000000000..c6ac163456 --- /dev/null +++ b/docs/2022/project/updates/2022-08-04/index.html @@ -0,0 +1,24 @@ + + + + + +Week9 | GSoC projects at FOSSology + + + + + +

Week9

Meeting 10

+

(August 4th, 2022)

+

Attendees

+

There is no attendees list available.

+

Discussions

+

I am still studying the code about uploading a file to a folder. It is a little complicated. +Mentors give me much encouragement. They share me the article of how to use XDebug to debug php project. They also answer my many questions to help me boost my work.

+

Conclusion and Further Plans

+
    +
  • I will still try to implement the function of upload a file to a certain project in the next week.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-08-11/index.html b/docs/2022/project/updates/2022-08-11/index.html new file mode 100644 index 0000000000..5756e5b388 --- /dev/null +++ b/docs/2022/project/updates/2022-08-11/index.html @@ -0,0 +1,24 @@ + + + + + +Week10 | GSoC projects at FOSSology + + + + + +

Week10

Meeting 11

+

(August 11st, 2022)

+

Attendees

+

There is no attendees list available.

+

Discussions

+

I implement the function of upload a file to a project. To do that, I write a new ProjectDao and modify the database structure. The content stored in project and projectcontent table is still with some bug. I will fixed it next week. +Mentors points some misunderstanding of my implement. They also advises me to do project create and delete function as my next step.

+

Conclusion and Further Plans

+
    +
  • I will first fix the bug in upload function. Then I will try to implement the functions of project add, delete and edit.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-08-18/index.html b/docs/2022/project/updates/2022-08-18/index.html new file mode 100644 index 0000000000..1cf50dbd4f --- /dev/null +++ b/docs/2022/project/updates/2022-08-18/index.html @@ -0,0 +1,23 @@ + + + + + +Week11 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-08-25/index.html b/docs/2022/project/updates/2022-08-25/index.html new file mode 100644 index 0000000000..cef481370e --- /dev/null +++ b/docs/2022/project/updates/2022-08-25/index.html @@ -0,0 +1,25 @@ + + + + + +Week12 | GSoC projects at FOSSology + + + + + +

Week12

Meeting 13

+

(August 25th, 2022)

+

Attendees

+

There is no attendees list available.

+

Discussions

+

I have implemeted the function of BrowseProject. +Also, I have fixed the error in project deletion. For now, the whole progress of project - create, edit, upload and delete has worked.

+

Conclusion and Further Plans

+
    +
  • Since the project manage function has been finished. I will try to add a new report generation method to Fossology. In special, when user generates report in a folder view, the report will show every upload's license one by one. However, when user generates report in a project view, the report will just show every license existing in the project once.
  • +
  • Before implementing the report part, I will try to push my codes about project manage to my github repo and let the mentors check it.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-09-01/index.html b/docs/2022/project/updates/2022-09-01/index.html new file mode 100644 index 0000000000..6185229324 --- /dev/null +++ b/docs/2022/project/updates/2022-09-01/index.html @@ -0,0 +1,24 @@ + + + + + +Week13 | GSoC projects at FOSSology + + + + + +

Week13

Meeting 14

+

(September 1st, 2022)

+

Attendees

+

There is no attendees list available.

+

Discussions

+

In this week, I learn the code of report generation. However, in fact, I don't know exactly what I should do to add the new generation method to pages: add a button? give a new page? or other things? +Mentors give me a show about how the report generation function run of current version. They also tell me where should I begin with.

+

Conclusion and Further Plans

+
    +
  • I will try to implemnt the new report generation function.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/project/updates/2022-09-08/index.html b/docs/2022/project/updates/2022-09-08/index.html new file mode 100644 index 0000000000..35cb91fbd5 --- /dev/null +++ b/docs/2022/project/updates/2022-09-08/index.html @@ -0,0 +1,24 @@ + + + + + +Week14 | GSoC projects at FOSSology + + + + + +

Week14

Meeting 15

+

(September 8th, 2022)

+

Attendees

+

There is no attendees list available.

+

Discussions

+

I modify the generation button in the browse page, make it transform a new paramater "type" to show the request is from folder browse page or project browse page. I also modify the readmeoss agent to make it could get the value of this paramater. +However, I fail to generate a correct report using my test data. In the discussion, mentors show me the correct way to scan license of uploads and generate report. They also answered many questions I have met during the last week.

+

Conclusion and Further Plans

+
    +
  • I will fix my bugs in code and continue to implemnt the new report generation function.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/index.html b/docs/2022/reuse/index.html new file mode 100644 index 0000000000..2463b460b2 --- /dev/null +++ b/docs/2022/reuse/index.html @@ -0,0 +1,30 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+ +

Contact info

+ +

Adopting REUSE standards in FOSSology

+

Copyright and licensing is difficult, especially when reusing software from +different projects that are released under various different licenses. REUSE +make it easier for us to declare the licenses under which our works are +released, but they also make it easier for a computer to understand how your +project is licensed. FOSSology currently uses old methods of defining licenses +on source files. Following the REUSE specs, the code base of FOSSology should +be updated with new licensing format.

+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-06-02/index.html b/docs/2022/reuse/updates/2022-06-02/index.html new file mode 100644 index 0000000000..73c60ab1ac --- /dev/null +++ b/docs/2022/reuse/updates/2022-06-02/index.html @@ -0,0 +1,137 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Understood the flow of the weekly updates meetings.
  • +
  • Gaurav Mishra explains about the Tool to send the updates.
  • +
  • Finalized timings for individual project meeting.
  • +
+

Conclusion and Further Plans

+
    +
  • Project Meeting time for resue project - every tuesday 5:30 pm to 6:00 pm IST.
  • +
  • Need to update the weekly progress in Tool
  • +
+

Meeting 2

+

(June 7th, 2022)

+

GSoC 2022 Discussions - REUSE

+

Attendees

+ +

Discussions

+
    +
  • +

    How should licenses and copyrights be applied to files without licenses or copyrights?

    +
      +
    • Use GPL 2.0-only license for such files without copyright.
    • +
    +
  • +
  • +

    Do I need to create a Wiki Page for the REUSE Standard?

    +
      +
    • Yes. You can implement it in 2 ways: i) By creating a separate wiki page ii) By adding in fossology/CONTRIBUTING.md
    • +
    +
  • +
  • +

    Do I need to add the current year to the copyright?

    +
      +
    • No. Since we are not changing any logic in the file, we shouldn't change the copyright year.
    • +
    +
  • +
  • +

    How to add license and copyright in JSON files?

    +
      +
    • JSON is for data only, and if you include a comment, then it will be data too. The file-name.json.license file needs to be created to add the license and copyright.
    • +
    +
  • +
  • +

    Can we have more than one license for a file?

    +
      +
    • Yes, it’s possible. You can use SPDX syntax to define them. +For example: +SPDX-License-Identifier: (GPL-2.0 OR MIT) +SPDX-License-Identifier: (LGPL-2.1 AND BSD-2-CLAUSE)
    • +
    +
  • +
  • +

    Should I change the year ranges?

    +
      +
    • Concerning the year ranges, we should not change the existing year ranges(and not change the end year if no substantial modification was done in the file).
    • +
    +
  • +
  • +

    Do not modify testdata files.

    +
  • +
+

Conclusion and Further Plans

+
    +
  • Implement discussed solution in upcoming week.
  • +
+

Meeting 3

+

(June 9th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Explored the study material/blog links shared by mentors.
  • +
  • Can I raise a pull request with a few changes for review? +
      +
    • Yes. You can raise PR.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-06-13/index.html b/docs/2022/reuse/updates/2022-06-13/index.html new file mode 100644 index 0000000000..9e41e0e617 --- /dev/null +++ b/docs/2022/reuse/updates/2022-06-13/index.html @@ -0,0 +1,64 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Meeting 4

+

(June 13th, 2022)

+

GSoC 2022 Discussions - REUSE

+

Attendees

+ +

Discussions

+
    +
  • Implemented REUSE licensing and copyright information in 157 files and raised pull request #2235 for review.
  • +
  • Current REUSE status +
      +
    • When running reuse lint, the result is as follows: +
      Files with copyright information: 2619 / 4360
      Files with license information: 660 / 4360
      +
    • +
    • Before that we were at: +
      Files with copyright information: 2616 / 4360
      Files with license information: 503 / 4360
      +
    • +
    +
  • +
  • Gaurav Mishra changed the base branch of my pull request to contrib/reuse/change-repo-standard.
  • +
  • I proposed that a DEP5 file can be used for licensing and copyrighting of testdata files.
  • +
+

Conclusion and Further Plans

+
    +
  • Work on suggestion/comment added in the pull request #2235.
  • +
+

Meeting 5

+

(June 16th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Working on comments added by mentors #2235.
  • +
  • Making the necessary changes to the copyright of previously modified files since the author should not be included in copyright text.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-06-20/index.html b/docs/2022/reuse/updates/2022-06-20/index.html new file mode 100644 index 0000000000..d492ef334c --- /dev/null +++ b/docs/2022/reuse/updates/2022-06-20/index.html @@ -0,0 +1,100 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Meeting 6

+

(June 21th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Resolved all the comments/feedbacks added my mentors in #2235.
  • +
  • Mentors reviewed all the changes and found correct.
  • +
  • Current REUSE status +
      +
    • When running reuse lint, the result is as follows: +
      Files with copyright information: 2619 / 4360
      Files with license information: 1066 / 4360
      +
    • +
    +
  • +
  • We discussed adding copyright to files without copyright information to make code fully reuse compliant. We finalized the copyright statement for such files - SPDX-FileCopyrightText: © Fossology contributors.
  • +
  • Few doubts were cleared regarding the comment formatting of the .sql and VERSION files.
  • +
+

Conclusion and Further Plans

+
    +
  • Implement discussed solution in upcoming week.
  • +
+

Meeting 7

+

(June 23th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • Discussion on updating of reports regularly by students.
  • +
  • Created a second PR with changes suggested by mentors.
  • +
  • Added copyright text of empty copyright files to “(c) FOSSology Contributors”.
  • +
+

Conclusion and Further Plans

+
    +
  • I Will continue with more changes.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-06-27/index.html b/docs/2022/reuse/updates/2022-06-27/index.html new file mode 100644 index 0000000000..aa835915e8 --- /dev/null +++ b/docs/2022/reuse/updates/2022-06-27/index.html @@ -0,0 +1,59 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Meeting 8

+

(June 28th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Mentors reviewed pull request #2238 and suggested few changes.
  • +
  • Current REUSE status +
      +
    • When running reuse lint, the result is as follows: +
      Files with copyright information: 4065 / 4360
      Files with license information: 3302 / 4360
      +
    • +
    +
  • +
  • Few doubts were cleared regarding the comment formatting of the nomos/agent/split_words, nomos/agent/GenCodeCopyright and ojo/agent/ojoregex.cc.
  • +
  • The merge conflict with the base branch was resolved with the help of Gaurav sir.
  • +
  • Validated the correct header of License text files.
  • +
  • We discussed the problem of bad licenses and missing license reports from reuse.software tools. In the next project meeting, we will try to find a solution.
  • +
  • Gaurav sir directed me to start work on the second part of GSOC project from fourth week.
  • +
+

Meeting 9

+

(June 30th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • Implemented all the suggestions proposed by Gaurav sir.
  • +
  • I Will work on further files.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-07-04/index.html b/docs/2022/reuse/updates/2022-07-04/index.html new file mode 100644 index 0000000000..f84a63beb6 --- /dev/null +++ b/docs/2022/reuse/updates/2022-07-04/index.html @@ -0,0 +1,77 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Meeting 10

+

(July 05th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Issue #1513 +
      +
    • We discussed approach for Support the SPDX-FileCopyrightText keyword in the copyright agent.
    • +
    • To correctly identify SPDX-FileCopyrightText, regex needs to be improved.
    • +
    • Reso agent will copy the findings of Copyright agent from the .license file to the associated file.
    • +
    • To make testing easier, mentors taught the CLI method.
    • +
    +
  • +
  • REUSE copyright and licensing standard Implementation +
      +
    • Current REUSE status +
        +
      • When running reuse lint, the result is as follows:
      • +
      +
      Files with copyright information: 4152 / 4360
      Files with license information: 3723 / 4360
      +
    • +
    • Mentors reviewed pull request #2248 and suggested few changes.
    • +
    • Discussed the issue of bad licenses/missing licenses coming from testdata files in resue tool. Mentors suggested to raise a issue in reuse github repository.
    • +
    • Few doubts were cleared regarding the comment formatting of the files.
    • +
    +
  • +
+

Meeting 11

+

(July 07th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • Implemented REUSE standard in more files.
  • +
  • Learned about regular expressions.
  • +
  • During the implementation of the REUSE.software standard, I added the license and copyright information to testdata files through dep5. However, reuse tool still shows missing/bad licensing information from testdata files. I have added an issue to fsfe/reuse-tool for the solution to this.
  • +
+

Conclusion and Further Plans

+
    +
  • I will implement REUSE copyright and licensing information on more files
  • +
  • We will discuss a solution to the issue of testdata file at our next project meeting.
  • +
  • I will work on the SPDX-FileCopyrightText keyword in the copyright agent this week.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-07-11/index.html b/docs/2022/reuse/updates/2022-07-11/index.html new file mode 100644 index 0000000000..1386b61e7d --- /dev/null +++ b/docs/2022/reuse/updates/2022-07-11/index.html @@ -0,0 +1,66 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Meeting 12

+

(July 12th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Implemented REUSE standard in more files. +
      +
    • Current REUSE status - when running reuse lint, the result is as follows: +
      Files with copyright information: 4322 / 4364
      Files with license information: 4284 / 4364
      +
    • +
    +
  • +
  • In the issue I raised in fsfe/reuse-tool, I received two following suggestions/solutions: +
      +
    • Put a .license file next to your testdata files. The contents of the testdata files will be ignored, and the contents of the .license file will be used instead.
    • +
    • Put REUSE-IgnoreStart and REUSE-IgnoreEnd in your testdata files. Documentation Link.
    • +
    +
  • +
  • Discussed both solutions with mentors and decided to use the second solution i.e. REUSE-IgnoreStart and REUSE-IgnoreEnd in your testdata files.
  • +
  • Mentors provided guidance on how to correctly identify SPDX-FileCopyrightText.
  • +
  • Few doubts cleared regarding the comment formatting of the multiple files.
  • +
+

Meeting 13

+

(July 14th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • On the test data pages, I am adding Ignore syntax.
  • +
  • Several questions were clarified with mentors.
  • +
  • Working on regular expression to correctly identify SPDX-FileCopyrightText statement.
  • +
  • Mentors discussed about the midterm evaluations for GSoC 2022.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-07-18/index.html b/docs/2022/reuse/updates/2022-07-18/index.html new file mode 100644 index 0000000000..11ad7258aa --- /dev/null +++ b/docs/2022/reuse/updates/2022-07-18/index.html @@ -0,0 +1,56 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Meeting 14

+

(July 19th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • I raised two Pull Requests #2263 and #2264 for the REUSE standard. In PR #2264, REUSE-IgnoreStart and REUSE-IgnoreEnd in testdata files to ignore the contents of files.
  • +
  • Worked on the Regex solution for SPDX Copyright identifier.
  • +
  • For the GSoC project update, I've created a Github repository and shown it to the mentors for their feedback.
  • +
  • On Medium, I wrote a blog about my GSoC preparation journey.
  • +
  • Several doubts on copyright agent clarified with mentors.
  • +
  • Mentors provided guidance on how to copy copyright findings of the .license file to the associated files.
  • +
+

Meeting 15

+

(July 21th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • Last week, I raised two Pull Requests #2263 and #2264 for the REUSE standard and created regex solution for the SPDX Copyright identifier.
  • +
  • Few doubts on reso agent clarified with mentors.
  • +
  • In the current week, I will work on second part of the project and documentation.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-07-25/index.html b/docs/2022/reuse/updates/2022-07-25/index.html new file mode 100644 index 0000000000..ea1e6f8d35 --- /dev/null +++ b/docs/2022/reuse/updates/2022-07-25/index.html @@ -0,0 +1,55 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Meeting 16

+

(July 26th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Published 2 blog posts on Medium. + +
  • +
  • Worked on SPDX-FileCopyright keyword detection in copyright agent.
  • +
  • Updated Github repository with new look and content for the GSoC project update and shown it to the mentors for their feedback.
  • +
  • Clarified few doubts on copyright agent.
  • +
  • Mentors suggested raising pull request for the recent changes in the copyright agent as work in progress.
  • +
  • In the README.md file of Fossology, I proposed adding the REUSE compliance status. Mentors gave the go-ahead.
  • +
+

Meeting 17

+

(July 28th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • Last week I worked on the second part of the REUSE standard implementation and raised a pull request #2276 for the detection of SPDX copyright keyword in the copyright agent.
  • +
  • Few more task is in progress in the above-mentined pull request. I am working on it.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-08-02/index.html b/docs/2022/reuse/updates/2022-08-02/index.html new file mode 100644 index 0000000000..70a080bc09 --- /dev/null +++ b/docs/2022/reuse/updates/2022-08-02/index.html @@ -0,0 +1,59 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Meeting 18

+

(August 2nd, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Two happy moments for me this week: +
      +
    • I passed the midterm evaluation for Google Summer of Code 2022.
    • +
    • My first part of the project - Adopting the REUSE Standard in Fossology codebase is completed and merged with the master branch. Now Fossology codebase is compliant with REUSE standards.
    • +
    +
  • +
  • I created documentation on Copyright and Licensing styles and presented it to mentors. Mentors were pleased with the documentation and asked me to update the reso agent's documentation as well. +-As I am unable to push the wiki changes into the Fossology repository, I asked mentors how to do so.
  • +
  • I discussed with mentors whether it is necessary to trigger the copyright agent, even if it was not selected when the file was uploaded, in the case of the reso agent. Mentors advised not to do so now because it would create a problem with the clearing decision. If reso agent triggers copyright agent, it will also replace the previous status of clearing.
  • +
+

Meeting 19

+

(August 4th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • This week I worked on documentation and implemented remaining solution for issue #1513.
  • +
  • I shared my experience with the Fossology community and GSoC coding period 1 during the weekly update session. I received positive feedback on my performance from my mentors.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-08-09/index.html b/docs/2022/reuse/updates/2022-08-09/index.html new file mode 100644 index 0000000000..60f3935063 --- /dev/null +++ b/docs/2022/reuse/updates/2022-08-09/index.html @@ -0,0 +1,55 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Meeting 20

+

(August 9th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Created/updated documentation (wiki pages) for the Home, Coding style, Reso style, Copyright style, and Licensing style areas.
  • +
  • Presented SPDX-Copyright keyword detection implementation.
  • +
  • Cleared doubt about a PHP file's code-sniffer error.
  • +
  • I asked mentors for guidance on issue #2214 - detection of the LICENSES/ folder.
  • +
+

Meeting 21

+

(August 11th, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • This week I worked on documentation of Copyright and Licensing style and Reso agent.
  • +
  • Presented SPDX-Copyright keyword detection implementation.
  • +
  • In the upcoming week, I will work on the issue #2214 - detection of the LICENSES/ folder.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-08-16/index.html b/docs/2022/reuse/updates/2022-08-16/index.html new file mode 100644 index 0000000000..68f7456a11 --- /dev/null +++ b/docs/2022/reuse/updates/2022-08-16/index.html @@ -0,0 +1,35 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Meeting 22

+

(August 16th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Discussed with Mentors on approach for the issue - #2214 - detection of the LICENSES/ folder.
  • +
  • Notes after discussion: +
      +
    • Every file in the LICENSES folder will automatically be considered a Declared License once it has been cleared.
    • +
    • The feature can be [de]activated via a new option on the Conf page (for each Upload); Feature will be activated by default for all new Uploads.
    • +
    • Add a new table in the Summary section of the Upload.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-08-23/index.html b/docs/2022/reuse/updates/2022-08-23/index.html new file mode 100644 index 0000000000..9610757da3 --- /dev/null +++ b/docs/2022/reuse/updates/2022-08-23/index.html @@ -0,0 +1,29 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-08-30/index.html b/docs/2022/reuse/updates/2022-08-30/index.html new file mode 100644 index 0000000000..3d96985cfd --- /dev/null +++ b/docs/2022/reuse/updates/2022-08-30/index.html @@ -0,0 +1,65 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + +

Week 12

Meeting 24

+

(August 30th, 2022)

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • Currently working on issue #2214 - Detecting licenses declared in LICENSE file and LICENSES folder.
  • +
  • Created a new class for detecting LICENSES folder.
  • +
  • Few doubts were cleared regarding the above issue.
  • +
  • Suggestions by mentors on solution- +
      +
    • Use declared licenses in REUSE standard report.
    • +
    • REUSE standard report should be same for the whole upload.
    • +
    • Move the class for detecting LICENSES folder under lib/php/BusinessRules and create a new class for comparing the data/conclusion.
    • +
    • Learned to use PHP Unit and Functional Tests from the CLI.
    • +
    +
  • +
+

Meeting 25

+

(September 1st, 2022)

+

GSoC 2022 weekly update

+

Attendees

+ +

Discussions/Updates

+
    +
  • Currently working on issue #2214 - Detecting licenses declared in LICENSE file and LICENSES folder.
  • +
  • Cleared doubts regarding the PHP Unit and Functional test.
  • +
+

Conclusions and further plans

+
    +
  • Implementation of LICENSES directory detection.
  • +
  • Solve the changes suggest by mentors on existing PR.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/reuse/updates/2022-09-06/index.html b/docs/2022/reuse/updates/2022-09-06/index.html new file mode 100644 index 0000000000..d1f7c02f14 --- /dev/null +++ b/docs/2022/reuse/updates/2022-09-06/index.html @@ -0,0 +1,42 @@ + + + + + +Week 13 | GSoC projects at FOSSology + + + + + +

Week 13

Meeting 26

+

((September 6th, 2022))

+

GSoC 2022 Project Discussions - REUSE

+

Attendees

+ +

Discussions/Updates

+
    +
  • On issue #2214 - Detecting licenses declared in LICENSE file and LICENSES folder: +
      +
    • Added SearchHelperDao.php in lib/php/dao and made changes in src/www/ui/api/Controllers/SearchController.php, src/www/ui/ajax-notice-files.php and src/www/ui/search.php files that uses function of this file.
    • +
    • To detect the LICENSES directory, I created DetectLicensesFolder.php in src/lib/php/BusinessRules. The getDeclearedLicense() function returns an array with license Ids declared in LICENSES directory.
    • +
    • To compare the license findings, I created ReuseReportProcessor.php in src/lib/php/BusinessRules. GetReuseSummary() function compares the cleared licenses and declared licenses.
    • +
    • src/www/ui/async/AjaxReuseReport.php handle AJAX request and return reuse summary report as JSON response.
    • +
    +
  • +
  • Solve requested changes on existing PR.
  • +
  • Cleared doubts regarding the AJAX call.
  • +
+

Conclusions and further plans

+
    +
  • Implement AJAX call and add reuse summary report table in License Browse page.
  • +
  • Write a blog on medium describing the journey of Google Summer of Code with Fossology and contributions made during the tenure.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/spasht/index.html b/docs/2022/spasht/index.html new file mode 100644 index 0000000000..8c9ede50b1 --- /dev/null +++ b/docs/2022/spasht/index.html @@ -0,0 +1,35 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Discontinued

+

The project was discontinued by the contributor on 2022/07/19.

+

Author

+
    +
  • Thanvi Lahari Pendyala
  • +
+

Enhancement with ClearlyDefined.io (spasht)

+

The Spasht agent is used to fetch the metadata of licenses and copyrights of +any uploaded package or project. The fetched data from the ClearlyDefined.io is +stored in the spasht database and displayed using license and copyright tables.

+

To send or push the curated data back to ClearlyDefined.io, According to +ClearlyDefined, we have to send an HTTP request with or without the PR segment. +If any PR number is mentioned in the HTTP request, the information regarding +that PR is fetched. Otherwise, the data is fetched for the default branch +"master". The curated data is updated as ClearlyDescribed and ClearlyLicensed. +The ClearlyDescribed contains the data of properties like source location, +issues, Project website, and release dates, whereas the ClearlyLicensed +includes the data of properties like license, attribution, and number of files.

+

The full curation of a project is returned to Spasht, and the curated data of +the selected project revision is pushed back to ClearlyDefined.io via patches. +Patches contain the licensed and described data of the project. The figure +below shows us a set of curations that contains the patches.

+ + \ No newline at end of file diff --git a/docs/2022/spasht/updates/2022-06-02/index.html b/docs/2022/spasht/updates/2022-06-02/index.html new file mode 100644 index 0000000000..59d54c7b36 --- /dev/null +++ b/docs/2022/spasht/updates/2022-06-02/index.html @@ -0,0 +1,77 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Project setup done.
  • +
  • Since it was the first meeting of community bonding period, we were introduced to every mentors and contributers.
  • +
+

Conclusion and Further Plans

+
    +
  • Decided to schedule and plan the meetings from next week.
  • +
  • Need to keep gsoc page updated
  • +
+

Meeting 2

+

(June 9th, 2022)

+

GSOC 2022 weekly update

+

Attendees

+ +

Discussions

+
    +
  • Decided on timings of Spasht weekly progress update meeting.
  • +
  • Had a discussion on the project and got some resources from mentors.
  • +
+

Conclusion and Further Plans

+
    +
  • Discussed on necessary research for project.
  • +
  • Planning on understanding previous implementation.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/spasht/updates/2022-06-08/index.html b/docs/2022/spasht/updates/2022-06-08/index.html new file mode 100644 index 0000000000..15b15e4534 --- /dev/null +++ b/docs/2022/spasht/updates/2022-06-08/index.html @@ -0,0 +1,33 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/spasht/updates/2022-06-15/index.html b/docs/2022/spasht/updates/2022-06-15/index.html new file mode 100644 index 0000000000..3ddcf7cb38 --- /dev/null +++ b/docs/2022/spasht/updates/2022-06-15/index.html @@ -0,0 +1,31 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/spasht/updates/2022-06-22/index.html b/docs/2022/spasht/updates/2022-06-22/index.html new file mode 100644 index 0000000000..01715777d8 --- /dev/null +++ b/docs/2022/spasht/updates/2022-06-22/index.html @@ -0,0 +1,33 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/spasht/updates/2022-07-06/index.html b/docs/2022/spasht/updates/2022-07-06/index.html new file mode 100644 index 0000000000..78b55e9e40 --- /dev/null +++ b/docs/2022/spasht/updates/2022-07-06/index.html @@ -0,0 +1,32 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/spasht/updates/2022-07-13/index.html b/docs/2022/spasht/updates/2022-07-13/index.html new file mode 100644 index 0000000000..7796e1f32b --- /dev/null +++ b/docs/2022/spasht/updates/2022-07-13/index.html @@ -0,0 +1,32 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/ui/index.html b/docs/2022/ui/index.html new file mode 100644 index 0000000000..1e00bb08df --- /dev/null +++ b/docs/2022/ui/index.html @@ -0,0 +1,59 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Migration of UI @ FOSSology

+

Project Overview

+

The UI Migration project is an effort focused on generating the new +component-based architecture with the integration of the APIs. To make the +project more efficient and easily accessible, an entire code base shift from +Symfony-Twig to React.js is proposed. React.js features an incrementally +adaptable architecture that focuses on declarative rendering and component +composition. React.js component system will enable us to organize the current +working APIs appropriately.

+

Objectives

+
    +
  • Working on good interactive design, with a modern look.
  • +
  • Integrating the APIs to the new component-based UI structure.
  • +
  • Seamless routing and page transitions.
  • +
  • Giving the power of the node engine to our UI. Making all NPM accessible.
  • +
  • Writing detailed ​ documentation of the project, to make the +codebase simpler for other contributors.
  • +
+

Check out the installation steps for the project.

+

Authors

+
+ + \ No newline at end of file diff --git a/docs/2022/ui/installation/index.html b/docs/2022/ui/installation/index.html new file mode 100644 index 0000000000..7e124d525c --- /dev/null +++ b/docs/2022/ui/installation/index.html @@ -0,0 +1,69 @@ + + + + + +Installation | GSoC projects at FOSSology + + + + + +

Installation

Requirements 📜

+
    +
  1. +

    Your machine should have Yarn (preferable) or Npm or Docker installed.

    +
  2. +
  3. +

    A working FOSSology setup.

    +
  4. +
  5. +

    Setup CORS in FOSSology

    +
  6. +
+
    +
  • Open FOSSology and go to Admin > Customize.
  • +
  • Look out for "Allowed origins for REST API"
  • +
  • Set the value to "http://localhost:3000"
  • +
+

image

+

Installation Steps :walking:

+

1. Fork it 🍴

+

You can get your own fork/copy of FOSSologyUI by using the Fork button.

+

Fork Button

+

2. Clone it 👥

+

You need to clone (download) it to a local machine using

+
git clone https://github.com/Your_Username/FOSSologyUI.git
+
+

This makes a local copy of the repository in your machine.

+
+

Once you have cloned the FOSSologyUI repository in GitHub, move to that folder first using the change directory command.

+
# This will change directory to a folder FOSSologyUI
cd FOSSologyUI
+

Move to this folder for all other commands.

+

3. Set it up ⬆️

+

Run the following commands to see that your local copy has a reference to your forked remote repository in GitHub :octocat:

+
git remote -v
origin https://github.com/Your_Username/FOSSologyUI.git (fetch)
origin https://github.com/Your_Username/FOSSologyUI.git (push)
+

Now, add a reference to the original FOSSologyUI repository using

+
git remote add upstream https://github.com/fossology/FOSSologyUI.git
+
+

This adds a new remote named upstream.

+
+

See the changes using

+
git remote -v
origin https://github.com/Your_Username/FOSSologyUI.git (fetch)
origin https://github.com/Your_Username/FOSSologyUI.git (push)
upstream https://github.com/fossology/FOSSologyUI.git (fetch)
upstream https://github.com/fossology/FOSSologyUI.git (push)
+

4. Run it 🏁

+

Using Yarn (preferable)

+
# To install all the dependencies
yarn install

# To start the application
yarn start
+

OR

+

using NPM

+
# To install all the dependencies
npm install

# To start the application
npm start
+

The React application will start on port 3000. +Go to: http://localhost:3000

+

OR

+

using Docker

+

FOSSology comes with a Dockerfile allowing the containerized execution.

+

Run the following commands inside the project directory.

+
docker build \
-t fossologyui:react1.0 \
--build-arg REACT_APP_SERVER_URL="localhost/repo/api/v1" \
--build-arg REACT_APP_HTTPS="false" .
+
docker run -p 3000:3000 fossologyui:react1.0
+

The UI can then be accessed at http://IP_OF_DOCKER_HOST:3000/, user fossy password fossy.

+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/ayush/2022-06-02/index.html b/docs/2022/ui/updates/ayush/2022-06-02/index.html new file mode 100644 index 0000000000..c20be06ee3 --- /dev/null +++ b/docs/2022/ui/updates/ayush/2022-06-02/index.html @@ -0,0 +1,52 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

GSOC 2022 weekly update.

+

Attendees

+
    +
  • Ayush Kumar
  • +
  • Katharina
  • +
  • Michael
  • +
  • Nicolas
  • +
  • Anupam
  • +
  • Gaurav
  • +
  • Shaheem
  • +
  • Kaushalendra
  • +
  • Ayush
  • +
  • Shruthi
  • +
  • Avinal
  • +
  • Sushant Kumar
  • +
  • Feng Wenhan
  • +
  • Rohit Pandey
  • +
  • Thanvi Lahari Pendyala
  • +
  • Krishna Mahato
  • +
  • Soham Banerjee
  • +
+

Discussions

+
    +
  • Know more about organization.
  • +
  • Meet the mentors, interact with mentors.
  • +
  • Understand the flow and process of the weekly update of the meetings organised by the Organization.
  • +
  • Get to know the internal workflow of the organization and project.
  • +
  • Since it was the first meeting of community bonding period, we were introduced to every mentors and contributors.
  • +
  • Project Setup Done
  • +
  • Discussion about api testing.
  • +
  • Make my own Github Repo For Daily and weekly updates.
  • +
+

Conclusion and Further Plans

+
    +
  • Compatible meeting timing was decided
  • +
  • Need to keep gsoc page updated
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-06-02/index.html b/docs/2022/ui/updates/krishna/2022-06-02/index.html new file mode 100644 index 0000000000..ebca6b2a9a --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-06-02/index.html @@ -0,0 +1,75 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Weekly Meeting 1 (June 2nd, 2022)

+

GSOC 2022 first weekly update meeting during community bonding period.

+

Discussions

+
    +
  • Different topics were discussed related to the projects.
  • +
  • Separate project discussion with mentors were done.
  • +
  • Different meeting timings for separate project discussions were decided.
  • +
  • Timing for the reactUI project updates is decided to be on Tuesday, 8:00pm to 9:00pm IST.
  • +
  • Docusaurus tool was explained by the mentors for documenting the weekly updates for fossology.
  • +
+

Contributions so far

+ +

Conclusion and Further Plans

+
    +
  • +

    During the remaining time of community bonding I will be learning more about php development so that the learning curve can be reduced later when I'll start the development of the REST APIs later in the coding period.

    +
  • +
  • +

    There are small fixes that needs to be done on the reactUI project to make the dev environment clean. SO I'll be putting some PRs related to that soon.

    +
  • +
+
+

UI Meeting 1 (June 7th, 2022)

+

GSOC 2022 first UI update meeting during community bonding period.

+

Discussions

+
    +
  • Refactored few components where I found styling issues.
  • +
  • Learning more about the codebase, routing and layouts.
  • +
  • Proposed an enhancement regarding the use of async-await wherever possible.
  • +
  • Learning more about testing in javascript.
  • +
+

Contributions

+ +

Conclusion and Further Plans

+
    +
  • I will be creating an excel sheet to list down all the UI related requirements along with the asignees and the status for each tasks so that each task can be tracked regularly by mentors.
  • +
+
+

Weekly Meeting 2 (June 9th, 2022)

+

GSOC 2022 second weekly update meeting during community bonding period.

+

Discussions

+
    +
  • Updates were discussed from each project.
  • +
  • It was decided that Anupam Sir will take a session on creating a REST API for the UI Team.
  • +
  • I mentioned that the creation of the excel sheet for the UI Task Updates is completed. +Here is the Link.
  • +
+

Conclusion and Further Plans

+
    +
  • I will move on to creating the admin pages. +
      +
    • Add User
    • +
    • Edit User Account
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-06-20/index.html b/docs/2022/ui/updates/krishna/2022-06-20/index.html new file mode 100644 index 0000000000..5aec0208bc --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-06-20/index.html @@ -0,0 +1,41 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

KT Session - REST API

+

(14th June, 2022)

+
    +
  • Gaurav sir took a knowledge transfer session on creating a REST API for fossology.
  • +
  • He explained fossology's folder structure and showed which files are affected whenever there is a REST call.
  • +
  • He also explained how to use the swagger editor to design and test REST APIs.
  • +
  • In addition, he explained about different modules and the MVC architechture of the project.
  • +
  • Lastly, we learnt how to debug for errors in developement using php xdebug extension in vscode.
  • +
+
+

Contributions

+

Add user page

+

(19th June, 2022)

+
    +
  • I completed the UI Implementation of Add User page.
  • +
  • This task involved +
      +
    • Reusing already created components to maintain uniformity in design.
    • +
    • Using the existing API modules wherever needed.
    • +
    • Writing clean and documented code with uniformity in folder structure.
    • +
    • Since the REST API for adding a user is not available, creating a mock api request using setTimeout function.
    • +
    +
  • +
+

Demo video

+

The video clearly demonstrates the UI implementation of Add user page.

+ +

This implementaion can be tested by pulling the changes from PR#229.

+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-06-27/index.html b/docs/2022/ui/updates/krishna/2022-06-27/index.html new file mode 100644 index 0000000000..ed4238898c --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-06-27/index.html @@ -0,0 +1,34 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Resolve the requested changes by mentors in the existing PRsDone
2.Creation of the Edit User Account pagePartially Done
3.Explore the backend codebase of fossology and learn more about php developementPartially
+

Edit user page

+
    +
  • The UI implementation of the Edit user Page is almost done.
  • +
  • The task included +
      +
    • Reusing already created components to maintain uniformity in design.
    • +
    • Using the existing API modules wherever needed.
    • +
    • Writing clean and documented code with uniformity in folder structure.
    • +
    • Since the REST API for editing a user is not available, creating a mock api request using setTimeout function.
    • +
    • Pre-Populating data for the selected user whose data needs to be edited.
    • +
    • Creating an Api request function to fetch user details based on id.
    • +
    • Designing a Pop-up modal to reveal the tokens (better UX).
    • +
    +
  • +
+

(Updated) Demo video

+

The video clearly demonstrates the UI implementation of Edit user page.

+ +

(Updated) This implementaion can be tested by pulling the changes from PR#236.

+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-07-04/index.html b/docs/2022/ui/updates/krishna/2022-07-04/index.html new file mode 100644 index 0000000000..27bfa3bb17 --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-07-04/index.html @@ -0,0 +1,34 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Resolve the requested changes by mentors in the existing PRsDone
2.Settting up the fossology main repo devlopment environmentDone
3.Getting started with the creation of REST API for adding a userstarted
+

Roadblocks / hurdles

+
    +
  • Since, I am using a macOS based system, As quoted by the mentors --- fossology isn't compatible with macOS, It has to be a linux distribution (ubuntu/fedora).
  • +
  • With lots of research, I finally decided to install a virtual machine. Most of the virtual machines weren't compatible with the arm architecture.
  • +
  • Finally I got one VM service which was supported in my system. It is called UTM.
  • +
  • After setting up UBUNTU 22.04 on my VM, and installing all the dependencies via sudo utils/fo-installdeps, fossology still threw the following error, +cli-error-install-fossology
  • +
+

P.S.~ Currently, I'm stuck here. I will be giving one more day to resolve this. If the error still persists, I'll be moving onto developing the pages in the UI Project which are not implemented.

+

[UPDATED]

+
    +
  • Finally, I am able to do some progress. I was able to set up fossology on my machine using a local VM instance and used ssh for development via vs-code.
  • +
  • Currently, I'm refering to the OPENAPI(Swagger) docs and trying to test the existing apis to understand the flow.
  • +
+

Conclusion and further plans

+
    +
  • Currently, I'm designing the addUser API in the openapi.yaml file.
  • +
  • In the next week, I'll be implementing /users POST route for creating a new user via REST API.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-07-11/index.html b/docs/2022/ui/updates/krishna/2022-07-11/index.html new file mode 100644 index 0000000000..850ea60e67 --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-07-11/index.html @@ -0,0 +1,60 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Finish the implementation of REST API for adding a userDone
2.Solve requested changes on existing PRsPartially
3.Start the implementaion of REST API for modifying user DetailsNot started
+

Adding a user via REST API

+
    +
  • The API implementation of the /users POST route to create a new user is done.
  • +
  • This task included +
      +
    • Creating a new POST route in the index.php file inside www/ui/api directory.
    • +
    • Adding a new method AddUser in the UserController class.
    • +
    • Trying to re-use the methods that are already used in the static UI.
    • +
    • Testing the API via any API platform like postman.
    • +
    +
  • +
+

PR Link : feat(API): users/ POST route for adding a new user #2256

+

Testing the PR

+
    +
  • +

    Pull the changes from the above PR.

    +
  • +
  • +

    Use any API platform like postman.

    +
  • +
  • +

    Provide the request body as following ---- +req-body-add-user

    +
  • +
  • +

    You can expect a response like this +req-body-add-user

    +
  • +
+

Conclusions and further plans

+
    +
  • After reviewing my PR, Gaurav sir pointed out few issues in the current contribution and code changes. Some of these were ---- +
      +
    • There was duplication of code in the AddUser method as there was no way to re-use the existing functions according to me.
    • +
    • Gaurav sir cleared the misconception that I had, and suggested to patch the existing add-user page to adapt the DefaultPlugin rather than FO_Plugin. + +
    • +
    • Since there were errors while migrating the plugin from FO_Plugin to DefaultPlugin, It was decided in the UI Meeting that any further changes to this PR is paused for now untill we find a patch for this.
    • +
    +
  • +
  • So, next week I'll be picking up the implementaion of REST API for modifying user Details.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-07-17/index.html b/docs/2022/ui/updates/krishna/2022-07-17/index.html new file mode 100644 index 0000000000..61bfe8ec89 --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-07-17/index.html @@ -0,0 +1,100 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Finish the implementation of REST API for modifying user DetailsDone
2.Solve requested changes on existing PRsDone
3.Finish the implementation of REST API for token related queriesDone
+

REST APIs Implemented -

+

editUserDetails :

+
    +
  • The API implementation of the /users/{id} PUT route to modify user Details is done.
  • +
  • This task included +
      +
    • Creating a new PUT route in the index.php file inside www/ui/api directory.
    • +
    • Adding a new method editUser in the UserControllerclass.
    • +
    • Trying to re-use the methods that are already used in the static UI.
    • +
    • Testing the API via any API platform like postman.
    • +
    +
  • +
+ +

Testing the PR

+
    +
  • +

    Pull the changes from the above PR.

    +
  • +
  • +

    Use any API platform like postman.

    +
  • +
  • +

    Provide the request body as following ---- +req-body-edit-user

    +
  • +
  • +

    You can expect a response like this +res-edit-user

    +
  • +
+

createRestApiToken and getTokens

+
    +
  • The API implementation of the /users/tokens POST route for creating a REST API Token and /users/tokens/{type} GET route for getting all the REST API Tokens based on type active | expired is done.
  • +
  • This task included +
      +
    • Creating a new POST route in the index.php file inside www/ui/api directory for creating a REST API Token.
    • +
    • Creating a new GET route in the index.php file inside www/ui/api directory for getting all the REST API Tokens based on type active | expired.
    • +
    • Adding new methods createRestApiToken and getTokens in the UserController class.
    • +
    • Trying to re-use the methods that are already used in the static UI from the user_edit plugin.
    • +
    • Testing the API via any API platform like postman.
    • +
    +
  • +
+

PR Link : feat(api): added /users/tokens POST Route and /users/tokens/{type} GET Route #2266

+

Testing the PR

+
    +
  • +

    Pull the changes from the above PR.

    +
  • +
  • +

    Use any API platform like postman.

    +
  • +
  • +

    Testing /api/v1/users/tokens

    +
      +
    • +

      Provide the request body as following ---- +req-body-create-token

      +
    • +
    • +

      You can expect a response like this +res-create-token

      +
    • +
    +
  • +
  • +

    Testing /api/v1/users/tokens/{type}

    +
      +
    • +

      type = active +res-active-tokens

      +
    • +
    • +

      type = expired +res-expired-tokens

      +
    • +
    +
  • +
+

Conclusions and further plans

+
    +
  • These PRs are currently in review and if any changes are requested, I'll be solving them in the coming week.
  • +
  • Other than this, I'll pick up any other API implementation based on priority as suggested by the mentors.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-07-24/index.html b/docs/2022/ui/updates/krishna/2022-07-24/index.html new file mode 100644 index 0000000000..72bab67ada --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-07-24/index.html @@ -0,0 +1,58 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Resume the implementation of API to add a userPending (Docs)
3.API for changing the upload permissionsNot Started
+

Requested changes and modifications

+
+

For the Edit User Api

+
    +
  1. +

    Changing the request format to be more simplified ---

    +
      +
    • From this +req-body-edit-user
    • +
    • To this +req-body-edit-user-updated
    • +
    +
  2. +
  3. +

    Modify the backend function to allow the user to send the only field which he/she wants to modify(edit). For instance, If the user wants to update the description he will just give the userId in params in path, and description field in the request body. All other fields which are not given in the request body will be automatically set in the backend from the DB. Refer to the discussion here.

    +
  4. +
+

New API for adding a user (Started)

+
    +
  • Gaurav sir sent me the patch that converted the user_add plugin to extend from DefaultPlugin rather than FO_Plugin.
  • +
  • This enabled me to use this plugin's existing methods to add a user which prevented code duplication and repetition of logic.
  • +
  • This Implementation included the following tasks --- +
      +
    • Create a new POST /users route in the index.php file inside www/ui/api directory.
    • +
    • Add a new method AddUser in the UserController.php file.
    • +
    • Try to re-use the methods that are already used in the user-add plugin.
    • +
    +
  • +
+

Testing POST /users

+
    +
  • Use any API platform like postman.
  • +
  • Pull the changes from this PR.
  • +
  • Provide the request body as following ---- +req-body-add-user
  • +
  • You can expect a response like this +res-body-add-user
  • +
+

Conclusions and further plans

+
    +
  • Complete the implementation of POST /users API to add a new user and document everything in openapi.yaml file.
  • +
  • Start figuring out the requirements for the implementation of upload-permisions API for modifying the upload permissions of each group for a upload and design the API in swagger docs..
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-07-31/index.html b/docs/2022/ui/updates/krishna/2022-07-31/index.html new file mode 100644 index 0000000000..36e27f7c6e --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-07-31/index.html @@ -0,0 +1,40 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Write the API docs for POST /users in openapi.yamlDone
3.Design the API for changing the upload permissionsDone
+

API Docs (POST /users)

+

I completed writing the docs for the /users POST route in the swagger openapi.yaml file and it looked like mentioned below ---

+
/users:
post:
operationId: createUser
tags:
- User
- Admin
summary: Create a new user
description: >
Create a new user
requestBody:
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/User'
- type: object
properties:
user_pass:
type: string
defaultVisibility:
type: string
enum:
- public
- protected
- private
required:
- name
application/x-www-form-urlencoded:
schema:
allOf:
- $ref: '#/components/schemas/User'
- type: object
properties:
user_pass:
type: string
defaultVisibility:
type: string
enum:
- public
- protected
- private
required:
- name
responses:
'201':
description: User created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Info'
'409':
description: User with the same email or username already exists
content:
application/json:
schema:
$ref: '#/components/schemas/Info'
'500':
description: Internal server error with details
content:
application/json:
schema:
$ref: '#/components/schemas/Info'
default:
$ref: '#/components/responses/defaultResponse'
+

Exploring upload-permissions plugin and designing the API

+
    +
  • +

    I took some time to understand the functionality of the upload-permssions plugin's methods and explored the existing functionalities.

    +
  • +
  • +

    I realised how the format of the request body should be by monitoring the network logs

    +
     mod: upload_permissions
    folder: 1
    upload: 3
    alluploadsperm: 0
    newperm: 0
    newgroup: 5
    +
  • +
  • +

    So if we observe the parameters, we see that we need the folderId, uploadId, allUploadsPermission for setting a common permision for every upload in a folder, newperm for setting up the new permission for the upload and newGroup which is the group Id for which the permissons are being set.

    +
  • +
  • +

    Keeping the above factors in mind, the API design comes out to be something like mentioned below.

    +
    /uploads/{id}/permissions:
    parameters:
    - name: id
    required: true
    description: Enter any upload id
    in: path
    schema:
    type: integer
    put:
    operationId: setUploadPermissions
    tags:
    - Upload
    summary: Set permissions for a upload in a folder for different groups
    description: >
    Set permissions for a upload in a folder for different groups
    requestBody:
    content:
    application/json:
    schema:
    type: object
    properties:
    folderId:
    type: integer
    description: Enter a folder id
    allUploadsPermission:
    type: boolean
    enum:
    - true
    - false
    description: Apply same permissions to all uploads in this folder
    groupId:
    type: integer
    description: Enter the id of the group you want to add or edit permission for this upload
    newPermission:
    type: string
    enum:
    - none
    - read_only
    - read_write
    - clearing_admin
    - admin
    description: Select the permission for selected group
    publicPermission:
    type: string
    enum:
    - none
    - read_only
    - read_write
    - clearing_admin
    - admin
    description: Select the public permission for this upload
    required:
    - allUploadsPermission
    responses:
    '202':
    description: Permissions updated successfully
    content:
    application/json:
    schema:
    type: array
    items:
    $ref: '#/components/schemas/Info'
    '400':
    description: Bad Request
    content:
    application/json:
    schema:
    type: array
    items:
    $ref: '#/components/schemas/Info'
    '404':
    description: Upload does not exist
    content:
    application/json:
    schema:
    type: array
    items:
    $ref: '#/components/schemas/Info'
    '503':
    description: Scheduler is not running
    content:
    application/json:
    schema:
    type: array
    items:
    $ref: '#/components/schemas/Info'
    default:
    $ref: '#/components/responses/defaultResponse'
    +
  • +
+

Conclusions and further plans

+
    +
  • Get the API design approved by the mentors and start working on the implementation.
  • +
  • Study the UI behaviour of the upload-permissions page and realise the requirements of the UI implementaion in react.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-08-07/index.html b/docs/2022/ui/updates/krishna/2022-08-07/index.html new file mode 100644 index 0000000000..543f09da71 --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-08-07/index.html @@ -0,0 +1,55 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Finish the implementation of REST API for modifying upload PermssionsDone
+

REST API Implemented -

+

After designing the API in the previous weaek, the design was approved by Gaurav Sir and requested some final changes. So, following the API design I implemented the PUT /uploads/{id}/permissions api for modifying the upload permissions via REST API.

+

uploadPermssions :

+
    +
  • The API implementation of the /uploads/{id}/permissions PUT route to modify user Details is done.
  • +
  • This task included +
      +
    • Creating a new PUT route in the index.php file inside www/ui/api directory.
    • +
    • Adding a new method setUploadPermissions in the UploadControllerclass.
    • +
    • Trying to re-use the methods that are already used in the upload_permissions plugin.
    • +
    • Testing the API via any API platform like postman.
    • +
    +
  • +
+ +

Testing /uploads/{id}/permissions

+
    +
  • +

    Pull the changes from the above PR.

    +
  • +
  • +

    Use any API platform like postman.

    +
  • +
  • +

    Provide the request body as following ---- +req-body-upload-permissions

    +
  • +
  • +

    You can expect a response like this +res-upload-permissions

    +
  • +
+

UI Implementation of the upload permissions page

+

When I started examining the UI behaviour of the upload permssions page, I realised that there is a requirement of an API that should return all the groups with their respective permissions for a given upload in order to create a tabular view in the UI.

+

Conclusions and further plans

+
    +
  • This PR is currently in review and if any changes are requested, I'll be solving them in the coming week.
  • +
  • Implement and design the API that will return the groups with their respective permissions for a given upload ID.
  • +
  • Implementing the react UI for the upload permissions page.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-08-14/index.html b/docs/2022/ui/updates/krishna/2022-08-14/index.html new file mode 100644 index 0000000000..e311cee45c --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-08-14/index.html @@ -0,0 +1,55 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Implement and design the API to get all the groups with their repective permssions for a given upload IDDone
3.Creating the upload permissions page in the react UINot Started
+

REST API Implemented -

+

As the below API is a part of the upload-permissions functionality, I added the REST implementation in the same PR#2275.

+

Designing GET /uploads/{id}/perm-groups

+

I figured out the requirements of this API and designed the following :

+
/uploads/{id}/perm-groups:
parameters:
- name: id
required: true
description: Id of the upload
in: path
schema:
type: integer
get:
operationId: getGroupsWithPermissions
tags:
- Upload
summary: Get all the groups with their respective permissions for a upload
description:
Returns the list of all the groups with their respective permissions for a upload
responses:
'200':
description: Get Groups with permissions
content:
application/json:
schema:
$ref: '#/components/schemas/UploadPermGroups'
'404':
description: Upload does not exist
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Info'
default:
$ref: '#/components/responses/defaultResponse'
+

Implementation :

+
    +
  • The API implementation of the /uploads/{id}/perm-groups GET route to get all the groups with their respective permissions for a upload is done.
  • +
  • This task included +
      +
    • Creating a new GET route in the index.php file inside www/ui/api directory.
    • +
    • Adding a new method getGroupsWithPermissions in the UploadControllerclass.
    • +
    • Trying to re-use the methods that are already used in the upload_permissions plugin.
    • +
    • Testing the API via any API platform like postman.
    • +
    +
  • +
+ +

Testing GET /uploads/{id}/perm-groups

+
    +
  • +

    Pull the changes from the above PR.

    +
  • +
  • +

    Use any API platform like postman.

    +
  • +
  • +

    Provide the uploadId in params ({id})

    +
  • +
  • +

    If your upload exists, you can expect a response like this. +res-perm-groups +Note: The above response also gives the publicPerm parameter which states the public permissions of the upload.

    +
  • +
+

Conclusions and further plans

+
    +
  • This PR is currently in review and if any changes are requested, I'll be solving them in the coming week.
  • +
  • Creating the upload permissions page in the react UI and implementing the APIs created.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-08-21/index.html b/docs/2022/ui/updates/krishna/2022-08-21/index.html new file mode 100644 index 0000000000..bcf4cacffc --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-08-21/index.html @@ -0,0 +1,37 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Create the upload permissions page in the react UI and implement the APIsDone
3.Implement the user APIs in the react UI for add and edit user pageNot started
+

Uploads permssions page

+
    +
  • The UI Implementation of Upload Permissions page is done.
  • +
  • I was succesfully able to render all the groups with their respective permissions using a tablular view.
  • +
  • The updation of the upload permissions is also working perfectly.
  • +
  • This task included +
      +
    • Create the static UI.
    • +
    • Implement data retrieval from html forms.
    • +
    • Implement the new API in PR #2275.
    • +
    • Test everything.
    • +
    +
  • +
+

UI Demo

+ + +

Conclusions and further plans

+
    +
  • This PR is currently in review and if any changes are requested, I'll be solving them in the coming week.
  • +
  • Implementing the user APIs --- POST /users and PUT /users/{id} in the react UI for add and edit user page respectively.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-08-28/index.html b/docs/2022/ui/updates/krishna/2022-08-28/index.html new file mode 100644 index 0000000000..f7b4308d5f --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-08-28/index.html @@ -0,0 +1,55 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Implementing the user APIsDone
3.Implementing the show jobs API and UIIn progress
+

API Implemention of Add and Edit user page

+
    +
  • This task included +
      +
    • Changing the initial design in which the mock API handling was done.
    • +
    • Create services and api modules for the user API's.
    • +
    • Implement the REST APIs in the UI and test everything.
    • +
    • Changing the flow of creating a REST Token (Now the user need to put in his password to create a custom REST API token)
    • +
    • Handle any unexpected UI behaviour due to change in the expected API response.
    • +
    +
  • +
  • Following are the APIs implemented +
      +
    • POST /users to create a user.
    • +
    • PUT /users/{id} to modify user details.
    • +
    • POST /users/tokens to create a REST API Token.
    • +
    • GET /users/tokens/{type} to get all the REST API tokens available.
    • +
    +
  • +
+

Working Demo

+

Add User Page

+ +

Edit User Page

+

+
+

New APIs

+

Show Jobs API

+

As per requirement Show Jobs page needs to be implemented in the UI. There was no existing API that provided all the required details for the same.

+

Overview

+
    +
  • I implemented the show jobs API and it will be available at GET /uploads/{id}/history, where {id} is the upload id.
  • +
  • I'll be issuing a PR for this once I design the API docs in openapi.yaml.
  • +
+

Conclusions and further plans

+
    +
  • Design the GET /uploads/{id}/history in openapi.yaml and issue a PR.
  • +
  • Add any other small bug fixes or changes to the same PR if related to the same functionality.
  • +
  • Create a Show Jobs page in the react UI.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/krishna/2022-09-04/index.html b/docs/2022/ui/updates/krishna/2022-09-04/index.html new file mode 100644 index 0000000000..b84c1adede --- /dev/null +++ b/docs/2022/ui/updates/krishna/2022-09-04/index.html @@ -0,0 +1,53 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + +

Week 12

Goals for the week

+
Sl. No.Initial GoalsCompleted
1.Solve requested changes on existing PRsDone
2.Update the GSOC progress report repositoryDone
3.Design the show jobs API in openapi.yaml Done
4.Implementing the show jobs page in the react UI (with API)Done
+

Designing GET uploads/{id}/history

+

The API design is something like mentioned below

+
/jobs/{id}/history:
parameters:
- name: id
required: true
description: Id of the upload
in: path
schema:
type: integer
get:
operationId: getJobsHistory
tags:
- Job
summary: Get the history of all the jobs queued based on an upload
description: Returns the history of all the jobs queued based on an upload
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ShowJob'
'403':
description: Upload is not accessible
content:
application/json:
schema:
$ref: '#/components/schemas/Info'
'404':
description: Upload does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Info'
default:
$ref: '#/components/responses/defaultResponse'
+ +

Testing GET jobs/{id}/history

+
    +
  • +

    Use any API platform like postman.

    +
  • +
  • +

    Pull the changes from the above PR.

    +
  • +
  • +

    If the upload id exists, you, can expect a response like this

    +
        [
    {
    "jobId": "7",
    "jobName": "Nirjas-master.zip",
    "jobQueue": [
    {
    "jq_pk": "11",
    "jq_job_fk": "7",
    "jq_type": "ununpack",
    "jq_args": "3",
    "jq_starttime": "2022-08-17 11:50:07",
    "jq_endtime": "2022-08-17 11:50:08",
    "jq_endtext": "Completed",
    "jq_itemsprocessed": "88",
    "jdep_jq_depends_fk": null,
    "depends": [
    null
    ],
    "itemsPerSec": 88,
    "canDoActions": true,
    "isInProgress": false,
    "isReady": true,
    "download": ""
    },
    {
    "jq_pk": "12",
    "jq_job_fk": "7",
    "jq_type": "adj2nest",
    "jq_args": "3",
    "jq_starttime": "2022-08-17 11:50:08",
    "jq_endtime": "2022-08-17 11:50:08",
    "jq_endtext": "Completed",
    "jq_itemsprocessed": "88",
    "jdep_jq_depends_fk": "11",
    "depends": [
    "11"
    ],
    "itemsPerSec": 88,
    "canDoActions": true,
    "isInProgress": false,
    "isReady": true,
    "download": ""
    },
    {
    "jq_pk": "13",
    "jq_job_fk": "7",
    "jq_type": "monk",
    "jq_args": "3",
    "jq_starttime": "2022-08-17 11:50:09",
    "jq_endtime": "2022-08-17 11:50:12",
    "jq_endtext": "Completed",
    "jq_itemsprocessed": "77",
    "jdep_jq_depends_fk": "12",
    "depends": [
    "12"
    ],
    "itemsPerSec": 25.666666666666668,
    "canDoActions": true,
    "isInProgress": false,
    "isReady": true,
    "download": ""
    },
    {
    "jq_pk": "14",
    "jq_job_fk": "7",
    "jq_type": "nomos",
    "jq_args": "3",
    "jq_starttime": "2022-08-17 11:50:09",
    "jq_endtime": "2022-08-17 11:50:20",
    "jq_endtext": "Completed",
    "jq_itemsprocessed": "77",
    "jdep_jq_depends_fk": "12",
    "depends": [
    "12"
    ],
    "itemsPerSec": 7,
    "canDoActions": true,
    "isInProgress": false,
    "isReady": true,
    "download": ""
    },
    {
    "jq_pk": "15",
    "jq_job_fk": "7",
    "jq_type": "ojo",
    "jq_args": "3",
    "jq_starttime": "2022-08-17 11:50:09",
    "jq_endtime": "2022-08-17 11:50:09",
    "jq_endtext": "Completed",
    "jq_itemsprocessed": "77",
    "jdep_jq_depends_fk": "12",
    "depends": [
    "12"
    ],
    "itemsPerSec": 77,
    "canDoActions": true,
    "isInProgress": false,
    "isReady": true,
    "download": ""
    }
    ],
    "upload": {
    "uploadName": "Nirjas-master.zip",
    "uploadId": "3",
    "uploadDesc": "Test Zip",
    "uploadItem": "3",
    "uploadEta": ""
    }
    }
    ]
    +
  • +
+

Implementing the Show jobs page in the react UI (with API)

+ +

This PR contains two tasks

+
    +
  • Creation of a new page that will show all the jobs queued for an upload and all other useful information. + +
  • +
  • Reading the main licenses and status parameter from the backend and showing it in the browse table for each upload.
  • +
+

Working Demo Show jobs Page

+ +

Conclusions and further plans

+
    +
  • Implement the report import functionality via REST API.
  • +
  • Create the Report Import page in react UI.
  • +
  • Write a blog decribing the journey of GSOC'2022 and contributions made during the tenure.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2021-06-24/index.html b/docs/2022/ui/updates/samuel/2021-06-24/index.html new file mode 100644 index 0000000000..7064eff50c --- /dev/null +++ b/docs/2022/ui/updates/samuel/2021-06-24/index.html @@ -0,0 +1,36 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Activities

+
    +
  • Created FOSSOlogy maintenance page.
  • +
  • Created Duplicate BucketPool Page.
  • +
  • Created the pull request for FOSSology maintenance page.
  • +
  • Started to implement the APIs for FOSSology maintenance.
  • +
  • Decided to quit the development of Duplicate BucketPool page for now +since it's not urgent yet.
  • +
+

Explanation

+

The FOSSOlogy maintenance and the Duplicate BucketPool page from the Admin section +were not available. In this week i managed to add these new pages as a part of the UI +project.

+

SCREENSHOTS

+

1. Maintenance Page

+

mantainance-page-pic-1 +mantainance-page-pic-2

+

2. BucketPool Page

+

bucket-pool

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-06-02/index.html b/docs/2022/ui/updates/samuel/2022-06-02/index.html new file mode 100644 index 0000000000..07637151ae --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-06-02/index.html @@ -0,0 +1,72 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

Some title.

+

Attendees

+
    +
  • Ayush Kumar
  • +
  • Katharina
  • +
  • Michael
  • +
  • Nicolas
  • +
  • Anupam
  • +
  • Gaurav
  • +
  • Shaheem
  • +
  • Kaushalendra
  • +
  • Ayush
  • +
  • Shruthi
  • +
  • Avinal
  • +
  • Sushant Kumar
  • +
  • Feng Wenhan
  • +
  • Rohit Pandey
  • +
  • Thanvi Lahari Pendyala
  • +
  • Krishna Mahato
  • +
  • Soham Banerjee
  • +
+

Discussions

+
    +
  1. Getting more introduction about the project from the mentors.
  2. +
  3. Discussion about the weekly meetings schedule.
  4. +
  5. Weekly progress report from each contributor.
  6. +
  7. How to use the weekly updates reporting tool.
  8. +
+

My progress in community bonding

+
    +
  1. Project setup done.
  2. +
  3. Understood the frontend-structure FOSSOlogyUI
  4. +
  5. Understood the backend-structure Fossology
  6. +
+

Conclusion and Further Plans

+
    +
  • I am looking forward to capture and report more issues.
  • +
  • Looking forward to start resolving the already found UI issues.
  • +
+

Meeting 2

+

(June 9th, 2022)

+

Discussions

+
    +
  • Progress report from every contributor.
  • +
  • Discussion about the challenges faced in the week.
  • +
+

Progress

+
    +
  • Updating the security dependency issues.
  • +
  • Looking on what's missing and how to start contributing on the fossology backend.
  • +
+

Conclusion and Further Plans

+
    +
  • Minimizing the dependency security issues.
  • +
  • Raising more issues on the backend and the Frontend.
  • +
  • Start contributing.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-06-30/index.html b/docs/2022/ui/updates/samuel/2022-06-30/index.html new file mode 100644 index 0000000000..22748f011f --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-06-30/index.html @@ -0,0 +1,35 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Activities

+
    +
  • Created The API to delete the group.
  • +
  • Created THe API to return a list of groups that can possibly be deleted.
  • +
  • Created the pull request for delete group API.
  • +
  • Created the pull request for deletable-groups-api API.
  • +
  • Continueing to release more APIs related to groups for future +front-end Integration.
  • +
+

SCREENSHOTS

+

1. Delete Group API

+

i. Let's choose the last group to be deleted. +delete-group-pic-1

+

ii. Pass the id of the group to delete in params.

+

delete-group-pic-2

+

2. List deletable groups API

+

deletable-groups

+

Contributions

+
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-07-07/index.html b/docs/2022/ui/updates/samuel/2022-07-07/index.html new file mode 100644 index 0000000000..19ad8ee630 --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-07-07/index.html @@ -0,0 +1,36 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Activities

+
    +
  • Implemented a new API for getting group members along with their permissions.
  • +
  • Improved The API for delete the group.
  • +
  • Improved the API to check if a user has a deletable group.
  • +
  • Created a new pull request for getting group members.
  • +
+

SCREENSHOTS

+

1. Get group members API

+

i. Let's choose the last group to be deleted. +get-group-members-pic-1

+

ii. Pass the id of the group you want to view members for in the params.

+

get-group-members-pic-2

+

Contributions

+ +

Next week's Contributions

+
    +
  • The API to change the user permission in a specific group.
  • +
  • Testing all my APIs in queue for testing.
  • +
  • Adding a new UI page to delete a particular group.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-07-14/index.html b/docs/2022/ui/updates/samuel/2022-07-14/index.html new file mode 100644 index 0000000000..ca1fcea52f --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-07-14/index.html @@ -0,0 +1,58 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Activities

+

Backend contributions:

+
    +
  1. +

    Testing all the APIs i've been working on:

    + +

    It was my first time working on tests in Slim flamework unfortunately they are not passing as expected +by the moment. But i am going to improve them in this coming week.

    +
  2. +
  3. +

    Released a new REST API to change the user permission from a particular group: https://github.com/fossology/fossology/pull/2259

    +
      +
    • Testing all the APIs i've been working on.
    • +
    • Created The API to change the user's permission.
    • +
    • Implemented the UI PAGE for delete GROUP.
    • +
    • Created the pull request for DELETE GROUP PAGE.
    • +
    • Created the pull request for CHANGE User Permission API.
    • +
    +
  4. +
+

Frontend Contributions:

+
    +
  1. Created and integrated DELETE GROUP PAGE. https://github.com/fossology/FOSSologyUI/pull/241
  2. +
+

SOME SCREENSHOTS

+

1. CHANGE USER PERMISSION Api

+

change-user-permission-pic

+

2. DELETE GROUP PAGE

+

delete-group-pic

+

NEXT WEEK'S EXPECTATIONS

+
    +
  • Test all the remaining APIs i've been working on.
  • +
  • Add a confirmation pop-up before the user deletes a group.
  • +
  • Add the REST API to remove a user from a group.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-07-21/index.html b/docs/2022/ui/updates/samuel/2022-07-21/index.html new file mode 100644 index 0000000000..e9927b1c48 --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-07-21/index.html @@ -0,0 +1,23 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-08-02/index.html b/docs/2022/ui/updates/samuel/2022-08-02/index.html new file mode 100644 index 0000000000..912f526c28 --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-08-02/index.html @@ -0,0 +1,17 @@ + + + + + +Week 6 & 7 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-08-11/index.html b/docs/2022/ui/updates/samuel/2022-08-11/index.html new file mode 100644 index 0000000000..caea4afe0c --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-08-11/index.html @@ -0,0 +1,67 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Activities

+
    +
  1. +

    BACKEND

    +

    i. Provided the tests for the 3 APIs I've been working on.

    + +

    ii. Fixed the Issue of the multiple upload calls: (Shruti3004/FOSSology-REST-API#2)

    +
  2. +
  3. +

    FRONTEND

    +

    i. Created and integrated manage-group-users PAGE. +ii. Fixed the issue of the multiple upload calls on the frontend. +iii. Provided tests for the fix of Multiple upload calls on the frontend.

    +
  4. +
+

SOME SCREENSHOTS

+
    +
  1. +

    MULTIPLE-CALLS ISSUE:

    +

    Request Format:

    +

    request-1

    +

    request-2

    +

    Expected Response:

    +

    response

    +
  2. +
  3. +

    MANAGE-GROUP-USERS PAGE

    +

    https://user-images.githubusercontent.com/66276301/183613559-6a682fe1-303c-46a1-83f2-d710092a3606.mp4

    +
  4. +
+

PULL REQUESTS

+
    +
  1. MULTIPLE-CALLS ISSUE: + +
  2. +
  3. MANAGE-GROUP-USERS PAGE + +
  4. +
+

NEXT WEEK'S EXPECTATIONS

+
    +
  1. Add and test the API for fossology Maintenance on the backend.
  2. +
  3. Integrate the fossology Maintenance API on the frontend.
  4. +
  5. Provide tests for the multiple-calls implementation on the backend.
  6. +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-08-18/index.html b/docs/2022/ui/updates/samuel/2022-08-18/index.html new file mode 100644 index 0000000000..903fc6d4cb --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-08-18/index.html @@ -0,0 +1,45 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

THIS WEEK'S CONTRIBUTIONS

+

FRONTEND:

+

1. Integrated Fossology Maintenance Page.(https://github.com/fossology/FOSSologyUI/pull/252)

+

2. Added UI tests for UPLOAD functionality (#249) (https://github.com/fossology/FOSSologyUI/pull/249)

+

BACKEND:

+

1. Added get Admin-license candidates API. (#2295) (https://github.com/fossology/fossology/pull/2295)

+

2. Added A REST API TO import a csv-license file. (#2292) (https://github.com/fossology/fossology/pull/2292)

+

3. Added all the requested changes to the API to initiate Fossology Maintenance. (#2290) (https://github.com/fossology/fossology/pull/2290)

+

SOME SCREENSHOTS

+

1. Integrated Fossology Maintenance Page.

+

https://user-images.githubusercontent.com/66276301/184678066-360fc503-8dd6-4746-8848-68f90f31d615.mp4

+

2. Added get Admin license candidate API.

+

get-admin-license-candidates

+

3. Import CSV-license file.

+

FIRST-CASE

+

import-csv-license-file1

+

SECOND-CASE

+

import-csv-license-file2

+

NEXT WEEK'S EXPECTATION:

+

1. BACKEND:

+

1. COMPLETE REMAINING APIS ON THE LICENSE ADMINISTRATION MODULE

+

i. REST-API to select License according to the user specifications.

+

ii. REST-API to add the admin-standard-license comment.

+

iii. REST-API To list the paginated admin-standard-license comments.

+

2. FRONTEND:

+

i. COMPLETE THE REMAINING PAGES ON THE LICENSE ADMINISTRATION MODULE

+

i. Integrate The add license page. (The UI is there currently but not integrated to the respective REST-API).

+

ii. Implement and Integrate the Page to import the CSV license.

+

iii. Implement and Integrate the Page to list the admin-license-candidates.

+

iv. Implement and Integrate the Page to select the license.

+

v. Implement and Integrate the Page to Add and list paginated admin-standard-license comments.

+

ii. UPDATING MY PRs ACCORDING TO MY MENTORS SUGGESTIONS.

+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-08-25/index.html b/docs/2022/ui/updates/samuel/2022-08-25/index.html new file mode 100644 index 0000000000..83e2e3dfa3 --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-08-25/index.html @@ -0,0 +1,42 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

THIS WEEK'S CONTRIBUTIONS

+

FRONTEND

+
    +
  • Made the improvements on the FOSSOlogy Maintenance page: +I fixed the issue with the existing test cases that were causing the CI/CDs for the fossology maintenance page to fail deploying.
  • +
+

BACKEND

+
    +
  • Added an API to delete Admin License Candidate: +With the given Id of the license Candidate in the request parameters, i can delete the license.
  • +
+

How it works:

+

FIRST CASE

+

In this case, the Admin-license-candidate exists, and the license-candidate will be deleted successfully. +delete-license-candidate-case-1

+

SECOND CASE

+

In this case, the Admin-license-candidate doesn't exist, so 404 error will be returned instead.

+

delete-license-candidate-case-2

+

THIRD CASE

+

The request is not coming from the Admin. +This request can only be run by the admin , else the request will fail returning 400 ERROR.

+

delete-license-candidate-case-3

+

Pull request: feat(API): delete admin-license candidate

+

NEXT WEEK'S EXPECTATIONS

+
    +
  • I will continue working on the APIs that are not available on the license module.
  • +
  • I will also work on the UI of the license module.
  • +
  • I will also continue to improve the UI of the FOSSOlogy maintenance page.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-09-08/index.html b/docs/2022/ui/updates/samuel/2022-09-08/index.html new file mode 100644 index 0000000000..759d3e42ed --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-09-08/index.html @@ -0,0 +1,37 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + +

Week 12

CONTRIBUTIONS

+

FRONTEND

+

1.Created the page for importing the csv-license file.

+

This week i've been creating the new page for importing the license which was not available on the UI project.

+

SCREENSHOTS

+

import-csv-license

+

Pull request:fix(API): merge multiple upload-api calls into one

+

2. Finalized the changes that were caused by changing the upload file request

+

uploaded-request-changed

+

Pull request: fix(MULTIPLE-API-CALLS) merge multiple upload-api calls into one

+

3. Updated Manage-group-users page

+

managage-group-users

+

Pull request: feat(UI): added manage group-users page

+

BACKEND

+

1. Finalized the backend work of fixing the multiple Upload API calls.

+

Pull request: feat(UI): Import CSV-license file PAGE

+

2. Finalized Delete Admin License Candidate API

+

The API should return the message if the delete operation was not successful.

+

Pull request: feat(API): delete admin-license candidate

+

NEXT WEEK'S EXPECTATIONS

+
    +
  • Continuous modification of my PRs that are still on the queue.
  • +
  • Write my final GSOC documentation for the closing evaluation.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/samuel/2022-09-1/index.html b/docs/2022/ui/updates/samuel/2022-09-1/index.html new file mode 100644 index 0000000000..61adc3124f --- /dev/null +++ b/docs/2022/ui/updates/samuel/2022-09-1/index.html @@ -0,0 +1,47 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

THIS WEEK'S CONTRIBUTIONS

+

FRONTEND:

+
    +
  1. Improved the UI look and added new functionalities in the Manage group users page.
  2. +
+

Description:

+

The current implementation of manage group users , did not give any way to add back the removed user. +These improvements are allowing to add back the removed member.

+

SCREENSHOTS

+

manage-group-users-improved

+

Pull request: feat(UI): added manage group-users page

+

BACKEND:

+
    +
  1. Added a new API to add the user to the group.
  2. +
+

Description:

+

This API gives the ability to add the user who was removed from the group , to invite him back to the group.

+

SCREENSHOTS

+
    +
  • ADDING USER TO THE GROUP:
  • +
+

add-user-to-group

+
    +
  • ATTEMPT TO ADD AN ALREADY EXISTING MEMBER:
  • +
+

re-add-user-to-group

+

Pull request: feat(API): add user to a group.

+

NEXT WEEK'S PLAN

+
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-06-02/index.html b/docs/2022/ui/updates/soham/2022-06-02/index.html new file mode 100644 index 0000000000..308ba88fb7 --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-06-02/index.html @@ -0,0 +1,53 @@ + + + + + +Community Bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

Meeting 1

+

(June 2nd, 2022)

+

First GSOC 2022 weekly update meeting

+

Discussions

+
    +
  • Understood the flow and processes of the weekly updates meetings organized by the Organisation.
  • +
  • Discussed and came to fix a suitable time for project-specific weekly meetings (Every Tuesday from 2:30 PM to 3:30 PM GMT)
  • +
  • Explained the fixes issued during this week and the possibilities of more upcoming fixes.
  • +
  • Some project-specific doubts cleared regarding the API testing
  • +
+

Contributions

+ +

Conclusion and Further Plans

+
    +
  • Currently will be looking for scopes to modularise the larger components into smaller components for better reusability and flexibility in future updates.
  • +
  • Will be testing the APIs and if issues are found will be reporting them to the mentors and will be issuing respective fixes for them.
  • +
+

Meeting 2

+

(June 9th, 2022)

+

GSOC 2022 weekly update meeting

+

Discussions

+
    +
  • Understood the flow and processes of the weekly updates meetings organized by the Organisation.
  • +
  • Discussed and came to fix a suitable time for project-specific weekly meetings (Every Tuesday from 2:30 PM to 3:30 PM GMT)
  • +
  • Explained the resuablity of the constants in some components.
  • +
  • The flow of the development during the GSOC period was discussed upon.
  • +
+

Contributions

+ +

Conclusion and Further Plans

+
    +
  • Students will be creating tickets and they will be assiged by the mentors to fix the issues.
  • +
  • Necessary KT session will be conducted in the Project specific meets to discuss the issues and fix them.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-06-24/index.html b/docs/2022/ui/updates/soham/2022-06-24/index.html new file mode 100644 index 0000000000..2f4f3f15ef --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-06-24/index.html @@ -0,0 +1,36 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

All Recent Jobs Page

+

(June 16th, 2022)

+

Implementation of the All Recent Jobs page in the UI started. +The response from the /jobs endpoint was used in order to get the data from the backend server

+

Response format of the API:
+Screenshot from 2022-06-24 10-04-12

+

At first MDBReact datatable was used to render the data but further discussions on optimising the page the idea was scrapped and X-Total-pages header was used to get the data from the server in already paginated form.

+

Final UI of the All Recent jobs page after the discussions looks like:

+

Screenshot from 2022-06-24 10-10-47

+ +

My Recent Jobs Page

+

The same API endpoint was used in My Recent Jobs page and the logged in user's UID was fetched from the getUserSelf() function. +MDBReact table was used here and this requires change to the same UI as of /allRecentJobs page.

+ +

Search in Browse Page

+

There was a search-bar present in the Browse page but, there was no function implented to make the search work. Thus introduced a search function which filters the API response as per the query data and only renders the value which is asked by the user.

+ +

Conclusion and Further Plans

+
    +
  • Currently will be impleneting the My Recent Jobs page and will be introducing a row style pagination navigator as discussed with the mentors.
  • +
  • The REST API for /jobs endpoint also needs a rework as it needs to send the processes as a subgroup of its respective job rather than sending all the processes at once.
  • +
  • Other filters in the Browse page aslo needs to be implemented as the UI is ready but there is no funtion implemented.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-07-3/index.html b/docs/2022/ui/updates/soham/2022-07-3/index.html new file mode 100644 index 0000000000..37f228e65c --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-07-3/index.html @@ -0,0 +1,31 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Horizontal Pagination implementation

+

(June 25th, 2022)

+

Implementation of the horizontal page navigator. The pagination module fetches the data from the API on page basis thus reducing the response time of the API.

+

The All Recent Jobs page with the new Pagination module:
+pagination

+

The Module also contains a text box so that user can directly navigate to that particular page at once. +This was suggested by one of the mentors and was implemented after.

+ +

/jobs API

+

Started modifying the /jobs API and currently making a demo docuentation so that the flow of the APIs can be made clear. The API was discussed in the meeting and mentor asked to implement it in a certain suitable way.

+

Current response of the API:
+jobs_res

+

Mentors asked to take the user ID as a parameter and not in the URL itself. In addition to this there were suggested changes in the endpoint names and processes which are yet to be implemented.

+

Conclusion and Further Plans

+
    +
  • Currently will be completing the doc related to the API development in order to clear the flow of the upcoming APIs
  • +
  • Implementing the same Pagination module to the /browse page, Thus making navigation easier in that page too.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-07-7/index.html b/docs/2022/ui/updates/soham/2022-07-7/index.html new file mode 100644 index 0000000000..cfa8ba470f --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-07-7/index.html @@ -0,0 +1,32 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Horizontal Pagination implementation in browse page

+

(July 3rd, 2022)

+

Implementation of the horizontal page navigator in the browse page. The pagination module fetches the data from the API on page basis thus reducing the response time of the API in the browse page. This was implemented earlier in the allRecentJobs page.

+

The Browse page with the new Pagination module:
+pagination

+ +

/jobs API

+

/jobs endpoint now sends only the jobs created by the logged in user. This API can be called by both the Admin and other users.

+

Fossy user Page:
+jobs_res

+

Another user's Page:
+jobs_res

+

Mentors asked to create an flag to get all the jobs irrespective of the user which will only be used by the Admin user.

+ +

Conclusion and Further Plans

+
    +
  • Implementing the neccesary flags proposed by the mentors in the API.
  • +
  • Create any missing API endpoint related to the Jobs module.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-07-8/index.html b/docs/2022/ui/updates/soham/2022-07-8/index.html new file mode 100644 index 0000000000..19b6d10669 --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-07-8/index.html @@ -0,0 +1,27 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Jobs/all endpoint added

+

(July 14th, 2022)

+

Implementation of the jobs/all API endpoint. this API endpoint sends all the jobs craeted by all the users. This API only sends a response only if the requesting user is an admin.

+

The API response when the requesting user is an Admin:
+adimin_res

+
+

The API response when the requesting user is Not an Admin:
+nonAdmin_response

+ +

Conclusion and Further Plans

+
    +
  • Completing the Jobs Module UI once the backend PRs are approved.
  • +
  • Picking up License browser module after dicussions with mentors
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-07-9/index.html b/docs/2022/ui/updates/soham/2022-07-9/index.html new file mode 100644 index 0000000000..a811d56062 --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-07-9/index.html @@ -0,0 +1,33 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

+

(July 21th, 2022)

+

Implementation of a new endpoint which gives the copyright information as a response for the requested upload.
+It also provides the respective file paths for each copyright which is reccuring troughout the output.

+

The API response when requested on a upload (used Nirjas repository here):

+
[
{
"copyright": "Copyright (C) 2020 Ayush Bhardwaj (classicayush@gmail.com), Kaushlendra Pratap (kaushlendrapratap.9837@gmail.com)",
"filePath": [
"Nirjas-master.zip/Nirjas-master/nirjas/languages/php.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/c.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/matlab.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/text.py",
"Nirjas-master.zip/Nirjas-master/nirjas/main.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/scala.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/c_sharp.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/perl.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/java.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/python.py",
"Nirjas-master.zip/Nirjas-master/nirjas/binder.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/ruby.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/rust.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/javascript.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/kotlin.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/cpp.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/html.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/swift.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/shell.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/css.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/go.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/haskell.py",
"Nirjas-master.zip/Nirjas-master/setup.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/r.py"
]
},
{
"copyright": "Copyright (C) 2020 Siemens AG Author: Gaurav Mishra <mishra.gaurav@siemens.com>",
"filePath": [
"Nirjas-master.zip/Nirjas-master/nirjas/output/single_line.py",
"Nirjas-master.zip/Nirjas-master/nirjas/output/__init__.py",
"Nirjas-master.zip/Nirjas-master/nirjas/output/multi_line.py",
"Nirjas-master.zip/Nirjas-master/nirjas/output/scan_output.py"
]
},
{
"copyright": "Copyright (C) 2020 Aman Dwivedi (aman.dwivedi5@gmail.com)",
"filePath": [
"Nirjas-master.zip/Nirjas-master/nirjas/languages/scss.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/typescript.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/tests/test_typescript.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/tests/test_dart.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/tests/test_scss.py",
"Nirjas-master.zip/Nirjas-master/nirjas/languages/dart.py"
]
},
{
"copyright": "Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term \"modification\".)",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyrighted interfaces, the",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyright\" line and a pointer to where the full notice is found.",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "Copyright (C) <year> <name of author>",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyright disclaimer\" for the library, if necessary. Here is a sample; alter the names:",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker.",
"filePath": [
"Nirjas-master.zip/Nirjas-master/LICENSE"
]
},
{
"copyright": "Copyright (C) 2021 Hamed Faramarzi Author: Hamed Faramarzi <hamed.faramarzi@gmail.com>",
"filePath": [
"Nirjas-master.zip/Nirjas-master/nirjas/output/output.py"
]
},
{
"copyright": "Copyright (C) Sushant Kumar (sushantmishra02102002@gmail.com) SPDX-License-Identifier: LGPL-2.1 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA",
"filePath": [
"Nirjas-master.zip/Nirjas-master/nirjas/languages/sql.py"
]
},
{
"copyright": "Copyright (C) 2021 Aswin Murali (aswinmurali.co@gmail.com)",
"filePath": [
"Nirjas-master.zip/Nirjas-master/Dockerfile"
]
},
{
"copyright": "Copyright (C) 2021 Gaurav Mishra <mishra.gaurav@siemens.com>",
"filePath": [
"Nirjas-master.zip/Nirjas-master/Dockerfile"
]
},
{
"copyright": "Copyright (C) 2020 Soham Banerjee (sohambanerjee4abc@hotmail.com),",
"filePath": [
"Nirjas-master.zip/Nirjas-master/nirjas/languages/julia.py"
]
}
]

+

The requested URL for getting the response is: localhost/repo/api/v1/uploads/<UPLOAD_ID>/copyrights

+ +

All jobs only accessible by admin

+

Made changes in the UI so that only admins can access the All Recent Jobs page. For other users the route will not be there in the navigation bar.

+

Admin veiw:
+adimin_veiw

+

Non-Admin View:
+non_adimin_veiw

+ +

Conclusion and Further Plans

+
    +
  • Developing respective UI for the Copyright endpoint.
  • +
  • Picking up remaining API endpoints from the License Browser module.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-08-01/index.html b/docs/2022/ui/updates/soham/2022-08-01/index.html new file mode 100644 index 0000000000..3e49576959 --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-08-01/index.html @@ -0,0 +1,30 @@ + + + + + +Week 6 and 7 | GSoC projects at FOSSology + + + + + +

Week 6 and 7

Clearing Decisions endpoint added and in progress

+

(August 14th, 2022)

+

Working on the uploads/<uploadID>/licenses endpoint to return the latest clearing decision for each and every filepath.

+

Was able to return the latest clearing status for each upload ID and return it in the api response:

+

api_res

+ +

License browser page updated

+

Worked on the License Browser page and formatted the scanner results and the edited results response. Also modified to remove the limit on the page to view all the responses.
+Current status of the License browser page:

+

api_res

+ +

Conclusion and Further Plans

+
    +
  • Implementing the clearing decisions response on the UI.
  • +
  • Implementing the number of decisions to be cleared / open / total response for the licenses endpoint.
  • +
  • Exploring and learing more about the database structure of the fossology project and implement the concepts to develop more API endpoints in the future.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-08-05/index.html b/docs/2022/ui/updates/soham/2022-08-05/index.html new file mode 100644 index 0000000000..2fde039686 --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-08-05/index.html @@ -0,0 +1,32 @@ + + + + + +Week 8 and 9 | GSoC projects at FOSSology + + + + + +

Week 8 and 9

uploads/<uploadID>/licenses endpoint completed

+

(August 14th, 2022)

+

Working on the uploads/<uploadID>/licenses endpoint to return the latest clearing decision for each and every filepath completed this week. +Used ItemTreeBounds to get the latest clearing decisions. Rather than using the seperate SQL qureies and modifications in the DAO files created seperate functions so that they can be reused and the funcionality of the earlier funtctions in the DAO files remain the same.

+

Was able to return the latest clearing status for each upload ID and return it in the api response:

+

api_res

+

The new function created in LicenseDao.php:

+
public function getLicensesAndTreeIdPerFileNameForAgentId(ItemTreeBounds $itemTreeBounds,
$selectedAgentIds=null,
$includeSubfolders=true,
$excluding='',
$ignore=false,
&$clearingDecisionsForLicList = array())
{
$uploadTreeTableName = $itemTreeBounds->getUploadTreeTableName();
$statementName = __METHOD__ . '.' . $uploadTreeTableName;
$param = array();

$condition = " (ufile_mode & (1<<28)) = 0";
if ($includeSubfolders) {
$param[] = $itemTreeBounds->getLeft();
$param[] = $itemTreeBounds->getRight();
$condition .= " AND lft BETWEEN $1 AND $2";
$statementName .= ".subfolders";
} else {
$param[] = $itemTreeBounds->getItemId();
$condition .= " AND realparent = $1";
}

if ('uploadtree_a' == $uploadTreeTableName) {
$param[] = $itemTreeBounds->getUploadId();
$condition .= " AND upload_fk=$".count($param);
}

$agentSelect = "";
if ($selectedAgentIds !== null) {
$statementName .= ".".count($selectedAgentIds)."agents";
$agentSelect = "WHERE agent_fk IS NULL";
foreach ($selectedAgentIds as $selectedAgentId) {
$param[] = $selectedAgentId;
$agentSelect .= " OR agent_fk = $".count($param);
}
}

$sql = "
SELECT uploadtree_pk, ufile_name, lft, rgt, ufile_mode,
rf_shortname, agent_fk
FROM (SELECT
uploadtree_pk, ufile_name,
lft, rgt, ufile_mode, pfile_fk
FROM $uploadTreeTableName
WHERE $condition) AS subselect1
LEFT JOIN (SELECT rf_shortname,pfile_fk,agent_fk
FROM license_file, license_ref
WHERE rf_fk = rf_pk) AS subselect2
ON subselect1.pfile_fk = subselect2.pfile_fk
$agentSelect
ORDER BY lft asc
";

$this->dbManager->prepare($statementName, $sql);
$result = $this->dbManager->execute($statementName, $param);
$licensesPerFileName = array();

$row = $this->dbManager->fetchArray($result);
$pathStack = array($row['ufile_name']);
$rgtStack = array($row['rgt']);
$lastLft = $row['lft'];
$path = implode('/', $pathStack);
$uploadTreeId = $row['uploadtree_pk'];
$this->addToLicensesAndTreeIdPerFileName($licensesPerFileName, $path, $row, $ignore, $clearingDecisionsForLicList, $uploadTreeId);
while ($row = $this->dbManager->fetchArray($result)) {
if (!empty($excluding) && false!==strpos("/$row[ufile_name]/", $excluding)) {
$lastLft = $row['rgt'] + 1;
continue;
}
if ($row['lft'] < $lastLft) {
continue;
}

$this->updateStackState($pathStack, $rgtStack, $lastLft, $row);
$path = implode('/', $pathStack);
$this->addToLicensesAndTreeIdPerFileName($licensesPerFileName, $path, $row, $ignore, $clearingDecisionsForLicList, $uploadTreeId);
}
$this->dbManager->freeResult($result);
return array_reverse($licensesPerFileName);
}
+ +

Download file using UploadID

+

Developed an API endpoint to send the file as a response for the respective UploadId. The Api sends the file with their respective mimetype and file name which can be downloaded in the frontend.
+Current status of the Download API response:

+

api_res

+ +

Conclusion and Further Plans

+
    +
  • Implementing the Import Report functionality.
  • +
  • Focussing on the Docs section and writing docs for the Final Evaluation.
  • +
+ + \ No newline at end of file diff --git a/docs/2022/ui/updates/soham/2022-08-08/index.html b/docs/2022/ui/updates/soham/2022-08-08/index.html new file mode 100644 index 0000000000..c1f625fa0b --- /dev/null +++ b/docs/2022/ui/updates/soham/2022-08-08/index.html @@ -0,0 +1,27 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Fix failing tests due to lint errors

+

(September 14th, 2022)

+

Worked on finding failing tests and linting issues.

+

found issues on the file openapi.yaml and fixed them

+ +

Started with UI integration for clearing status

+

Started with the implementation of UI for the clearing statuses: +Currently finished indexing the images as follows:

+

index

+

Conclusion and Further Plans

+
    +
  • Completing documentations and preparing for final evaluation sumbission
  • +
  • Implementing the Files to be cleared operation in both Backend and UI
  • +
+ + \ No newline at end of file diff --git a/docs/2023/GSoC-projects/index.html b/docs/2023/GSoC-projects/index.html new file mode 100644 index 0000000000..6e9491101b --- /dev/null +++ b/docs/2023/GSoC-projects/index.html @@ -0,0 +1,204 @@ + + + + + +Google Summer of Code Proposals 2023 | GSoC projects at FOSSology + + + + + +

Google Summer of Code Proposals 2023

Welcome to the main page for all GSoC 2023 related information.

+ +

Intro

+

We from the fossology project would like to apply for GSOC. Please see two main +resources for finding out more FOSSology in general:

+ +

Meetings: Checkout the Meetings table

+

Interested in Application? - Getting Grip

+

If you are interested in an application - great! We encourage your application. So the question is how to get started with the topic, just a few points:

+ +

Examples from past programs

+

In 2020, we were awarded seven slots, please see here what was the result of it:

+ +

Also - very much fun - There are some YouTube videos created:

+ +

In 2021, the GSoC program awarded the fossology project with 7 slots. It was a lot bigger and a lot of fun for 2021, a dedicated page has been set up. Please see the GSoC works here.

+

From this page you can also get an idea about the work being carried out: check the weekly reporting, for example for the UI project.

+

You can check out our GSoC 2022 projects with 8 slots. The dedicated page can be found here.

+

Mentors

+

Interested in becoming a mentor? Please reach out to us!

+

Proposals so far:

+ +

Topic Proposals

+

Please reach out to us to add more proposals for GSoC 2023.

+

Currently, discussion happening on https://github.com/fossology/fossology/discussions/2371

+

Topic Proposals from 2023

+
    +
  1. REST API improvements
  2. +
  3. Integrating Open Source Review Toolkit
  4. +
  5. Reducing false positive copyrights
  6. +
  7. Support CycloneDX report
  8. +
  9. Support conf file & UI for NOMOS agent
  10. +
  11. Support text phrases scanning for MONK agent
  12. +
  13. New project to estimate clearing effort
  14. +
  15. Main license detection for components
  16. +
  17. License as service
  18. +
  19. Obligation as service
  20. +
  21. Improving FOSSology CI scanner image
  22. +
  23. Support dynamic CSS class of bootstrap in FOSSology
  24. +
+

REST API improvements

+

Goal: Making all data from current UI available on REST API

+ +
CategoryRating
Low Hanging Fruit-
Risk/Exploratory*
Fun/Peripheral**
Core Development***
Project Infrastructure**
Project sizeLarge
Preferred contributorStudent/Professional
+

Integrating Open Source Review Toolkit

+

Goal: Using ORT to fetch dependencies and generate SBOM

+

Build systems fetch the required dependencies (library/artifact) for a project while building the project. Its important to get an insight of these dependencies for license compliance check.

+

The OSS Review Toolkit is an open source project helps to find dependencies in a project.

+

The goal of this project is to render the project dependencies created by ort and display those in the fossology-UI. Dependencies can be scheduled directly from the UI and scan with fossology.

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory-
Fun/Peripheral**
Core Development***
Project Infrastructure*
Project sizeLarge
Preferred contributorStudent/Professional
+

Comment

+ +

Reducing false positive copyrights

+

Goal: Improving copyright agent by reducing false positives

+

In GSoC 2021, @Kaushl2208 worked on an ML script to tag and cleanup false positive copyrights detected by FOSSology. The goal is to continue on the work and improve the script. Alternatively, the copyright agent of FOSSology itself can be improved to achieve better results. +Known issues:

+
    +
  • The script currently works only for English names.
  • +
  • The clutter removal changes the casing of text.
  • +
  • Low accuracy of the agent overall.
  • +
+

Links:

+ +
CategoryRating
Low Hanging Fruit**
Risk/Exploratory***
Fun/Peripheral**
Core Development*
Project Infrastructure**
Project sizeLarge
Preferred contributorStudent
+

Support CycloneDX report

+

Goal: Creating CycloneDX reports along with SPDX and other formats

+

CycloneDX is another popular format for generating SBOMs. Having FOSSology generate reports in CycloneDX along with SPDX will enable integration with more tools.

+

Links:

+ +

As a small enhancement, other reporting formats from SPDX can be implemented as well including JSON and YAML.

+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Peripheral**
Core Development*
Project Infrastructure**
Project sizeLarge
Preferred contributorStudent
+

Support conf file & UI for NOMOS agent

+

Goal: Adding text phrases from UI or from .conf file should enble nomos to scan for new text phrases(Added) for licenses

+

FLOW : Create a UI Where user can add multiple text phrases associated with license(FROM FOSSology License Database) +
This text phrases should get converted in to regex and stored in a conf. +
Should provide ability to NOMOS to copy regex and associated license from conf to search for a license. +
Test cases needs to be provided as well.

+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Peripheral**
Core Development*
Project Infrastructure**
Project sizeLarge
Preferred contributorStudent/professional
+

Support text phrases scanning for MONK agent

+

Goal: Adding text phrases from UI to database and provide ability to scan them using MONK.

+

FLOW : Create a UI Where user can add multiple text phrases associated with license(FROM FOSSology License Database) +
Should enable MONK to scan from phrases table. +
Test cases needs to be provided as well.

+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Peripheral**
Core Development*
Project Infrastructure**
Project sizeMedium
Preferred contributorStudent/professional
+

New project to estimate clearing effort

+

Goal: Create a new project using bootstrap and php to estimate time to clear the given number of components.

+

FLOW : Create a UI Where user can upload CSV/json +
Read all the components in the given file and search them in FOSSology & SW360 Database. +
List the components that were already cleared in fossology AND sw360. +
List all the components that were cleared with other versions. +
List all the components that are not matched with any of the components. +
And also list a ESTIMATED TIME to finish the upload based upon size.

+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Peripheral**
Core Development*
Project Infrastructure**
Project sizeMedium
Preferred contributorStudent/professional
+

Main license detection for components

+

Goal: Automatically detect main license for a component/package

+

Fetch main license of the component/package from package-list/package repo, this will help the users to reach quick decide on the license situation based on the main license and license histogram of the package.

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory-
Fun/Peripheral**
Core Development***
Project Infrastructure*
Project sizeLarge
Preferred contributorStudent/Professional
+

License as service

+

Goal: License repository that can be used by other project/s

+

Idea is to create a license database similar to what fossology uses and expose it over an API which can then be used by other projects like fossology and sw360 as source of license text, risk, etc.

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory-
Fun/Peripheral**
Core Development***
Project Infrastructure*
Project sizeLarge
Preferred contributorStudent/Professional
+

Obligation as service

+

Goal: Obligation repository that can be used by other project/s

+

Idea is to create a obligations database similar to what fossology uses and expose it over an API which can then be used by other projects like fossology and sw360 as source of obligations for given license(s).

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory-
Fun/Peripheral**
Core Development***
Project Infrastructure*
Project sizeLarge
Preferred contributorStudent/Professional
+

Improving FOSSology CI scanner image

+

Goal: Enhancing current scanner image with new reports and features +As a fun project, FOSSology started combining scanners in a simple and small Docker image which can be run on CI providers. The image is currently capable of understanding build environment (GitLab/GitHub Actions/Travis) and use their API's to fetch diff of a branch or scan the complete repo. The capabilities of image include license scanning with Nomos and ojo scanners, copyright and keyword scanning with respective scanners. The image makes use of a Python script to perform all the tasks.

+
    +
  1. The script, however, currently prints report in text format on console and generate the same as an artifact. It can be improved by generating reports in other formats like SPDX reports. See their Python API.
  2. +
  3. The integration with GitHub Actions can be improved by reporting line number where a license violation is found.
  4. +
  5. Allowing user to provide a different list of Keywords for scanning (currently stored at /usr/local/share/fossology/keyword/agent/keyword.conf).
  6. +
  7. Improving on whitelist format with feature to provide it from other sources, currently it is read from a file which is expected to be in the root of repo being scanned.
  8. +
  9. Ability to down a dependency for scan (path provided at pipeline trigger).
  10. +
+

Additionally, the JSON output of nomos needs to be enhanced providing highlight and line information in the output.

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory**
Fun/Peripheral***
Core Development**
Project Infrastructure***
Project sizeLarge
Preferred contributorStudent/Professional
+

Support dynamic CSS class of bootstrap in FOSSology

+

Goal: Create a PHP page and define all the CSS classes of bootstrap that are been used inside of project

+

FLOW:

+
    +
  1. Create a PHP page and define all the CSS classes of bootstrap that are been used inside of project.
  2. +
  3. Also beautify the existing FOSSology UI with Bootstrap.
  4. +
  5. We can easily change from versions of bootstrap if we have all the classes in one place.
  6. +
+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Peripheral***
Core Development*
Project Infrastructure**
Project sizeMedium
Preferred contributorStudent
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/index.html b/docs/2023/copyrights/index.html new file mode 100644 index 0000000000..8d320474dc --- /dev/null +++ b/docs/2023/copyrights/index.html @@ -0,0 +1,75 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Abdelrahman Jamal

+

Contact info

+ +

Github Repository

+ +

What's the project about?

+

This project’s goal is to improve the accuracy of Fossology’s copyright detection system using machine learning. This functionality was originally implemented in 2021 to improve the two-step process of copyright detection used by most copyright detection software; using Regex and then human intervention. The machine learning approach uses Named Entity Recognition (NER) and Part of Speech (POS) tagging to figure out which statements contain copyright and which do not. I’ll be working on improving all parts of the project; starting from the dataset & preprocessing, then working my way to the NER hypothesis until the machine learning model used and the final integration.

+

What should be done?

+
    +
  1. +

    Dataset creation which involves:

    +
      +
    • Choosing the open-source repositories to include (and other +sources as needed)
    • +
    • Labeling the initial dataset is the hardest part as it involves using the Fossology API to extract Fossology's output and checking for the false positives and labeling them as such.
    • +
    • Following that, I can use the model that is trained on the initial dataset to help me label further datasets.
    • +
    +
  2. +
  3. +

    Choosing machine Learning approach to follow

    +
      +
    • Testing out the different approaches +
        +
      • Embedding or vectorizing words and sentences +
          +
        • Test out the different vectorization and embedding methods
        • +
        +
      • +
      • Extracting features from each sentence
      • +
      +
    • +
    +
  4. +
  5. +

    Choosing the best machine learning models to implement

    +
      +
    • Testing out the various machine and deep learning models and choosing the best performing one. +
        +
      • Support Vector Machines (SVM)
      • +
      • Random Forest (RF)
      • +
      • Naive Bayes (NB)
      • +
      • Recurrent Neural Networks (RNN) +
          +
        • Long Short Term Memory (LSTM)
        • +
        • Bidirectional Long Short Term Memory (Bi-LSTM)
        • +
        +
      • +
      • BERT (and it's variants)
      • +
      +
    • +
    +
  6. +
  7. +

    Research into clutter removal and the best ways to implement it.

    +
  8. +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-05-11/index.html b/docs/2023/copyrights/updates/2023-05-11/index.html new file mode 100644 index 0000000000..36ce9d9439 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-05-11/index.html @@ -0,0 +1,79 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Meeting 1

+

(May,11,2023)

+

Attendees:

+ +

Discussion:

+
    +
  • Introductions of all the contributors and mentors.
  • +
  • The meeting time for the general meeting, as well as the project-specific meetings, were decided.
  • +
  • My project's weekly meeting time is Wednesday at 11:30 UTC (17:00 IST).
  • +
+

Meeting 2

+

(May,18,2023)

+

Attendees:

+ +

Discussion:

+
    +
  • I asked about extending my project's timeline to the one on the GSoC dashboard. Gaurav asked me to contact him, Shaheem or Anupam on Slack/Email about that.
  • +
  • Informed everyone about my final exams' schedule and the fact that I will not be able to do much work during that time. Everyone was very understanding.
  • +
  • I'll contact Kaushlendra by next week to have a meeting about the project.
  • +
  • I should contact my mentors regarding the dependencies that my project will use to ensure that there are no license conflicts.
  • +
+

Meeting 3

+

(May,25,2023)

+

Attendees:

+ +

Discussion:

+
    +
  • As I was studying for exams I wasn't able to do much in the week preceding the meeting.
  • +
  • Informed everyone that I'll be meeting with my mentors tomorrow to discuss my project in more detail.
  • +
  • Gaurav suggested watching the FOSSology workflow YouTube video to give us a better idea about how the tool works.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-05-31/index.html b/docs/2023/copyrights/updates/2023-05-31/index.html new file mode 100644 index 0000000000..6317239392 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-05-31/index.html @@ -0,0 +1,48 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

(May,31,2023)

+

Attendees:

+ +

Updates:

+

Discussion Topics

+
    +
  • We went over the proposal content and also delineated the feature timeline for the project.
  • +
+

Scheduling Consideration

+
    +
  • Considering my upcoming finals from the 28th of May to the 13th of June, the team decided that the first three weeks of the coding period will be dedicated to addressing minor issues with the previous project developed by Kaushlendra.
  • +
+

Dataset Creation

+
    +
  • Talked about the generation of a new dataset, with a primary focus on sourcing from a prominent open-source project - Fossology. We're also contemplating expanding the data sourcing to other significant open-source endeavors.
  • +
+

Model Recommendation

+ +

Conclusion and Further Plans:

+

Immediate Priorities

+
    +
  • The ensuing two weeks will see me making minor tweaks and improvements to Kaushlendra's initial false positive copyright project.
  • +
+

Post-exams Focus

+
    +
  • Once the exams conclude, I aim to delve deeper into understanding the LDA model, as suggested by Kaushlendra, and will also commence the dataset creation process.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-06-07/index.html b/docs/2023/copyrights/updates/2023-06-07/index.html new file mode 100644 index 0000000000..5dc731130a --- /dev/null +++ b/docs/2023/copyrights/updates/2023-06-07/index.html @@ -0,0 +1,43 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

(June,07,2023)

+

Attendees:

+ +

Updates:

+

Refactoring

+
    +
  • Conducted a refactor of some parts of the copyright code.
  • +
+

Discussion with Team

+
    +
  • Ayush and Kaushlendra provided feedback on my updates. We concluded that the refactored code might not comprehensively address all edge cases, warranting further modifications.
  • +
+

Learning

+
    +
  • Gaurav provided guidance on how to rebase a branch for squashing commits from the terminal—a valuable lesson after my struggles in the previous week.
  • +
+

Conclusion and Further Plans:

+

Incremental Refactoring

+
    +
  • I'll continue with the methodical refactoring of the copyright code, taking it step by step.
  • +
+

Post-exams Focus

+
    +
  • Once my exams conclude, my attention will shift to constructing the dataset. The main challenge lies in accurately determining the inherent copyright script within a given string. To tackle this, I anticipate leveraging Fossology in conjunction with various annotation tools.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-06-14/index.html b/docs/2023/copyrights/updates/2023-06-14/index.html new file mode 100644 index 0000000000..35c2bbaca6 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-06-14/index.html @@ -0,0 +1,39 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

(June,14,2023)

+

Attendees:

+ +

Updates:

+

Family Visit

+
    +
  • Unfortunately,I was away on a family visit and could not make it to the meeting.
  • +
+

Academics

+
    +
  • Completed my final examinations.
  • +
+

Conclusion and Further Plans:

+

Dataset Creation

+
    +
  • Over the upcoming weeks, my primary focus will be on formulating the dataset. The objective is to gather sufficient training and test data, paving the way to commence work on the machine learning model.
  • +
+

LDA Model

+
    +
  • In tandem, I'll undertake the implementation of the LDA (Latent Dirichlet Allocation) model, as recommended by Kaushl.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-06-21/index.html b/docs/2023/copyrights/updates/2023-06-21/index.html new file mode 100644 index 0000000000..27fea90e6c --- /dev/null +++ b/docs/2023/copyrights/updates/2023-06-21/index.html @@ -0,0 +1,60 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

(June,21,2023)

+

Attendees:

+ +

Updates:

+ +
    +
  • Initiated the process of curating a copyright dataset. Instead of manual procedures via the Fossology UI, automation was explored through the chat-gpt-3.5 API. A series of functions were designed to traverse directories, extract commented content in files, and forward that text along with a specific prompt to the chat-gpt API. This was meant to isolate any copyright content within. Though mostly successful, iterations were required for improvement. The related code is accessible here, and my findings are hosted here.
  • +
+

Methodology Challenge

+
    +
  • The aforementioned approach, albeit innovative, was rendered non-viable for the project due to the necessity of employing Fossology for the dataset creation, ensuring the rectification of its false positives.
  • +
+

Fossology API

+
    +
  • Acquired information about the existence of a Fossology API capable of extracting Fossology-generated copyright statements. This can be harnessed for dataset formulation.
  • +
+

LDA Model

+
    +
  • Executed a basic LDA (Latent Dirichlet Allocation) model centered around two topics - copyright and non-copyright. The results were promising, indicating pertinent associations. The respective code can be located here.
  • +
+

Problems and Solutions:

+

Problem 1

+
    +
  • The task of manually creating a dataset is monotonous, protracted, and susceptible to errors.
  • +
+

Solution 1

+
    +
  • Automated the task employing chatGPT. However, it necessitated meticulous prompt structuring to derive semi-reliable results.
  • +
+

Problem 2

+
    +
  • Uncertainty about file segments to forward to chatGPT for copyright extraction.
  • +
+

Solution 2

+
    +
  • Developed a function to solely capture commented lines from predominant extensions. In instances of its inadequacy, the entire file was dispatched to chatGPT, a measure which eventually proved counterproductive. Subsequent insights from Gaurav introduced me to Nirjas, a Python library under the Fossology project, already adept at this task.
  • +
+

Conclusion and Further Plans:

+

Dataset Creation

+
    +
  • Engage in the formulation of the dataset leveraging the Fossology API.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-06-28/index.html b/docs/2023/copyrights/updates/2023-06-28/index.html new file mode 100644 index 0000000000..0aae686cd9 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-06-28/index.html @@ -0,0 +1,33 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

(June,28,2023)

+

Attendees:

+

Updates:

+

Holiday Break

+
    +
  • This week's meeting was postponed due to the celebration of Eid al Adha, a prominent religious and public holiday in Egypt. With the consent of my mentors, the meeting was deferred.
  • +
+

Library Exploration

+
    +
  • I ventured into the exploration of libraries that Gaurav proposed in our last discussion. After trying the Fossology Python library, I gravitated towards using the Python requests library directly. The code employed for dataset creation can be accessed here. For utilization, it necessitates the upload of the software repository to Fossology via the user interface initially. Subsequently, my code aids in extracting copyrights, collating them in a CSV, and preserving them.
  • +
+

Dataset Clarification

+
    +
  • During the week, I concentrated on discerning the method to categorize the text yielded by the Fossology API into false positives or true positives.
  • +
+

Conclusion and Further Plans#

+

Dataset Clearing

+
    +
  • Aim to refine the dataset curated through various software repositories, inclusive of Fossology's repository. The intention is to present the outcomes to the mentors in the impending week.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-07-05/index.html b/docs/2023/copyrights/updates/2023-07-05/index.html new file mode 100644 index 0000000000..7802ae47ef --- /dev/null +++ b/docs/2023/copyrights/updates/2023-07-05/index.html @@ -0,0 +1,53 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

(July,05,2023)

+

Attendees:

+ +

Updates:

+

Mentor Feedback

+
    +
  • Presented my partially cleared dataset of copyrights to my mentors and sought clarification on ambiguous statements. The context in which a statement appears plays a crucial role in its interpretation.
  • +
+

Repository Clearing

+
    +
  • Completed the review of copyrights from the TensorFlow and Kubernetes repositories. The cleared copyrights from TensorFlow can be accessed here and those from Kubernetes are available here.
  • +
+

Scancodes Tool

+
    +
  • Anupam recommended using scancodes to first retrieve copyrights. The subsequent step would be to develop a script to compare copyrights discovered by scancodes with those identified by Fossology. The advantage of scancodes is its accuracy, even though it might not capture every copyright.
  • +
+

Cleared Copyrights List

+
    +
  • Gaurav indicated the possibility of obtaining a list of pre-cleared copyrights, although its preparation might necessitate some time.
  • +
+

Conclusion and Further Plans:

+

Scancodes Familiarization

+
    +
  • Delve into scancodes to understand the options pertinent to copyrights.
  • +
+

Script Development

+
    +
  • Develop a script to harness scancodes for retrieving copyrights.
  • +
  • Design a script that juxtaposes copyrights detected by scancodes with those by Fossology to assist in dataset clearing.
  • +
+

Dataset Labeling

+
    +
  • Persist in annotating the copyrights dataset.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-07-12/index.html b/docs/2023/copyrights/updates/2023-07-12/index.html new file mode 100644 index 0000000000..5446721e8b --- /dev/null +++ b/docs/2023/copyrights/updates/2023-07-12/index.html @@ -0,0 +1,44 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

(July,12,2023)

+

Attendees:

+ +

Updates:

+

Script Development

+
    +
  • Scancodes Library: Developed a script that utilizes the Scancodes library to extract copyrights from a directory. The script can be accessed here.
  • +
  • Comparison Script: Created a second script that contrasts the copyrights identified by the Scancodes library with those identified by Fossology. This script can be found here.
  • +
+

Scancodes Library Observations

+
    +
  • Notably, the Scancodes library does not extract the copyright text verbatim from its source file. Instead, it identifies copyrights and then reconstructs them based on internal grammar rules. This necessitated modifications in the comparison code, such as converting the copyright symbol © to variants like (c), (C), and the word "copyright" followed by (c). Further examples are provided in the second gist.
  • +
+

Fossology Repository

+
    +
  • Almost concluded the review of copyrights in the Fossology repository. These copyrights are diverse and demanded heightened scrutiny compared to other repositories.
  • +
+

Conclusion and Further Plans:

+

Fossology Repository

+
    +
  • Conclude the review of copyrights.
  • +
+

Next Steps

+
    +
  • Transition to the task of copyright classification.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-07-19/index.html b/docs/2023/copyrights/updates/2023-07-19/index.html new file mode 100644 index 0000000000..f62fdcfbac --- /dev/null +++ b/docs/2023/copyrights/updates/2023-07-19/index.html @@ -0,0 +1,76 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

(July,19,2023)

+

Attendees:

+ +

Updates:

+

Fossology Dataset Cleaning

+
    +
  • The Fossology dataset is now cleared. The clearing results showcase: +
      +
    • Green: Copyright
    • +
    • Red: False positive
    • +
    • Orange: Unsure (consulted mentors)
    • +
    • Blue: Non-English texts
    • +
    • Gray: Invalid copyrights (e.g., Copyright (c) _____).
    • +
    +
  • +
  • The final dataset comprises ~20,000 unique strings. Approximately 75% are true copyright notices, and the rest are false positives. This is reduced from an initial ~43,000 rows in the original Fossology dataset.
  • +
+ +
    +
  • The code is available here. Key findings include: +
      +
    • +

      For classical machine learning techniques, SVMs, random forests, and Naive Bayes classifiers were assessed. Random forest outperformed the others.

      +
    • +
    • +

      The results of the random forest model are as follows:

      +

      Fossology Dataset (Test Set)

      +
      |               | precision | recall | f1-score | support |
      |---------------|-----------|--------|----------|---------|
      | 0 | 0.99 | 0.98 | 0.99 | 2870 |
      | 1 | 0.95 | 0.97 | 0.96 | 1024 |
      +

      Tensorflow Dataset

      +
      |               | precision | recall | f1-score | support |
      |---------------|-----------|--------|----------|---------|
      | 0 | 1.00 | 0.98 | 0.99 | 14865 |
      | 1 | 0.88 | 0.99 | 0.93 | 1632 |
      +

      Kubernetes Dataset

      +
      |               | precision | recall | f1-score | support |
      |---------------|-----------|--------|----------|---------|
      | 0 | 1.00 | 1.00 | 1.00 | 25786 |
      | 1 | 0.87 | 1.00 | 0.93 | 156 |
      +
    • +
    +
  • +
+

Model Performance and Future Directions

+
    +
  • After discussions with mentors Kaushl and Gaurav, it was decided that recall should be prioritized. While DistilBert was explored, its performance was suboptimal compared to random forests. De-cluttering will likely be approached via Named Entity Recognition (NER). Additionally, Gaurav provided a new dataset of 10,000 copyrights, available here, that will need minor editing before use.
  • +
+

Dataset Creation Problems and Solutions

+

Problem 1:

+

Creating a dataset manually is repetitive, time-consuming, and error-prone. Especially with over 20,000 unique rows filled with code and potential copyrights, mislabeling is easy.

+

Solution 1:

+

In Google Sheets, conditional formatting rules were implemented to color each row based on its label. This visual cue greatly assisted in the labeling process, speeding up the workflow, and reducing potential errors.

+

Conclusion and Further Plans:

+

Exploration

+
    +
  • Delve deeper into various classifiers and text vectorization methods.
  • +
+

Deep Learning

+
    +
  • Analyze the efficiency of deep learning models in contrast to traditional machine learning models.
  • +
+

Generalization

+
    +
  • Ensure all techniques employed perform robustly and generalize well to unseen data.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-07-26/index.html b/docs/2023/copyrights/updates/2023-07-26/index.html new file mode 100644 index 0000000000..08773ee014 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-07-26/index.html @@ -0,0 +1,82 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

(July,26,2023)

+

Attendees:

+ +

Updates:

+

SVM Testing on Vectorization Algorithms and Pre-trained Word Embeddings

+
    +
  • Vectorizers and Embeddings Tested: +
      +
    • Bag of Words (BoW)
    • +
    • Term Frequency - Inverse Document Frequency (TF-IDF)
    • +
    • GloVe (averaging word vectors for each sentence)
    • +
    • FastText
    • +
    • Sentence Transformers
    • +
    • Word2Vec
    • +
    +
  • +
+

Results from Vectorization and Embeddings

+
    +
  • BoW and TF-IDF yielded the most promising results both in terms of accuracy.
  • +
  • GloVe embeddings were tested across four dimensions: 50, 100, 200, and 300. The best-performing 300-dimensional embeddings still underperformed TF-IDF by around 4% for both classes 0 and 1.
  • +
  • FastText's pre-trained embeddings (sourced from Wikipedia) were larger than 7GB, making it impractical to load them. Hence, I decided to train the embedder from scratch using our dataset, resulting in slightly inferior performance than FastText.
  • +
  • Other embedders lagged even further in performance.
  • +
+

TF-IDF Model Performance

+
Precision
| | 0 | 1 |
|:-----|---------:|---------:|
| 0 | 0.991262 | 0.967086 |
| 1 | 0.97284 | 0.703488 |
| 2 | 0.945312 | 0.892562 |
| 3 | 0.991701 | 0.911765 |
| 4 | 0.995004 | 0.974809 |
| Mean | 0.979224 | 0.889942 |

Recall
| | 0 | 1 |
|:-----|---------:|---------:|
| 0 | 0.988153 | 0.975586 |
| 1 | 0.885393 | 0.916667 |
| 2 | 0.902985 | 0.93913 |
| 3 | 0.980312 | 0.96124 |
| 4 | 0.990982 | 0.985943 |
| Mean | 0.949565 | 0.955713 |

F1-score
| | 0 | 1 |
|:-----|---------:|---------:|
| 0 | 0.989705 | 0.971317 |
| 1 | 0.927059 | 0.796053 |
| 2 | 0.923664 | 0.915254 |
| 3 | 0.985974 | 0.935849 |
| 4 | 0.992989 | 0.980344 |
| Mean | 0.963878 | 0.919764 |
+

Datasets Explained

+
    +
  • 0 corresponds to the test dataset (20% of the Fossology dataset), with training performed on the remaining 80%.
  • +
  • 1 represents the Kubernetes dataset.
  • +
  • 2 stands for the Tensorflow dataset.
  • +
  • 3 is identified as the Fossology-provided-dataset-1.
  • +
  • 4 comprises a merged set of all aforementioned datasets, including the training data.
  • +
+

Why TF-IDF and BoW Outperformed

+
    +
  1. The dataset size may not be large enough to realize the benefits of more advanced embeddings.
  2. +
  3. Copyright classification differs from conventional text classification due to the presence of code snippets and other unique features.
  4. +
  5. The absence of text preprocessing in the current iteration might be a limiting factor.
  6. +
+

SVM's predict_proba method

+
    +
  • Discussions with Anupam led to a consensus on continuing the tests using SVM, leveraging its predict_proba method. This technique provides the probability associated with each SVM prediction, offering insight into the model's confidence. A threshold can be set on this confidence factor to potentially enhance recall, even if it results in reduced precision.
  • +
+

Problems and Solutions

+

Problem 1

+
    +
  • Classification reports were overly verbose, consuming excess space, and included redundant information.
  • +
+

Solution 1

+
    +
  • Developed a function to streamline reports for each dataset, displaying precision up to more than two decimal places.
  • +
  • This function computes the average precision, recall, and F1-scores, providing a comprehensive yet concise view of model performance across datasets, irrespective of their sizes.
  • +
+

Conclusion and Further Plans:

+

Text Preprocessing

+
    +
  • Aim to evaluate the efficacy of each vectorization method post-text preprocessing.
  • +
+

predict_proba SVM method

+
    +
  • Assess the performance of the predict_proba method within the SVM framework.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-08-02/index.html b/docs/2023/copyrights/updates/2023-08-02/index.html new file mode 100644 index 0000000000..43c91c72fb --- /dev/null +++ b/docs/2023/copyrights/updates/2023-08-02/index.html @@ -0,0 +1,96 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

(August,02,2023)

+

Attendees:

+ +

Updates:

+

Preprocessing Function Creation

+
    +
  • I devised a preprocessing function to test different text manipulations: +
      +
    • Convert all text to lowercase.
    • +
    • Replace (c), (C), and © with COPYRIGHT_SYMBOL.
    • +
    • Tokenize text using the word_tokenize function from the NLTK library.
    • +
    • Remove punctuation.
    • +
    • Exclude stopwords.
    • +
    • Lemmatize the text.
    • +
    • Experiment with various combinations of the above steps.
    • +
    +
  • +
+

Vectorization Methods

+
    +
  • Results using TF-IDF outperformed those from Bag-of-Words (BoW).
  • +
  • While the GloVe embeddings led to a 1-2% improvement, they still lagged behind TF-IDF.
  • +
  • FastText yielded a modest performance boost compared to GloVe but remained suboptimal.
  • +
+

Hyperparameter Tuning

+
    +
  • Despite manually fine-tuning the parameters, I also tried applying GridSearch on the SVM and FastText parameters. Due to the combinatorial explosion in parameter space, it wasn't feasible.
  • +
+

Confidence Thresholding with predict_proba

+
    +
  • I tested various confidence thresholds (0.999, 0.99, 0.95) and determined that 0.99 was generally the most optimal.
  • +
+

Model Performance Without Threshold

+
    +
  • Number of misclassifications in class 0: 145 out of 16079 (approx. 0.9% misclassified)
  • +
  • Number of misclassifications in class 1: 81 out of 5691 (approx. 1.42% misclassified)
  • +
+

Performance with 0.999 Threshold

+
    +
  • Number of misclassifications in class 0: 6 out of 16079 (approx. 0.04% misclassified)
  • +
  • Number of misclassifications in class 1: 4072 out of 5691 (approx. 71.55% misclassified)
  • +
+

Performance with 0.99 Threshold

+
    +
  • Number of misclassifications in class 0: 27 out of 16079 (approx. 0.17% misclassified)
  • +
  • Number of misclassifications in class 1: 721 out of 5691 (approx. 12.67% misclassified)
  • +
+

Performance with 0.95 Threshol

+
    +
  • Number of misclassifications in class 0: 41 out of 16079 (approx. 0.25% misclassified)
  • +
  • Number of misclassifications in class 1: 387 out of 5691 (approx. 6.8% misclassified)
  • +
+

Choice of Threshold

+
    +
  • Ultimately, we settled on the 0.99 threshold. By further enhancing model performance, we aim to reduce the error rate to around or below 0.1%, which equates to roughly 1 misclassification per 1000 actual copyrights.
  • +
+

Conclusion and Further Plans:

+

TF-IDF Performance

+
    +
  • Focus on amplifying the TF-IDF's effectiveness: +
      +
    • Exploration of varying TF-IDF parameters holds promise for potential enhancements.
    • +
    • Refinement opportunities exist within the preprocessing function, tailored to our copyright classification objectives.
    • +
    +
  • +
+

RNN Model Exploration

+
    +
  • Intend to assess the performance of an RNN model combined with the improved preprocessing function.
  • +
+

GitHub Repository

+
    +
  • Transition from using gists to a full-fledged GitHub repository for enhanced documentation.
  • +
+

Language Detection

+
    +
  • Work on devising a language detection mechanism to address rows in languages other than English, aiming to further optimize classification.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-08-09/index.html b/docs/2023/copyrights/updates/2023-08-09/index.html new file mode 100644 index 0000000000..88facb40ff --- /dev/null +++ b/docs/2023/copyrights/updates/2023-08-09/index.html @@ -0,0 +1,139 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

(August,09,2023)

+

Attendees:

+ +

Updates:

+

Datasets & Findings:

+
    +
  • +

    Dataset Corrections: This week commenced with a detailed inspection of datasets which led to the rectification of various errors. The corrected datasets and predictions from the current model have been updated in this spreadsheet.

    +
  • +
  • +

    Inconsistencies Addressed: I found that the treatment of separate language rows varied across datasets. To maintain consistency, all such records have been treated as copyrights, requiring manual intervention later.

    +
  • +
  • +

    Annotating Mistakes: Through model predictions, I detected errors in dataset annotations. These errors have been fixed and the updates can be found in the aforementioned spreadsheet.

    +
  • +
  • +

    Dataset Merging: Given the presence of different languages across datasets, I decided to consolidate all datasets for training, setting aside 20% for testing. The new dataset comprises:

    +
      +
    • Class 0 (copyrights): 75.22% (16377 rows)
    • +
    • Class 1: 24.77% (5393 rows)
    • +
    • Total rows: 21770
    • +
    +
  • +
  • +

    Additional Dataset: Gaurav has provided an additional dataset comprising 26188 unique rows. I've yet to label this dataset.

    +
  • +
+

Model Performance:

+
    +
  • +

    TF-IDF Vectorizer: The model achieved significant results using the TF-IDF vectorizer, without additional preprocessing:

    +
      +
    • Class 0 misclassifications: 0.32% (52 out of 16377)
    • +
    • Class 1 misclassifications: 0.61% (33 out of 5393)
    • +
    +
  • +
  • +

    Preprocessing Enhancements: I devised a preprocessing function which improved the model's performance. These enhancements include replacing digits, copyright symbols, emails, and more. This approach reduced the misclassifications:

    +
      +
    • Class 0: 0.26% (43 out of 16377)
    • +
    • Class 1: 0.82% (44 out of 5393)
    • +
    +
  • +
  • +

    TF-IDF Parameter Tweaking: Further fine-tuning of TF-IDF parameters allowed the model to achieve:

    +
      +
    • Class 0 misclassifications: 0.16% (27 out of 16377)
    • +
    • Class 1 misclassifications: 0.54% (29 out of 5393)
    • +
    +
  • +
  • +

    Thresholding at 0.99: Applying a threshold of 0.99 rendered impressive results:

    +
      +
    • Class 0 misclassifications: 0.03% (5 out of 16377)
    • +
    • Class 1 misclassifications: 4.6% (248 out of 5393)
    • +
    +
  • +
+

External Datasets Testing:

+
    +
  • +

    Fossology-provided-2 dataset: Initial results on this dataset indicated:

    +
      +
    • Class 0 misclassifications: 0.46% (27 out of 5808)
    • +
    • However, after manual inspection, only 12 were genuine misclassifications.
    • +
    +
  • +
  • +

    Dataset from Paper: I tested the model on the dataset from this paper. The results were:

    +
      +
    • Class 0 misclassifications: 0.09% (2 out of 2146)
    • +
    • Class 1 misclassifications: 1.32% (2 out of 151)
    • +
    • Notably, the two misclassifications in class 1 were found to be correctly predicted by our model.
    • +
    +
  • +
+

Feature Extraction & LDA:

+
    +
  • +

    Feature Extraction from Paper: Implementing the paper's feature extraction method yielded the following results:

    +
      +
    • Class 0 misclassifications: 2.91% (477 out of 16377)
    • +
    • Class 1 misclassifications: 6.93% (374 out of 5393)
    • +
    +
  • +
  • +

    LDA Analysis: Leveraging LDA, I identified the 20 most frequent words in each class, offering insights for potential feature extraction enhancements.

    +
  • +
+

Language Detection:

+
    +
  • +

    cld3 Limitation: Although cld3 proved efficient, its Apache License 2.0 is incompatible with Fossology's GNU General Public License v2.0.

    +
  • +
  • +

    spaCy's Model: Despite utilizing spaCy's language detection model, many English rows were misclassified as non-English and vice versa.

    +
  • +
+

GitHub Repository:

+ +

Conclusion & Future Plans:

+

Language Detection

+
    +
  • Investigate more efficient language detection methods.
  • +
+

Preprocessing Improvements

+
    +
  • Enhance preprocessing by using NER for name and organization replacements.
  • +
+

Feature Extraction

+
    +
  • Delve deeper into feature extraction techniques.
  • +
+

Documentation

+
    +
  • Cleanup my documentation
  • +
  • Cleanup and update my GitHub repository.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-08-16/index.html b/docs/2023/copyrights/updates/2023-08-16/index.html new file mode 100644 index 0000000000..ebdebe2190 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-08-16/index.html @@ -0,0 +1,69 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + +

Week 12

(August,16,2023)

+

Attendees:

+ +

Updates:

+

1. Embedding Methods Testing:

+
    +
  • Started the week by testing the performance of different embedding methods in conjunction with my new preprocessing function.
  • +
  • Using GloVe, achieved an accuracy with around 1.24% misclassified copyrights and 1.95% misclassified false positives.
  • +
  • Despite variations in preprocessing parameters, GloVe's performance lagged considerably behind the best model I've developed using TF-IDF — almost a tenfold difference.
  • +
+

2. GloVe Embedding Analysis:

+
    +
  • Conducted an analysis to determine the proportion of words in the datasets recognized by GloVe: +
      +
    • Embeddings found for 60.68% of vocab
    • +
    • Embeddings found for 91.12% of all text
    • +
    +
  • +
  • Given that copyrights predominantly contain elements like names, dates, and organizations, the subpar performance of GloVe — not specifically trained on this data — in comparison to TF-IDF became clearer.
  • +
+

3. FastText Experiments:

+
    +
  • Experimental trials with FastText embeddings did not lead to significant performance improvements, even with different preprocessing.
  • +
+

4. Performance Benchmarks:

+
    +
  • Current best performance indicates 0.16% misclassifications for copyrights and 0.48% for false positive misclassifications.
  • +
  • These numbers can be reduced further to 0.04% and 3.17%, respectively, by applying a stricter confidence threshold of 0.99.
  • +
+

5. Exploratory Testing of NER Models:

+
    +
  • Initiated testing of Named Entity Recognition (NER) models to potentially replace the copyright holder entity.
  • +
  • Due to recurring mentions of numerous copyright holders across different files and dataset rows, there's a concern about the model's generalization capability. The idea is to use NER to replace these mentions with generic tags for persons and organizations.
  • +
+

6. Trials with Compact spaCy Model:

+
    +
  • Conducted initial tests with the compact spaCy English model due to space limitations.
  • +
  • Preliminary results were not very promising: +
      +
    • ] ] copyrightsymbol ] date [siemens (ORG) ag
    • +
    • ] ] copyrightsymbol ] date [siemens (ORG) ag ] author [gaurav (PERSON) mishra ] email
    • +
    • ] copyright ] copyrightsymbol ] date ] date [free (ORG) software foundation inc franklin street [fifth (ORDINAL) ] floor [boston (ORG) ma date date ] usa
    • +
    +
  • +
  • The model could recognize some entities, but significant refinement is needed to improve its reliability in detecting PERSON and ORG entities.
  • +
+

Conclusion and Future Plans:

+

NER Model Exploration

+
    +
  • Plan to explore other pretrained NER models that might be suitable for the task at hand.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-08-23/index.html b/docs/2023/copyrights/updates/2023-08-23/index.html new file mode 100644 index 0000000000..c02eda3a6e --- /dev/null +++ b/docs/2023/copyrights/updates/2023-08-23/index.html @@ -0,0 +1,76 @@ + + + + + +Week 13 | GSoC projects at FOSSology + + + + + +

Week 13

(August,23,2023)

+

Attendees:

+ +

Updates:

+

1. Exploring Potential NER Models:

+
    +
  • Explored various NER models suitable for integration into Fossology, focusing on those with a size limit of around 40 megabytes.
  • +
  • Narrowed down the selection based on the size constraint.
  • +
+

2. License Compatibility & Model Selection:

+
    +
  • Many potential models were excluded due to incompatible licenses with Fossology's GNU General Public License v2.0.
  • +
  • Identified BERT variants, specifically "tiny BERT" (around 18 megabytes) and "Mobile BERT," as feasible options.
  • +
  • Discovered a pretrained tiny BERT model on the conll2003 dataset. However, the model had no associated license.
  • +
+

3. Testing the Tiny BERT Model:

+
    +
  • Tested the model provisionally, assuming that if it performed well, I could train a similar one from scratch.
  • +
  • Model's primary classification targets were organizations and persons.
  • +
  • Sample performance indicators: +
      +
    • copyright (c) date, date hewlett - packard development company, l. p
    • +
    • copyright (c) date - date, date siemens ag
    • +
    • copyright (c) date siemens ag author: daniele fognini
    • +
    • copyright (c) date siemens ag author: j. najjar
    • +
    • copyright (c) date, date siemens ag author: daniele fognini, anupam. ghosh@siemens.com
    • +
    +
  • +
  • Perceived performance of the tiny BERT model seemed superior to the SpaCy model, though enhanced entity visualization might have influenced this perception.
  • +
+

4. Integration and Preprocessing Considerations:

+
    +
  • Pondered on how to best integrate the model into my preprocessing function.
  • +
  • Experimented with various entity replacement strategies: +
      +
    • Replacing person entities with PERSON offered a minor performance boost.
    • +
    • Substituting organization entities with ORG slightly degraded performance.
    • +
    • Employing both replacements was still suboptimal compared to the initial approach.
    • +
    +
  • +
  • These results suggest that as NER performance improves, the model will rely more on contextual cues than mere memorization of copyright holder names and organizations.
  • +
+

5. Language Detection Model:

+
    +
  • Identified a promising language detection model developed by Facebook.
  • +
+

Conclusion and further plans:

+

1. Training a Custom Tiny BERT Model

+
    +
  • Initiate training of a custom 'tiny BERT' model from scratch. This is to address potential licensing concerns with existing pre-trained models.
  • +
  • Exploration of Modern NER Datasets
  • +
  • Train the model on these newly discovered datasets for better performance.
  • +
+

2. Domain-Specific Dataset Training

+
    +
  • Investigate the feasibility of creating a domain-specific dataset for our project.
  • +
  • This would involve labeling a subset of the current copyrights dataset.
  • +
  • Fine-tune or train the model on this specialized dataset to enhance its relevance and accuracy for our application.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-08-30/index.html b/docs/2023/copyrights/updates/2023-08-30/index.html new file mode 100644 index 0000000000..ec302e74b3 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-08-30/index.html @@ -0,0 +1,70 @@ + + + + + +Week 14 | GSoC projects at FOSSology + + + + + +

Week 14

(August,30,2023)

+

Attendees:

+ +

Updates:

+

1. Revisiting SpaCy NER:

+
    +
  • Opted to retest the SpaCy NER for several reasons: +
      +
    • Earlier attempts lacked proper visualization, making it hard to assess performance on my dataset.
    • +
    • Training a SpaCy model is simplified with well-documented commands: +
        +
      • Dataset Labeling: This is a time-intensive step. I utilized visual annotation tools like doccano.
      • +
      • Data Transformation: Converting datasets into a SpaCy-compatible format is straightforward.
      • +
      +
    • +
    • Encountered difficulties while coding for the tiny BERT model training.
    • +
    +
  • +
+

2. Insights on SpaCy's NER Model:

+
    +
  • SpaCy's NER model is trained on the OntoNotes 5 dataset. This dataset, released in late 2013, features 18 entities in contrast to the four in the conll2003 dataset.
  • +
+

3. SpaCy vs. Tiny BERT:

+
    +
  • For a fair comparison, I trained the SpaCy model from scratch on the conll2003 dataset: +
      +
    • Tiny BERT achieved an F1 score of 0.8177, while SpaCy reached 0.8182 — nearly identical performance.
    • +
    • NER entity visualization in SpaCy is straightforward via the displacy module.
    • +
    • Chose SpaCy due to its ease of use, training, visualization, and a smaller model size compared to tiny BERT.
    • +
    +
  • +
+

4. Refining Entity Recognition:

+
    +
  • Realized that distinguishing between PER and ORG entities was non-essential. My primary goal is identifying copyright holder entities. Decided to merge them for future training.
  • +
+

5. Labeling and Fine-tuning:

+
    +
  • Labeled 750 examples from my dataset using doccano.
  • +
  • Fine-tuned the SpaCy model trained on conll2003 with this data.
  • +
+

6. Process Optimization:

+
    +
  • Continually working to enhance the process. Will present NER labeled sentences in the coming update.
  • +
+

Conclusion and Future Plans:

+

1. Enhancing the NER Labeling and Training:

+
    +
  • Merge the PER and ORG entities from the conll2003 dataset during training and ignore the other entities as they're not relevant to my goals.
  • +
  • Increase the labeled samples from the copyrights dataset to generate a more extensive dataset for training and refinement.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-09-06/index.html b/docs/2023/copyrights/updates/2023-09-06/index.html new file mode 100644 index 0000000000..2ee80ddacd --- /dev/null +++ b/docs/2023/copyrights/updates/2023-09-06/index.html @@ -0,0 +1,31 @@ + + + + + +Week 15 | GSoC projects at FOSSology + + + + + +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-09-13/index.html b/docs/2023/copyrights/updates/2023-09-13/index.html new file mode 100644 index 0000000000..d468072b7a --- /dev/null +++ b/docs/2023/copyrights/updates/2023-09-13/index.html @@ -0,0 +1,66 @@ + + + + + +Week 16 | GSoC projects at FOSSology + + + + + +

Week 16

(September,13,2023)

+

Attendees:

+ +

Updates:

+

1. Dataset Cleanup:

+
    +
  • Initiated code to clean the conll2003 dataset as mentioned in week 14: +
      +
    • Merged PER and ORG entities.
    • +
    • Discarded LOC and MISC entities since they are not pertinent to my requirements.
    • +
    +
  • +
+

2. Fine-tuning and Testing:

+
    +
  • Conducted another round of fine-tuning using 750 examples from my dataset and assessed the NER model's performance within my preprocessing function. +
      +
    • Noticed a slight dip in performance due to obfuscation of repetitive copyright holder names in the dataset.
    • +
    +
  • +
  • Labeled an additional 750 examples, totaling slightly over 1500, and fine-tuned the primary model with this data. +
      +
    • The model, while proficient, occasionally mislabeled non-copyright sentences as ENT (the copyright holder entity), potentially increasing false positives.
    • +
    • Below are some detection results using the dataset from the feature extraction paper to test on unseen examples (detected entities are highlighted): +
        +
      1. Copyright (C) 2017 DENX Software Engineering
      2. +
      3. Copyright (C) IBM Corporation 2016
      4. +
      5. Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
      6. +
      7. Copyright (c) 2009, Microsoft Corporation.
      8. +
      9. Copyright (C) ST-Ericsson 2010 - 2013 (Entity missed)
      10. +
      11. Copyright (c) 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>, Pengutronix
      12. +
      13. Copyright 2008 GE Intelligent Platforms Embedded Systems, Inc.
      14. +
      +
    • +
    • The model detected the majority of entities, missing less than 5%.
    • +
    • Adopted semi-supervised training by using the preceding model to label the entire dataset and trained on it. This refined model, now in use, missed under 1% of the copyright holder entities in the same test set.
    • +
    +
  • +
+

Conclusion and Future Plans:

+

1. Fossology Integration:

+
    +
  • Aim to integrate the false positive copyright detection code into Fossology.
  • +
+

2. Decluttering Process:

+
    +
  • Initiate the decluttering procedure, which will bear similarities to the copyright holder entity detection process.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-09-20/index.html b/docs/2023/copyrights/updates/2023-09-20/index.html new file mode 100644 index 0000000000..f3193c331c --- /dev/null +++ b/docs/2023/copyrights/updates/2023-09-20/index.html @@ -0,0 +1,57 @@ + + + + + +Week 17 | GSoC projects at FOSSology + + + + + +

Week 17

(September,20,2023)

+

Attendees:

+ +

Updates:

+

1. PyPi Package Development:

+
    +
  • Initiated the creation of a PyPi package to encapsulate the false positive detection model, geared towards integration with Fossology.
  • +
+

2. Package Naming:

+
    +
  • The package has been tentatively named copyrightfpd, which stands for Copyright False Positive Detection.
  • +
+

3. Model Inclusion Challenges:

+
    +
  • Faced difficulties incorporating the models into the package. Leveraged resources on Stack Overflow and Google to overcome these challenges and successfully crafted the package.
  • +
+

4. Package Availability:

+
    +
  • The package is now available here.
  • +
+

5. Training and Testing Scripts:

+
    +
  • Began developing training and testing scripts for prospective use by Fossology. This is a work in progress.
  • +
+

6. Fossology Integration:

+
    +
  • Started the process to embed the model within Fossology. While the package was successfully added to Fossology's Python dependencies, activation of the false positive detection features posed challenges. Collaborative debugging efforts with Kaushlendra during our weekly meeting did not completely resolve the issue.
  • +
+

Conclusion and Future Plans:

+

1. copyrightfpd Integration:

+
    +
  • Intend to continue refining the integration of the copyrightfpd package into Fossology.
  • +
+

2. Script Finalization:

+
    +
  • Aim to finalize the training and testing scripts.
  • +
+ +
    +
  • Upon successful integration of the false positive detection into Fossology, the next goal is to focus on decluttering copyrights.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-09-27/index.html b/docs/2023/copyrights/updates/2023-09-27/index.html new file mode 100644 index 0000000000..0c8993dc4a --- /dev/null +++ b/docs/2023/copyrights/updates/2023-09-27/index.html @@ -0,0 +1,53 @@ + + + + + +Week 18 | GSoC projects at FOSSology + + + + + +

Week 18

(September,27,2023)

+

Attendees:

+ +

Updates:

+

1. Decluttering Strategies:

+
    +
  • I have considered two distinct strategies for decluttering using NER (Named Entity Recognition): +
      +
    • Simpler Approach: Identifying the entire copyright as a single entity.
    • +
    • Detailed Labeling: Recognizing and labeling individual components within the copyright. This includes symbols like (c), (C), and ©, the term copyright, the copyright holder's name, the year/date, among other constituents. Although this method requires more extensive labeling, it promises potential benefits in accuracy and granularity.
    • +
    +
  • +
  • I opted for the simpler approach and proceeded with manually labeling 600 instances via doccano. Subsequently, a rudimentary spaCy model was trained on this labeled data.
  • +
+

2. Model Testing:

+
    +
  • Here are some samples tested with the developed model, where the highlighted parts denote detected copyrights: +
      +
    1. Copyright (c) 1997-2000 PHP Development Team (See Credits file) |\n"); ibase_blob_add($bl_h, "+----------------------------------------------------------------------+\n"); ibase_blob_add($bl_h, "| This program is free software; you can redistribute it and/or modify |\n"); ibase_blob_add($bl_h,
    2. +
    3. copyright 1996 by SPI
    4. +
    5. Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details
    6. +
    7. Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without
    8. +
    9. Copyright 2004-2018 H2 Group. Multiple-Licensed under the MPL 2.0, and the EPL 1.0 (http://h2database.com/html/license.html). Initial Developer: H2 Group
    10. +
    +
  • +
  • Overall, the model displays adeptness in detecting the copyrights and filtering out the clutter, with some notable exceptions, like the fifth example.
  • +
+

3. Integration Efforts:

+
    +
  • With Gaurav's assistance during our recent meeting, we managed to pinpoint some integration issues. After overcoming them, the integrated feature was activated, although it ran at a significantly diminished speed. The reason for this reduced efficiency is yet to be determined.
  • +
+

Conclusion and Further Plans:

+

1. Model Enhancement:

+
    +
  • The immediate plan is to supplement our dataset with additional labeled data points. With this augmented dataset, the aim is to further improve and refine the declutter model.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-10-04/index.html b/docs/2023/copyrights/updates/2023-10-04/index.html new file mode 100644 index 0000000000..f548f7a16c --- /dev/null +++ b/docs/2023/copyrights/updates/2023-10-04/index.html @@ -0,0 +1,86 @@ + + + + + +Week 19 | GSoC projects at FOSSology + + + + + +

Week 19

(October,04,2023)

+

Attendees:

+ +

Updates:

+

1. Integration of copyrightfpd into Fossology:

+
    +
  • Resolved speed issues from the previous week.
  • +
  • Evaluated the model's performance on open-source projects from GitHub: +
      +
    • Ansible: +
        +
      • Initial count: 510 copyrights.
      • +
      • After false positive removal: 435.
      • +
      • Notable overlooked false positives: +
          +
        • © b=eñyei',
        • +
        • (c) for c in cmd))
        • +
        • (c) for c in cmd), verbosity=1)
        • +
        • © error',
        • +
        +
      • +
      +
    • +
    • Linux: +
        +
      • Initial count: 23,419 copyrights.
      • +
      • After false positive removal: 22,780.
      • +
      • Sample of overlooked errors: +
          +
        • copyright/by:
        • +
        • (c) | Contending |
        • +
        • (c) container_of(c, struct wf_lm75_sensor, sens)
        • +
        • (C) clock] */ clock-frequency = <12288000>; pwms = <&tpu 0 81 0>;
        • +
        • (C) clock]
        • +
        • (c) (c->hva_dev->dev)
        • +
        +
      • +
      +
    • +
    +
  • +
+

2. Enhancements in Decluttering using NER:

+
    +
  • Expanded labeled dataset for better NER performance.
  • +
  • Integrated decluttering functionality into copyrightfpd and Fossology. Encountered minor integration issues which are currently under investigation.
  • +
  • Showcase of decluttering performance (highlighted parts are recognized copyright material): +
      +
    1. Copyright (c) InQuant GmbH Stefan Eletzhofer <stefan.eletzhofer@inquant.de>
    2. +
    3. Copyright (c) 2001 Bill Bumgarner <bbum@friday.com> License: MIT, see below.
    4. +
    5. Copyright (C) 2001 Python Software Foundation, www.python.org Taken from Python2.2, License: PSF - see below.
    6. +
    7. Copyright (C) 2001 Python Software Foundation , www.python.org Taken from Python2.2, License: PSF - see below.
    8. +
    9. copyright, i.e., " Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation ; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.
    10. +
    +
  • +
+

Conclusion and Next Steps:

+

1. Renaming Task Rebrand

+
    +
  • copyrightfpd to be more reflective of its Fossology integration.
  • +
+

2. Documentation

+
    +
  • Focus on updating and improving GSoC documentation.
  • +
+

3. Code Organization

+
    +
  • Document and structure the scattered code across Python notebooks for future readability and exploration.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-10-11/index.html b/docs/2023/copyrights/updates/2023-10-11/index.html new file mode 100644 index 0000000000..a8c51def2d --- /dev/null +++ b/docs/2023/copyrights/updates/2023-10-11/index.html @@ -0,0 +1,49 @@ + + + + + +Week 20 | GSoC projects at FOSSology + + + + + +

Week 20

(October,11,2023)

+

Attendees:

+ +

Updates:

+

1. Resolution of Integration Issues:

+
    +
  • After Gaurav's timely intervention, we got the decluttering integration issues sorted out. He pointed out the exact changes needed in the PHP code and even provided the code snippets to fix the problem.
  • +
+

2. Weekly Documentation:

+
    +
  • This week, I pivoted towards updating the documentation, a task that had been relegated to the backburner in the preceding weeks.
  • +
+

3. Decluttering Performance:

+
    +
  • With the decluttering component now integrated and debugged, I delved into a thorough discussion with Gaurav regarding its performance. While the current results are promising, there's significant room for improvement. +
      +
    • The primary challenge lies in the intricate nuances and variations of clutter present in different repositories. If our model fails to recognize a particular pattern, it subsequently overlooks similar patterns across multiple instances.
    • +
    • A case in point is a recurrent copyright missed in the Ansible repository: +
        +
      • Copyright 2019 Ansible Project GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
      • +
      +
    • +
    • This pattern, accompanied by the GNU license text, manifested in several variants. Since our model couldn't identify this particular instance, it consistently missed out on similar patterns throughout.
    • +
    +
  • +
+

Conclusion and Further Plans:

+

1. Enrich the labeled dataset

+
    +
  • By introducing a diverse range of examples, I hope to enhance the model's ability to generalize more effectively across varied inputs. This step is critical to elevating the decluttering model's accuracy and adaptability in real-world scenarios.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-10-18/index.html b/docs/2023/copyrights/updates/2023-10-18/index.html new file mode 100644 index 0000000000..346edb8c57 --- /dev/null +++ b/docs/2023/copyrights/updates/2023-10-18/index.html @@ -0,0 +1,85 @@ + + + + + +Week 21 | GSoC projects at FOSSology + + + + + +

Week 21

(October,18,2023)

+

Attendees:

+ +

Updates:

+

1. Re-evaluation of the Existing Model:

+
    +
  • Upon a thorough review of the previously developed decluttering model, I identified a significant issue in the approach I adopted. Specifically, the semi-supervised learning technique utilized earlier had not been applied with adequate scrutiny to the dataset. As a result, the dataset contained an excessive number of inaccurately labeled examples, adversely affecting the model's performance.
  • +
+

2. Data Labeling and Refinement:

+
    +
  • To rectify the identified discrepancies, I undertook the task of labeling a new dataset comprising 4,000 diverse examples. This process was assisted by the model to ensure the accuracy of labels. The objective was to establish a robust dataset, devoid of labeling errors, which could be reliably used to gauge the model's performance.
  • +
+

3. Optimization Strategy:

+
    +
  • During this labeling phase, I adopted a systematic strategy to mitigate the recurrence of previously observed issues, particularly the repetitive copyright statements. Consequently, this dataset, though numbering 4,000 examples, effectively offers the richness of approximately 6,000 to 7,000 samples when benchmarked against the former labeling methodology.
  • +
+

4. Putting the Model to Test:

+
    +
  • I decided to evaluate the refined model on new datasets - copyrights from ansible, cassandra, and vscode repositories:
  • +
+
    +
  • Ansible: Here, the results were mixed. While the model performed reasonably in some cases, it exhibited challenges in accurately identifying GNU license instances: +
      +
    1. 'Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>' Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
    2. +
    3. Copyright 2019 Ansible Project GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
    4. +
    5. (c) 2014, James Tanner <tanner.jc@gmail.com>
    6. +
    7. (c) 2017 Ansible Project GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import (absolute_import, division, print_function) metaclass__ = type
    8. +
    9. (c) 2013, bleader Written by bleader <bleader@ratonland.org> Based on pkgin module written by Shaun Zinck +that was based on pacman module written by Afterburn <https://github.com/afterburn> that was based on apt +module written by Matthew Williams <matthew@flowrout>
    10. +
    +
  • +
  • Cassandra: Again, the model demonstrated varied performance. While it succeeded in some instances, it missed out on others, particularly the ones with repeated patterns: +
      +
    1. (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
    2. +
    3. (c) Steven Levithan <stevenlevithan.com> MIT License
    4. +
    5. Copyright 2005-2008 The Android Open Source Project This product includes software developed as part of The Android Open Source Project (http://source.android.com).
    6. +
    7. Copyright © 2020 Jeff Carpenter, Eben Hewitt. All rights reserved. Used with permission._
    8. +
    9. Copyright &amp;copy; 2009- The Apache Software Foundation " useexternalfile="yes" encoding="UTF-8" +failonerror="false" maxmemory="256m" additionalparam="${jdk11plus-javadoc-exports}"> filesets/> javadoc> +fail message="javadoc failed"> condition>
    10. +
    11. © 2018 DataStax", "", "\n", "\0", "\0\0", "\001", "0", "0\0", "00", "1") forEach(stringConsumer)
    12. +
    13. copyright to Philip Koopman , which he licenses under the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0)
    14. +
    15. Copyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQ ÌXYZ XYZ o¢8õXYZ b·ÚXYZ $ ¶ÏdescIEC http://www.iec.chIEC
    16. +
    +
  • +
  • VScode: A similar trend was observed here. Some instances were accurately identified, whereas others were overlooked: +
      +
    1. Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
    2. +
    3. Copyright (c) textmate-diff.tmbundle project authors",
    4. +
    5. copyrightCopyright Apple Inc., 2016Èô(FtEXticc:descriptionDisplay ¸IEND®B
    6. +
    7. Copyright (c) 2002-2020 K.Kosako <kkosako0@gmail.com> ", All rights reserved.",
    8. +
    9. Copyright (C) Microsoft Corporation. All rights reserved. ± t Copyright (C) Microsoft Corporation. All rights reserved. lÿü ÿü C=------------------------------------------------------------- ±
    10. +
    11. Copyright (c) 2011 Fabrice Bellard The original design remains. The terminal itself has been extended to include xterm CSI codes, among other features .
    12. +
    13. Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang) . This software or document includes material copied ", from or derived from HTML 5.1 W3C Working Draft (http://www.w3.org/TR/2015/WD-html51-20151008/.)",
    14. +
    +
  • +
  • Feedback Session: After showcasing these outcomes to Kaushlendra, he articulated that the model would greatly benefit from an even more expansive dataset. A corpus larger than the current 4,000 examples is essential for the model to effectively generalize across diverse variations.
  • +
+

Conclusion and further plans:

+

1. Decluttering Improvements

+
    +
  • Improve the decluttering model as much as I can while working on the documentation
  • +
+

2. Documentation

+
    +
  • Work on finilzating the weekly documentation as GSoC is coming to an end.
  • +
  • Start working on the GSoC final report.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/copyrights/updates/2023-10-25/index.html b/docs/2023/copyrights/updates/2023-10-25/index.html new file mode 100644 index 0000000000..7f804b263f --- /dev/null +++ b/docs/2023/copyrights/updates/2023-10-25/index.html @@ -0,0 +1,34 @@ + + + + + +Week 22 | GSoC projects at FOSSology + + + + + +

Week 22

(October,25,2023)

+

Attendees:

+ +

Updates:

+

Documentation Overhaul

+
    +
  • Completed updating the weekly documentation that had been previously overlooked. Also, I revamped the document styling and updated previous content to enhance clarity.
  • +
+

Final GSoC Report

+
    +
  • The final GSoC report has been penned and is currently pending mentor approval. It can be found here
  • +
+

Conclusion and Further Plans:

+

Final Touches

+
    +
  • I'll focus on finalizing any remaining code documentation, improving PR documentation, and the decluttering model wherever feasible.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/index.html b/docs/2023/cyclonedx/index.html new file mode 100644 index 0000000000..4e1f30aad6 --- /dev/null +++ b/docs/2023/cyclonedx/index.html @@ -0,0 +1,87 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Sushant Kumar

+

Contact info

+ +

Project title

+

Support CycloneDX report

+

What's the project about?

+

Currently, FOSSology generates +SBOM +in SPDX format, which allows for integration with various +tools. However, CycloneDX is another popular format +for generating SBOMs. By integrating CycloneDX report generation in FOSSology, +it will be possible to work with other tools that use CycloneDX. Although a PHP +library exists for +generating CycloneDX reports, it cannot be used because it is licensed under +Apache-2.0, while FOSSology is under GPL-2.0. Therefore, a custom implementation +of CycloneDX report generation in FOSSology is necessary. So the main goal of +this project focuses on the implementation of CycloneDX report generation in +FOSSology.

+

What should be done?

+

There are two main components of this project:

+
    +
  • +

    First part is all about generating CycloneDx report in FOSSology. Now for +report generation we need to follow these steps:

    +
      +
    • Retrieve the data from the FOSSology DAO layer: FOSSology has a database +layer called the +DAO +(Data Access Object) layer that is used for accessing data from FOSSology's +database. We can use the FOSSology DAO layer to fetch the required data from +the database.
    • +
    • Create a CycloneDX agent: Develop a custom agent that interacts with the +FOSSology DAO layer and retrieves the necessary data for generating the +CycloneDX report. This agent will act as a bridge between FOSSology and the +CycloneDX report generation process.
    • +
    • Extract the required information: Using the CycloneDX agent, retrieve +the license and copyright information for each file from the FOSSology scan +data. The specific information needed will depend on the requirements and +the level of detail that needed to be include in the report.
    • +
    • Implement a CycloneDX validator: Develop a validator that can verify if +a CycloneDX report adheres to the schema.
    • +
    • Generate the CycloneDX report: Once collected the relevant data from +database with validated CycloneDX schema, we can generate the CycloneDX +report.
    • +
    +
  • +
  • +

    Second is support import of CycloneDx reports in FOSSology:

    +
      +
    • Extend the FOSSology reportimport agent: The FOSSology +reportimport +agent allows importing reports from various formats. To add support for +importing CycloneDX reports, we need to extend the agent's capabilities. +This involves modifying the reportimport agent's codebase to include +CycloneDX as an accepted format and validate report using custom validator.
    • +
    • Validate the CycloneDX report: When importing a CycloneDX report, invoke +the CycloneDX validator to check if the report conforms to the schema. The +validator will analyze the report's structure, fields, and content to ensure +compliance with the CycloneDX standard.
    • +
    • Import the validated CycloneDX report: After successfully validating the +CycloneDX report, import it into the FOSSology database using the +reportimport agent. The agent will parse the report's data and store it in +database.
    • +
    +
  • +
+

The main functionality that needs to be implemented is to successfully generate +and import a CycloneDx report in FOSSology. In addition, the UI code of +FOSSology also needs to be modified to display options for generating and +importing CycloneDx reports.

+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-05-11/index.html b/docs/2023/cyclonedx/updates/2023-05-11/index.html new file mode 100644 index 0000000000..0ca7d438af --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-05-11/index.html @@ -0,0 +1,57 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Meeting 1

+

(May,11,2023)

+

Attendees:

+ +

Discussion:

+
    +
  • Introduction to Contributors and Mentors.
  • +
  • Timings for Project-Specific Meetings and General Meeting were Decided.
  • +
+

Meeting 2

+

(May 18,2023)

+

Attendees:

+ +

Discussion:

+
    +
  • This week, I was busy with examinations, which is why I couldn't do much work.
  • +
  • However, I encountered issues during the Fossology installation process, but I was able to successfully install it on my system.
  • +
  • Due to my examinations, I may not be able to dedicate much time to my project until next week.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-06-01/index.html b/docs/2023/cyclonedx/updates/2023-06-01/index.html new file mode 100644 index 0000000000..6b4fa35af5 --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-06-01/index.html @@ -0,0 +1,42 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

(June,01,2023)

+

Updates:

+
    +
  • I was primarily exploring the +SPDX2 agent +codebase while setting up FOSSology and configuring the PHP debugger for +development.
  • +
  • During this process, Gaurav Mishra helped me in +handling the errors that I encountered and running agents from the command +line.
  • +
  • To run an agent from the terminal, we can use the following command: +
      +
    • echo <args> | sudo /usr/local/etc/fossology/mods-enabled/<agent>/agent/<agent> --jobId=<job_id> --config=/usr/local/etc/fossology --userID=3 --groupID=3 --scheduler_start
    • +
    • Please replace <args>, <agent> and <job_id> with the appropriate +values when executing the command.
    • +
    +
  • +
+

Conclusion and further plans:

+
    +
  • I will start working on the CycloneDx agent in the upcoming week.
  • +
  • For now, my plan is to create a demo agent for CycloneDx and test if it's +running correctly from the command line.
  • +
  • Once I have successfully created the agent, I will utilize the CycloneDx PHP +library to generate +reports for FOSSology.
  • +
  • After generating the report, I will work on creating a custom implementation +of CycloneDx to generate our own reports in FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-06-08/index.html b/docs/2023/cyclonedx/updates/2023-06-08/index.html new file mode 100644 index 0000000000..8f41b7d1d5 --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-06-08/index.html @@ -0,0 +1,29 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

(June,08,2023)

+

Updates:

+
    +
  • I have been primarily working on creating an agent for CycloneDX.
  • +
  • I have successfully created an agent that retrieves the necessary data for +generating a CycloneDX report from the FOSSology database.
  • +
  • Currently, the agent is running in CLI (Command Line Interface) mode.
  • +
  • I used the SPDX agent as a reference to create this agent.
  • +
+

Conclusion and further plans:

+
    +
  • In the upcoming weeks, I will be working on generating CycloneDX reports by +utilizing the data from the FOSSology database.
  • +
  • Additionally, I will be working on determining the similarities between SPDX +and CycloneDX reports.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-06-15/index.html b/docs/2023/cyclonedx/updates/2023-06-15/index.html new file mode 100644 index 0000000000..b2adf6540d --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-06-15/index.html @@ -0,0 +1,58 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

(June,15,2023)

+

Updates:

+

This week, my work on the project primarily involved three main components:

+
    +
  • Researching and studying the details of CycloneDX reports: +
      +
    • I explored into the CycloneDX schema, which helped me understand the +specific data that can and cannot be included in the reports generated by +FOSSology.
    • +
    • Additionally, I successfully mapped the required data fields between SPDX +and CycloneDX reports.
    • +
    +
  • +
  • Generating a CycloneDX report: +
      +
    • I focused on generating the report in JSON format, and I accomplished this +task successfully.
    • +
    • Here is an example of the report generated:
    • +
    +
        {
    "bomFormat": "CycloneDX",
    "specVersion": "1.4",
    "version": 0,
    "$schema": "https://cyclonedx.org/schema/bom/1.4/schema.json",
    "serialNumber": "urn:uuid:BomRef.6-4881-a807-a47d-7.16459827",
    "metadata": {
    "timestamp": "2023-06-13T12:58:00+05:30",
    "tools": [
    {
    "vendor": "FOSSology",
    "name": "FOSSology",
    "version": "1.0.0"
    }
    ]
    },
    "components": [
    {
    "type": "file",
    "name": "File 1",
    "mime-type": "application/octet-stream",
    "bom-ref": "ABCDEF123",
    "supplier": {
    "name": "Supplier 1",
    "url": [],
    "contact": []
    }
    "scope": "required",
    "hashes": [],
    "licenses": [
    {
    "license": {
    "id": "License1",
    "name": "License 1",
    "text": {
    "content": "TGljZW5zZSB0ZXh0IDE=",
    "contentType": "text/plain",
    "encoding": "base64"
    },
    "url": "https://example.com/license1"
    },
    "expression": "License expression 1"
    },
    {
    "license": {
    "id": "License2",
    "name": "License 2",
    "text": {
    "content": "TGljZW5zZSB0ZXh0IDI=",
    "contentType": "text/plain",
    "encoding": "base64"
    },
    "url": "https://example.com/license2"
    },
    "expression": "License expression 2"
    }
    ],
    "copyright": "Copyright 1"
    },
    {
    "type": "file",
    "name": "File 2",
    "mime-type": "application/octet-stream",
    "bom-ref": "ABCDEF456",
    "supplier": {
    "name": "Supplier 2",
    "url": [],
    "contact": []
    },
    "scope": "required",
    "hashes": [],
    "licenses": [
    {
    "license": {
    "id": "License3",
    "name": "License 3",
    "text": {
    "content": "TGljZW5zZSB0ZXh0IDM=",
    "contentType": "text/plain",
    "encoding": "base64"
    },
    "url": "https://example.com/license3"
    },
    "expression": "License expression 3"
    }
    ],
    "copyright": "Copyright 2"
    }
    ]
    }
    +
      +
    • It's important to note that the data in the above report is not sourced +from FOSSology. However, all the fields can be populated with data from +the FOSSology database.
    • +
    • The report primarily emphasizes the components of an upload. While the +CycloneDX specification +allows for various types of components such as Application, Container, +Device, Library, File, Firmware, Framework, and Operating System, we only need to include File components in FOSSology reports.
    • +
    +
  • +
  • Validating the report: +
      +
    • I developed a simple PHP code that can be utilized to validate the report +against the CycloneDX +schema.
    • +
    • Here is the function that validates the report:
    • +
    +
        function validateJSONAgainstSchema($jsonFile, $schemaFile)
    {
    $jsonString = file_get_contents($jsonFile);
    $schemaString = file_get_contents($schemaFile);

    $jsonData = json_decode($jsonString);
    $schemaData = json_decode($schemaString);

    $validator = new Validator();
    $validator->validate($jsonData, $schemaData);

    if (!$validator->isValid()) {
    $errors = array_map(function ($error) {
    return $error['property'] . ': ' . $error['message'];
    }, $validator->getErrors());

    return $errors;
    }

    return true;
    }
    +
  • +
+

Conclusion and further plans:

+
    +
  • In the upcoming weeks, I will work on CycloneDX agent implementation in +FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-06-22/index.html b/docs/2023/cyclonedx/updates/2023-06-22/index.html new file mode 100644 index 0000000000..5ae6085e2f --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-06-22/index.html @@ -0,0 +1,28 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

(June,22,2023)

+

Updates:

+
    +
  • This week, I successfully implemented the CycloneDX agent in Fossology.
  • +
  • At the moment, I am able to add copyright information for file components in +the report. However, I still need to implement the license part.
  • +
  • A single component in the report looks like: +
          {
    "type": "file",
    "name": "Nirjas-master.zip/Nirjas-master/nirjas/languages/dart.py",
    "mime-type": "text/plain",
    "bomref": "55",
    "scope": "required",
    "hashes": [
    {
    "alg": "SHA-1",
    "content": "9EA23964D0840F9A9F2D1D5EB9AE317C7CFB9C72"
    },
    {
    "alg": "MD5",
    "content": "9B1050AAFB39D68A19467C969F3BDE5F"
    },
    {
    "alg": "SHA-256",
    "content": "61A1C1D4B00252D403EE0B60BE5C13A5B58795D702677B6E1973B084C5351992"
    }
    ],
    "copyright": "Copyright (C) 2020 Aman Dwivedi (aman.dwivedi5@gmail.com)"
    }
    +
  • +
+

Conclusion and further plans:

+
    +
  • In the upcoming weeks, I will work on adding license information for file +components in the report.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-06-29/index.html b/docs/2023/cyclonedx/updates/2023-06-29/index.html new file mode 100644 index 0000000000..a08c1936a7 --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-06-29/index.html @@ -0,0 +1,44 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

(June,29,2023)

+

Updates:

+
    +
  • +

    License Info Retrieval:

    +
      +
    • This week, I successfully retrieved license information for each file from +the FOSSology database.
    • +
    • Noteworthy, if a user designates a license as the main license for an +upload, it will be added to the main component license in the report.
    • +
    • However, if no main license is designated for an upload, the license +information for the main component will not be added to the report.
    • +
    • Additionally, if a user concludes a specific license for a component, only +the concluded license will be added to the report. Otherwise, all license +findings for that component will be included.
    • +
    +
  • +
  • +

    CycloneDX Agent UI:

    +
      +
    • I've been working on the UI part for the CycloneDX agent.
    • +
    • As of now, the agent is running successfully from the FOSSology UI.
    • +
    +
  • +
+

Conclusion and further plans:

+
    +
  • In the coming weeks, my focus will be on improving the clarity and +comprehensibility of the code. Once these enhancements are made, I plan to +submit a PR for adding CycloneDX agent.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-07-06/index.html b/docs/2023/cyclonedx/updates/2023-07-06/index.html new file mode 100644 index 0000000000..ad0d6490ef --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-07-06/index.html @@ -0,0 +1,35 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

(July,06,2023)

+

Updates:

+
    +
  • During this week, I have been diligently working on preparing a comprehensive +summary of all the tasks I have accomplished so far for the mid-term +evaluation. The purpose of this summary is to showcase the progress and +achievements made during the initial phase of the project.
  • +
  • Additionally, I raised a Pull Request (PR) for the CycloneDX agent: + +
  • +
+

Conclusion and further plans:

+
    +
  • In the coming weeks, I will start working scancode +agent +improvemnet in FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-07-13/index.html b/docs/2023/cyclonedx/updates/2023-07-13/index.html new file mode 100644 index 0000000000..55817747a0 --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-07-13/index.html @@ -0,0 +1,31 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

(July,13,2023)

+

Updates:

+
    +
  • This week I have started working on the scanning speed improvement of +scancode +agent.
  • +
  • Explored different approaches for running ScanCode with varied parameters.
  • +
  • Successfully integrated changes to execute ScanCode through its API.
  • +
  • Discovered that the API execution is notably faster (13 seconds) compared to +the CLI (23 seconds).
  • +
+

Conclusion and further plans:

+
    +
  • Refine the process of reading output from the Python script.
  • +
  • Work on enhancing the integration with the database to ensure accurate updates.
  • +
  • Also, to work on changes requested on CDX PR +#2507
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-07-20/index.html b/docs/2023/cyclonedx/updates/2023-07-20/index.html new file mode 100644 index 0000000000..7e53ab6aea --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-07-20/index.html @@ -0,0 +1,36 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

(July,20,2023)

+

Updates:

+
    +
  • This week, I was mainly working on the modifications requested by +mentors regarding Pull Request +#2507.
  • +
  • Major changes include: +
      +
    • Made licenseRefs as license expressions, as CycloneDX schema does not +support SPDX LicenseRef as valid license identifier.
    • +
    • Refactored the SPDX agent code, effectively eliminating the multiple +implementation of same functions being used in both CycloneDX and SPDX agents.
    • +
    • Successfully resolved failing test cases within the SPDX agent for the pull +request.
    • +
    • Added download option to download report from UI.
    • +
    +
  • +
+

Conclusion and further plans:

+
    +
  • In upcoming weeks, I will continue working on scancode agent improvement in +FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-07-27/index.html b/docs/2023/cyclonedx/updates/2023-07-27/index.html new file mode 100644 index 0000000000..2483249f4b --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-07-27/index.html @@ -0,0 +1,35 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

(July,27,2023)

+

Updates:

+
    +
  • During this week, my focus was on leveraging the ScanCode +API +within the ScanCode agent to efficiently retrieve licenses and copyrights +information from files. The API has demonstrated faster results compared to +the command line interface (CLI).
  • +
  • I've also made improvements in how the output from Python scripts, invoked by +the ScanCode agent, is processed and utilized.
  • +
  • Notably, the current process lacks the inclusion of emails and URLs identified +in a file when invoking ScanCode via CLI. To address this, I have made changes +to add the missing information to the database for each file.
  • +
  • A compilation of all the changes made this week and in preceding weeks +regarding scancode agent can be reviewed +here.
  • +
+

Conclusion and further plans:

+
    +
  • In the coming weeks, I will continue to try different approaches to improve +the ScanCode agent in FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-08-03/index.html b/docs/2023/cyclonedx/updates/2023-08-03/index.html new file mode 100644 index 0000000000..030be387eb --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-08-03/index.html @@ -0,0 +1,37 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

(August,03,2023)

+

Updates:

+
    +
  • Throughout this week, my primary focus remained on enhancing the ScanCode agent.
  • +
  • A significant concern with the agent is its current practice of invoking +ScanCode through the command line interface (CLI) for each individual file, +leading to a file-by-file scanning process. Unfortunately, this resulted in a +considerable amount of time being spent on bootstrapping ScanCode for each +file.
  • +
  • As a solution to this inefficiency, I explored a different approach. I +attempted to leverage the ScanCode +API +to scan all files in a single call, consolidating the results into a unified +location, potentially a JSON file.
  • +
  • The intended workflow involves storing the outcomes from the API call in a +centralized JSON file. Subsequently, the data extracted from the JSON results +will be efficiently populated into the database for each file during the upload +process.
  • +
+

Conclusion and further plans:

+
    +
  • In the coming weeks, I will try to implement the aforementioned workflow in +FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/cyclonedx/updates/2023-08-10/index.html b/docs/2023/cyclonedx/updates/2023-08-10/index.html new file mode 100644 index 0000000000..7dbf915c77 --- /dev/null +++ b/docs/2023/cyclonedx/updates/2023-08-10/index.html @@ -0,0 +1,76 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

(August,10,2023)

+

Updates:

+
    +
  • This past week, my focus was on implementing a method to simultaneously scan +all files, streamlining the scanning process.
  • +
  • The following procedure was followed to achieve this objective: +
      +
    • File Location Retrieval: +
        +
      • Utilized the Fossology ScanCode agent to gather the file locations for +each individual file.
      • +
      • Stored these file locations in a temporary text file.
      • +
      +
    • +
    • Python Script Integration: +
        +
      • Passed the path of the temporary text file containing file locations to a +dedicated Python script which will scan result using scancode api.
      • +
      +
    • +
    • Parallel Scanning Script: +
        +
      • Developed a Python script responsible for the concurrent scanning of +files.
      • +
      • Employed a loop to iterate through each file location stored in the text +file.
      • +
      • For each file location, invoked the ScanCode API to initiate scanning.
      • +
      • Captured the resulting output and appended it to a JSON file.
      • +
      +
    • +
    • Updating results to database: +
        +
      • Following the script's completion, extracted the data from the generated +JSON file.
      • +
      • Leveraged the ScanCode agent to retrieve the data and subsequently saved +it to the Fossology database.
      • +
      +
    • +
    • Clean-up Process: +
        +
      • Concluded the process by erasing both the temporary text file and the +generated JSON file.
      • +
      +
    • +
    +
  • +
  • This strategic shift offers notable advantages: +
      +
    • Drastically reducing the time spent on ScanCode's bootstrapping process.
    • +
    • Optimizing the utilization of the ScanCode toolkit within the Fossology +framework.
    • +
    +
  • +
  • Raised a pull request +after making all these changes.
  • +
+

Conclusion and further plans:

+
    +
  • In the coming weeks, I will start making my final report for final +evaluation.
  • +
  • Will also work on this PR, +if any changes are required.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/index.html b/docs/2023/index.html new file mode 100644 index 0000000000..4ce487cc5b --- /dev/null +++ b/docs/2023/index.html @@ -0,0 +1,50 @@ + + + + + +GSoC'23 @ FOSSology | GSoC projects at FOSSology + + + + + +

GSoC'23 @ FOSSology

2023 is the sixth time participation for FOSSology in +Google Summer of Code.

+

You can visit our idea page for GSoC 2022.

+

This year, following contributors were shortlisted for the program. However, we +would like to thank everyone who has applied with FOSSology for the Google +Summer of Code program.

+

Projects

+
ContributorProjectFinal Reports
Abdelrahman JamalReducing False positive copyrightsVisit
Samuel DushimimanaREST API improvementsVisit
Kavya ShuklaLicense as a serviceVisit
Soham BanerjeeREST API improvementsVisit
Sushant KumarSupport CycloneDX reportVisit
+

These links (also on the left sidebar) contains information about the project, +the weekly updates from the students and even technical documentation which +were generated during the Google Summer of Code.

+

Mentors

+ +

Meetings table

+
Topic(s)TimingsMeeting linkICS
General MeetingThursday 13:00 - 14:00 UTCMicrosoft Teams.ics
----
Rest APIWednesday 12:00 - 13:00 UTCMicrosoft Teams.ics
CopyrightWednesday 11:30 - 12:15 UTCMicrosoft Teams.ics
LaaSFriday 10:30 - 11:00 UTCMicrosoft Teams.ics
CycloneDXTuesday 05:00 - 05:30 UTCMicrosoft Teams.ics
+

Photo

+

Here are some screen captures of the conclusion meeting of GSoC 2023 with all +mentors and contributors.

+

group photo1 +[Participants photo 1]

+

group photo2 +[Participants photo 2]

+

group photo3 +[Participants photo 3]

+

Thanks for being part of the community. 💚

+ + \ No newline at end of file diff --git a/docs/2023/laas/finalevaluation/index.html b/docs/2023/laas/finalevaluation/index.html new file mode 100644 index 0000000000..6f71d2cec4 --- /dev/null +++ b/docs/2023/laas/finalevaluation/index.html @@ -0,0 +1,126 @@ + + + + + +Final Evaluation | GSoC projects at FOSSology + + + + + +

Final Evaluation

License as a Service

+

FOSSology is an open-source license compliance software system and toolkit. You +can run license, copyright, and export control scans from the command line as a +toolkit. We can also use it online where we can upload files or upload through a URL +where we can get a license from the repository or file.

+

License as a service provides a convenient and effective way for organizations to +manage their use of open-source licenses. With the growing popularity of open-source +software, organizations are finding it more difficult to keep track of the various +licenses and terms under which they are permitted to use open-source components. +Open-source licenses can be complicated, making it difficult to understand how they +apply to a specific piece of software or interact with other licenses. It can be +used for various purposes by organizations and tools like FOSSology and SW360 like +license identification, filtering, and managing licenses. There are benefits of this +service such as increasing flexibility, a faster time-to-access, and managing the database.

+

What I did

+

Project Structure

+
.
├── pkg
│ ├── utils # folder for basic utilities of project
│ ├── models # folder has a file that contains all the structs required in the project
│ ├── db # It has a file that connects and migerates the database
│ ├── auth # It has all the functions related to authentication and users
│ └── api # It contains all the functions related to API endpoints.
└── cmd # This is the entry point of project
└── laas
└── main.go # This function contains code to migrate db and run router function
+

Database

+

I have made a database that has licenses, obligations, obligation map, users, their audits +and changes.

+
    +
  • License table has list of licenses and all the data related to the licenses.
  • +
  • Obligations table has the list of obligations that are related to the licenses.
  • +
  • Obligation map table that maps obligations to their respective licenses.
  • +
  • User table has the user that are associated with the licenses.
  • +
  • Audit table has the data of audits that are done in obligations or licenses
  • +
  • Change log table has all the change history of a particular audit.
  • +
+

alt text

+

APIs

+

There are various API endpoints that are of licenses, obligations, user and audit +endpoints.

+

API endpoints

+
#MethodAPI EndpointsExamplesDescriptions
1GET/api/licenses/:shortname/api/licenses/MITGets all data related to licenses by their shortname
2GET/api/licenses//api/licenses/copyleft="t"&active="t"Get filter the licenses as per the filters
3POST/api/licenses/api/licensesCreate a license with unique shortname
4POST/api/licenses/search/api/licenses/searchGet the licenses with the post request where we put field, search term and type
5PATCH/api/licenses/:shortname/api/licenses/MITIt updates the particular fields as requested of the license with shortname
6GET/api/users/api/usersGet all the users and their data
7GET/api/users/:id/api/users/1Get data relate to user by its id
8POST/api/users/api/usersCreate a user with unique data
9GET/api/obligations/api/obligationsGet all the obligations
10GET/api/obligation/:topic/api/obligation/topicGets all data related to obligations by their topic
11POST/api/obligations/api/obligationsCreate an obligation as well as add it to obligation map
12PATCH/api/obligations/:topic/api/obligationsIt updates the particular fields as requested of the obligation with topic
13GET/api/audit/api/auditGet the audit history of all the licenses and obligations
14GET/api/audit/:audit_id/api/audit/1Get the data of a particular audit by its id
15GET/api/audit/:audit_id/changes/api/audit/1/changesGet the change logs of the particular audit id
16GET/api/audit/:audit_id/changes/:id/api/audit/1/changes/2Get a particular change log of the particular audit id
+

Deliverables

+ +

How to use this project

+

Prerequisite

+

Please install and set-up Golang on your system +in advance.

+

Build and install

+
    +
  • Clone this Project and Navigate to the folder.
  • +
+
git clone https://github.com/fossology/LicenseDb.git
cd LicenseDb
+
    +
  • Build the project using following command.
  • +
+
go build ./cmd/laas
+
    +
  • Run the executable.
  • +
+
./laas
+
    +
  • You can directly run it by the following command.
  • +
+
go run ./cmd/laas
+

What I have learned

+

During my participation in the Google Summer of Code (GSoC), I've gained valuable experience +in open-source development and collaboration. I've honed my coding skills, learned to work with +version control systems like Git, and become proficient in communicating with mentors and +the wider developer community. Through tackling real-world coding challenges, I've +deepened my understanding of software development best practices and gained insights +into project management.

+

The projects as whole was challenging as I have worked with basic APIs and have basic +knowledge databases. Then working with the database was much newer for me. As well as +Working with complex APIs and creating various endpoints was a difficult task as well.

+

Learned about database queries, different searches, authentication, complex API endpoints +and much more. Overall it was a great experience and lots of learning during the project.

+

Acknowledgement

+

Google Summer of Code has been an incredibly transformative experience for me this year. +As I reflect on this journey, I am overwhelmed with gratitude for the people who +have been instrumental in my success and growth during this period.

+

First and foremost, I extend my heartfelt appreciation to my mentors: Gaurav Mishra, +Sahil Jha, Avinal Kumar, +and Anupam Ghosh. Without their unwavering guidance, support, +and expertise, I truly believe that I would not have been able to achieve what I have. +Their patience, deep knowledge, and willingness to help have been the pillars upon which +I've built my progress. Their mentorship has not only imparted technical skills but +has also instilled in me a sense of confidence and direction.

+

A special mention goes to my college senior, Avinal Kumar. Your consistent motivation +and belief in my abilities have been a driving force throughout this journey. Your insights +and encouragement have been invaluable, and I am grateful for your role in shaping my path.

+

The connections I've made with incredible developers from around the world have expanded my horizons, +and I look forward to the possibility of future collaborations. In all, Google Summer of Code +has been a transformative chapter in my life, and I am truly grateful for the collective +efforts of these outstanding individuals who have made it possible.

+ + \ No newline at end of file diff --git a/docs/2023/laas/index.html b/docs/2023/laas/index.html new file mode 100644 index 0000000000..c77afe7194 --- /dev/null +++ b/docs/2023/laas/index.html @@ -0,0 +1,49 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Kavya Shukla

+

Contact info

+ +

What's the project about?

+

Organisations are finding it more challenging to keep track of the numerous licences +and conditions under which they are permitted to utilise open-source components +as a result of the rising popularity of open-source software. Open-source licences +can be challenging to comprehend in terms of how they relate to a particular piece +of software or work with other licences. Organisations like FOSSology and SW360 +can utilise it for a variety of things, like licence identification, filtering, +and management.

+

What should be done?

+

There are two parts of the project:

+
    +
  • +

    First part is the creating a database service

    +
      +
    • Adding the data components related to licenses.
    • +
    • Database will help us to fetch the desired data using the API.
    • +
    +
  • +
  • +

    Second part is API Designing:

    +
      +
    • Adding endpoints related to the license database.
    • +
    • Adding various query parameters for filters and ordering.
    • +
    • To add fuzzy search for the license text.
    • +
    • Adding the endpoints related to authentication of the API.
    • +
    +
  • +
+

Repository Link

+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-05-11/index.html b/docs/2023/laas/updates/2023-05-11/index.html new file mode 100644 index 0000000000..19f90d5291 --- /dev/null +++ b/docs/2023/laas/updates/2023-05-11/index.html @@ -0,0 +1,50 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

+

Meeting 1

+

(May,11,2023)

+

This was the first meeting of community bonding period in GSoC'23. In this the +Mentors and the contributors were introduced.

+

Minutes of Meeting

+
    +
  • Documentation and its +repository was explained to +track the updates. For reference we can look upon previous year documentation.
  • +
  • Timings of the each of the project meet and weekly meet was decided.
  • +
+

During week 1

+

(May 12,2023- May 17,2023)

+
    +
  • Revised the golang basics and other skills required for the project.
  • +
  • Revised my proposal for further work.
  • +
+

Meeting 2

+

(May 18,2023)

+

Basic discussion about the project previous week work and general updates.

+

During week 2

+

(May 19,2023- May 24,2023)

+
    +
  • Revised the proposal and worked on the prototype.
  • +
  • Added the Authentication in the API made on the prototype.
  • +
+

Meeting 3

+

(May 25,2023)

+

Minutes of Meeting

+
    +
  • Discussed regarding the Authentication of the API and for now it will be +basic user name and password later on we will do it using tokens.
  • +
  • For obligations we will have a different repository and a different +database.
  • +
  • For licences there will be a different repository under FOSSology.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-06-02/index.html b/docs/2023/laas/updates/2023-06-02/index.html new file mode 100644 index 0000000000..f583dcb537 --- /dev/null +++ b/docs/2023/laas/updates/2023-06-02/index.html @@ -0,0 +1,59 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 1

+

(June,02,2023)

+

It was the first meeting of coding period, creating basic project structure and +the added the documentation file in each package.

+

Attendees

+ +

Discussions

+
    +
  • Type of Database structure: Database Service or a File. +
      +
    • It will be a database service.
    • +
    +
  • +
  • Discussed about the data components: +
      +
    • For now we will add all the data components that are in the fossology.
    • +
    +
  • +
  • We will make a new database different from that of fossology.
  • +
  • How we will be populating the database in the first place: +
      +
    • we will use the link of data file in fossology.
    • +
    +
  • +
  • For authentication currently it will be same as that of fossology.
  • +
+

General

+
    +
  • Add Reuse.software for licensing of each file.
  • +
+
    <!-- SPDX-FileCopyrightText: 2023 Kavya Shukla <kavyuushukla@gmail.com>
SPDX-License-Identifier: GPL-2.0-only -->
+ +

Conclusion and future plan

+
    +
  • Next week we have to have to migrate the json data into the local database.
  • +
  • Add various data components in the field licenses.
  • +
  • Create table in local database with the configuration entered.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-06-09/index.html b/docs/2023/laas/updates/2023-06-09/index.html new file mode 100644 index 0000000000..c95da87ef1 --- /dev/null +++ b/docs/2023/laas/updates/2023-06-09/index.html @@ -0,0 +1,62 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 2

+

(June, 09, 2023)

+

Attendees

+ +

Update

+

Added code to populate data from JSON file to the database:

+
    +
  • added automigration capability
  • +
  • added CLI arguments for database connection
  • +
  • database can be populated with json file etc
  • +
+

Discussions

+
    +
  • Shaheem suggested to discuss it with Anupam and Gaurav for License Candidate file. +
      +
    • For now we will use License database of license.
    • +
    +
  • +
  • If the data in database is not same as that in json file we will migrate it from +json file. For ths we have RF flag in fossology, this flag refers if the data is +from UI or from json.
  • +
  • Marydone is field for candidate license flag.
  • +
+

General

+
    +
  • Do we want plain log or structured log? +
      +
    • We need keep structured, as structured are easy to parse to extend we can start +putting logs.
    • +
    +
  • +
  • Use fatalf for error format instead of panic.
  • +
  • Create Signed commit
  • +
+

Conclusion and Future Plan

+
    +
  • +

    Get endpoints to be done.

    +
      GET METHOD:  /api/licenses      // get all licenses 
    GET METHOD: /api/license/:shortname // get licenses by shortname
    +
  • +
  • +

    Evaluate both fuzzy search and fulltext in PostgreSQL.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-06-16/index.html b/docs/2023/laas/updates/2023-06-16/index.html new file mode 100644 index 0000000000..fa62cf32dd --- /dev/null +++ b/docs/2023/laas/updates/2023-06-16/index.html @@ -0,0 +1,47 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 3

+

(June, 16, 2023)

+

Attendees

+ +

Discussions

+
    +
  • For update & create, shortanme should not be there in parameter of URL.
  • +
  • Add error for invalid URL.
  • +
  • SPDX id will aso be a required field in create.
  • +
  • update will be done using query parameter.
  • +
+

Update

+

Created two basic end points and different struct for error to create structured +error message.

+
    +
  • +

    Get all licenses:

    +

    to get all the details of the licenses present in the database. +gets the data of all the data components present in the database.

    +
  • +
  • +

    Get licenses by shortname:

    +

    to get the data of the license with the shortname passed as a parameter. +error when no such license found.

    +
  • +
+

Conclusion and future plan

+
    +
  • Work on the other end points and add documentation.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-06-23/index.html b/docs/2023/laas/updates/2023-06-23/index.html new file mode 100644 index 0000000000..9746717b21 --- /dev/null +++ b/docs/2023/laas/updates/2023-06-23/index.html @@ -0,0 +1,55 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 4

+

(June, 23, 2023)

+

Attendees

+ +

Update

+
    +
  • Created Handler for invalid user.
  • +
  • Created endpoints to update and create license. +
      +
    • Create License: +
        +
      • to create an open-source license and add it to the database
      • +
      • to make a license we need some required field
      • +
      +
    • +
    • Update License: +
        +
      • to update an open-source license and modify it to database
      • +
      • License to be updated using shortname
      • +
      +
    • +
    +
  • +
+
    POST METHOD:  /api/licenses      // Create license 
PATCH METHOD: /api/license/:shortname // Update licenses by shortname
+

Discussions

+
    +
  • What should be the data components of a user required for authenticattion: +They should be same as in fossology
  • +
  • Search should be done using both fuzzy and fulltext search.
  • +
  • For now we have to add basic Authentication.
  • +
+

Conclusion and future plan

+
    +
  • Add basic Authentication and create user table for migration.
  • +
  • Create, Get all user and get user by id as basic endpoints.
  • +
+
    GET METHOD: /api/users       // get all users
GET METHOD: /api/user/:id // get a user by id
POST METHOD: /api/user // create a user
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-06-30/index.html b/docs/2023/laas/updates/2023-06-30/index.html new file mode 100644 index 0000000000..5a996f9346 --- /dev/null +++ b/docs/2023/laas/updates/2023-06-30/index.html @@ -0,0 +1,57 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 5

+

(June, 30, 2023)

+

Attendees

+ +

Update

+

Currently added the basic authentication function and api for searching and filtering +in data base.

+
    +
  • +

    Authentication endpoints

    +
      +
    • Basic Authentication API endpoint like creating the users table and migrating the user data.
    • +
    • Creating basic end points for GET all users and GET user by id and POST to create a user.
    • +
    • Added basic Authentication in the API using username and password.
    • +
    • For basic authentication added the data components same as that in the FOSSology.
    • +
    • Created group Authentication and added authentication to all the API endpoints.
    • +
    • Created authentication header for the API.
    • +
    +
  • +
  • +

    Search and filtering endpoints

    +
      +
    • Search endpoint added full text search in the api to search different terms.
    • +
    • Add filtering on the basis of feild and search term.
    • +
    • Added query parameters to get the feild and search term.
    • +
    +
  • +
+

Discussion

+
    +
  • Authentication to be added in only the create and update endpoints.
  • +
  • Search explore more on fuzzy search and full text search.
  • +
  • Add error response to the authentication endpoints as well.
  • +
  • Add different search filters using query parameters.
  • +
+

Conclusion and future plan

+
    +
  • Add different unit test cases for the API.
  • +
  • Update the various changes suggested.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-07-07/index.html b/docs/2023/laas/updates/2023-07-07/index.html new file mode 100644 index 0000000000..c74007ab69 --- /dev/null +++ b/docs/2023/laas/updates/2023-07-07/index.html @@ -0,0 +1,52 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 6

+

(July, 07, 2023)

+

Attendees

+ +

Updates

+
    +
  • Added test case unit test cases for APIs. +
      +
    • For tests updated the project structure. +
        +
      • Added different folder for migration of database and different database.
      • +
      • Done to avoid import cycle.
      • +
      • Added functions related to migration and populating database in the db folder.
      • +
      +
    • +
    • Added API test cases for create, update, get license by shortname and search +in licenses.
    • +
    +
  • +
  • Functions for different test cases.
  • +
+

Discussions

+
    +
  • Update basic changes in pull request.
  • +
  • Change meta to pagination meta for now.
  • +
  • Regarding the filters for search.
  • +
  • And in create license we need to discuss for unique text as used in fossology.
  • +
+

Conclusion and future update

+
    +
  • Added more test cases for user end points.
  • +
  • Update the changes suggested in previous pull request.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-07-14/index.html b/docs/2023/laas/updates/2023-07-14/index.html new file mode 100644 index 0000000000..004a1f20b9 --- /dev/null +++ b/docs/2023/laas/updates/2023-07-14/index.html @@ -0,0 +1,39 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 7

+

(July, 14, 2023)

+

Attendees

+ +

Updates

+
    +
  • Added the tests for the basic user endpoints.
  • +
  • Updated the authentication as per the suggestions.
  • +
  • Updated the previous pr.
  • +
+

Discussions

+
    +
  • Change the meta to pagination meta for better description.
  • +
  • To update the data of spdx id in the database.
  • +
  • Need to add the filters in the search database.
  • +
  • We can use the inheritance of struct for the database.
  • +
+

Conclusion and future plan

+
    +
  • Add more tests and update the previous pull requests.
  • +
  • Do changes as per the suggestion.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-07-21/index.html b/docs/2023/laas/updates/2023-07-21/index.html new file mode 100644 index 0000000000..16658ec6f4 --- /dev/null +++ b/docs/2023/laas/updates/2023-07-21/index.html @@ -0,0 +1,58 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 8

+

(July, 21, 2023)

+

Attendees

+ +

Update

+
    +
  • Updated the pr of search added filters.
  • +
  • Added the data of Spdx id of licence in database.
  • +
  • Added authentication to the particular API of GET method.
  • +
+

Discussion

+
    +
  • Add audit and change history in the database.
  • +
  • The data components for audit endpoints will be: +
      +
    • For audit changes: +
        +
      • Username
      • +
      • Id
      • +
      • Shortname
      • +
      • Timestamp
      • +
      +
    • +
    • For Change log +
        +
      • Id
      • +
      • Audit_Id: foreign key of audit changes
      • +
      • Updated_value
      • +
      • New_value
      • +
      • Field
      • +
      +
    • +
    +
  • +
  • Update the search as we need to add search term in body.
  • +
+

Conclusion and future plan

+
    +
  • Works on audit endpoints and the data table for the audit changes.
  • +
  • Update the pr as per the suggestions.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-07-28/index.html b/docs/2023/laas/updates/2023-07-28/index.html new file mode 100644 index 0000000000..b816ebe26c --- /dev/null +++ b/docs/2023/laas/updates/2023-07-28/index.html @@ -0,0 +1,40 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 9

+

(July, 28, 2023)

+

Attendees

+ +

Updates

+
    +
  • Added the structs related to Audit functions.
  • +
  • Updated the search endpoints.
  • +
+

Discussions

+
    +
  • Create issue to make the meta more informative.
  • +
  • Update the pervious pull request regarding the search.
  • +
  • Change the names of api end points make them plural.
  • +
  • Add some general errors to be updates.
  • +
+

Conclusion and Future plans

+
    +
  • Add the data tables and endpoints of audit.
  • +
  • Update the basic changes as suggested in previous pr regarding API endpoints and Search.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/laas/updates/2023-08-04/index.html b/docs/2023/laas/updates/2023-08-04/index.html new file mode 100644 index 0000000000..9768ddca5e --- /dev/null +++ b/docs/2023/laas/updates/2023-08-04/index.html @@ -0,0 +1,48 @@ + + + + + +Coding Period | GSoC projects at FOSSology + + + + + +

Week 10

+

(June, 04, 2023)

+

Attendees

+ +

Updates

+
    +
  • Added Audit endpoints: +
      +
    • /api/audit: to get all the audit
    • +
    • /api/audit/:audit_id: to get the audit log by its id
    • +
    • /api/audit/:audit_id/changes: to get all the change log of a particular audit
    • +
    • /api/audit/:audit_id/changes/🆔 to get change of a particular change log
    • +
    +
  • +
  • Add the datacomponents of change log.
  • +
+

Discussions

+
    +
  • We need to add the candidate license.
  • +
  • All the licenses created will be a part of candidate licenses database.
  • +
  • Update the names of structs of ChangeLog and ChangeHistory as Audit and ChangeLog respectively.
  • +
  • Add the schema diagram of all the fields of structs and how the tables are connected.
  • +
  • Update the documentation and update the readme of the project.
  • +
  • Next we have to work on Obligation.
  • +
+

Conclusion and Future Plan

+
    +
  • Work on the suggestions on audit pr.
  • +
  • Open a new pull request for Updated Readme.
  • +
  • Add the endpoints related for candidate licenses.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-05-11/index.html b/docs/2023/minutes/2023-05-11/index.html new file mode 100644 index 0000000000..7bc9657e92 --- /dev/null +++ b/docs/2023/minutes/2023-05-11/index.html @@ -0,0 +1,54 @@ + + + + + +Community Bonding 1 | GSoC projects at FOSSology + + + + + +

Community Bonding 1

Welcome to meeting minutes page for GSoC 2023.

+

Attendees:

+ +

General

+

Welcome to the first updates meeting.

+

GSoC repo to track the updates. +Every student need to update the weekly progress. +For more details refer GSoC 2022.

+

Gaurav Mishra explains about the repo.

+

Check the contributing guidelines.

+

Questions

+
    +
  • GSoC repo will be given access for? +
      +
    • No, contributors need to create PRs.
    • +
    +
  • +
+

Meetings & Timings for individual projects

+
    +
  • Rest API - Weekly at Wednesday 12:00 UTC (17:30 IST)
  • +
  • Copyright - Weekly at Wednesday 11:30 UTC (17:00 IST)
  • +
  • LaaS - Weekly at Friday 10:30 UTC (16:00 IST)
  • +
  • CycloneDX - Weekly at Tuesday 10:30 UTC (16:00 IST)
  • +
  • Weekly meeting - Weekly at Thursday 13:00 UTC (18:30 IST)
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-05-18/index.html b/docs/2023/minutes/2023-05-18/index.html new file mode 100644 index 0000000000..28acb40bc7 --- /dev/null +++ b/docs/2023/minutes/2023-05-18/index.html @@ -0,0 +1,73 @@ + + + + + +Community Bonding 2 | GSoC projects at FOSSology + + + + + +

Community Bonding 2

Attendees:

+ +

Questions

+
    +
  • Soham: Have to run 3 cmake commands every time we do update? +
      +
    • Yes, you will have to.
    • +
    • But if change is purely in PHP and no new commit, sudo cmake --install ./build && sudo rm -rf /var/local/cache/fossology/* should be sufficient and fast.
    • +
    +
  • +
  • Abdelrahman: Have final exams next week. +
      +
    • Have extended timeline is proposal. Want to have it updated on GSoC dashboard.
    • +
    • Should contact one of Gaurav, Shaheem or Anupam.
    • +
    +
  • +
  • Should we contact CycloneDX? +
      +
    • Probably not at the moment.
    • +
    +
  • +
  • Gaurav: Should license as a service should be in fossology codebase or a separate project? +
      +
    • It should be a separate project. Will also help with licensing.
    • +
    • Gaurav will create new project on GitHub during coding period.
    • +
    +
  • +
+

Updates

+
    +
  • Soham Created trello board for REST API issue. +
      +
    • Trello is freeware. Probably moving to GitHub Projects will be better.
    • +
    • Soham does not have access to GitHub project. Gaurav will migrate from Trello.
    • +
    +
  • +
  • Soham's YouTube video is live now. Available at: https://youtu.be/SB3rKxwRy54
  • +
  • No updates from Kavya.
  • +
  • Samuel: Working with Soham. Should not collide on works. Created Trello board to help streamline the work.
  • +
  • Sushant: Setup the system during the time.
  • +
+

General

+
    +
  • Contributors are advised to check with mentors about the dependency/libraries' license.
  • +
+

Follow up

+
    +
  • Abdelrahman to have call with Kaushlendra about the project. And write email/slack to Gaurav/Shaheem about extended timeline.
  • +
  • Gaurav to signup on Trello and migrate it to GitHub projects.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-05-25/index.html b/docs/2023/minutes/2023-05-25/index.html new file mode 100644 index 0000000000..a3894e06ac --- /dev/null +++ b/docs/2023/minutes/2023-05-25/index.html @@ -0,0 +1,77 @@ + + + + + +Community Bonding 3 | GSoC projects at FOSSology + + + + + +

Community Bonding 3

Attendees:

+ +

Questions

+

Updates

+
    +
  • Soham: Setup alias, helped Samuel for same. +
      +
    • GitHub project has issues +
        +
      • Gaurav tried to convert one task to an issue and Soham commented on it. +Assigning of issue works after commenting on same.
      • +
      +
    • +
    • Univ exams are there from 2-12 June
    • +
    • Soham is writing documentation for creating aliases and will create a PR.
    • +
    +
  • +
  • Samuel: Setup aliases and explored Kanban board. Will start +implementations soon. +
      +
    • Clarification of priority numbers: 1 is highest, 10 is lowest.
    • +
    +
  • +
  • Abdelrahman: Have final exams in 3 days, have meeting tomorrow with +mentors about project. Exams will over on 13th June.
  • +
  • Kavya: Have explored Golang and authentication, explored about +Obligations but cannot understand the database and endpoints needed. +
      +
    • Gaurav will share how to create obligations and some samples. Discussion on +endpoints will follow later.
    • +
    • Anupam: Will there be separate application for LaaS and OaaS? It should be +different. +
        +
      • Start with authentication using basic auth, later will use tokens.
      • +
      • DB will be PostgreSQL
      • +
      +
    • +
    • Todo: Create project on GitHub and create tasks in the project.
    • +
    +
  • +
+

General

+
    +
  • Updates about 4.3.0 told about Shaheem.
  • +
  • Discussion about community meet.
  • +
  • Suggestion to all is to go through the +FOSSology workflow YouTube video to get +better idea how the tool works.
  • +
+

Follow up

+
    +
  • Gaurav to create issues from GitHub board and Soham and Samuel to comment +on issues to assign.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-06-01/index.html b/docs/2023/minutes/2023-06-01/index.html new file mode 100644 index 0000000000..6f38b1f90e --- /dev/null +++ b/docs/2023/minutes/2023-06-01/index.html @@ -0,0 +1,88 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Welcome to meeting minutes page for GSoC 2023 at FOSSology 01-06-2023.

+

Attendees:

+ +

General

+
    +
  • +

    Kaushlendra Pratap: Had few calls last week with abdel. as he has exams we have decided not to push much now but had a good discussion on how to improve the copyright clutter and deactivation. hope we will provide better solution this year.

    +
  • +
  • +

    Avinal Kumar: Better to give permissions or make licenseasaservice repo public. as other mentors and contributors can also review and provide feedback on codebase.

    +
  • +
  • +

    Gaurav Mishra: Observed that contributors have not updated the GSOC repository with the latest updates.

    +
  • +
  • +

    Shaheem Azmal M MD: As the discussion happened multiple times contributors shall update the GSOC wiki and come to thursday calls.

    +
  • +
+

Updates from contributors

+
    +
  • +

    Sushant Kumar

    +
      +
    • I was not able to join the last call as i had exams. this week i was not able to do much but mentors had asked me to look into SPDX codebase im doing that now
    • +
    • will start working on CycloneDX soon. first i will integrate cyclonedx php library internally.
    • +
    +
  • +
  • +

    Abdelrahman jamal

    +
      +
    • Absent(Have exams till 14th june).
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Last week i was working on authentication and reading about github actions.
    • +
    • Im not able to fork/push to new repository i dont have access i guess.
    • +
    • Gaurav Mishra: Create a issue with tasks you need to work on we will speak with anupam to provide ytou with access
    • +
    • Would like to show a demo on project structure. basic structure is ready.
    • +
    • anupam to make the repository public.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Absent(Have exams till 14th june).
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • +

      Last week i was working on licenses part. Worked on API to get file contents based on uploadid and itemid, also worked on

      +
    • +
    • +

      suggetions by mentors on the same. the second thing i was working on is ablity to provide pagination wjile getting the licenses.

      +
    • +
    • +

      Demo on getting file contents.

      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-06-08/index.html b/docs/2023/minutes/2023-06-08/index.html new file mode 100644 index 0000000000..55312408b4 --- /dev/null +++ b/docs/2023/minutes/2023-06-08/index.html @@ -0,0 +1,71 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Welcome to meeting minutes page for GSoC 2023 at FOSSology 08-06-2023.

+

Attendees:

+ +

General

+
    +
  • +
+

Updates from contributors

+
    +
  • +

    Sushant Kumar

    +
      +
    • Absent(Network issues on contributors end).
    • +
    +
  • +
  • +

    Abdelrahman jamal

    + +
  • +
  • +

    Kavya Shukla

    +
      +
    • I was working on this pull request(https://github.com/fossology/LicenseDb/pull/6) where
    • +
    • I wrote a basic code to add the auto migration json data to the data base
    • +
    • Added the command line argument for the database connection as well as for the license file.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Absent(Have exams till 14th june).
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • +

      Last week i was working on licenses part. Worked on API to remove/add license, also worked on

      +
    • +
    • +

      adding the decisions to file i will be working on next license parts next week.

      +
    • +
    • +

      Demo on getting file contents.

      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-06-15/index.html b/docs/2023/minutes/2023-06-15/index.html new file mode 100644 index 0000000000..25d55b305d --- /dev/null +++ b/docs/2023/minutes/2023-06-15/index.html @@ -0,0 +1,96 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Soham Banerjee

    +
      +
    • Raised two PRs +
        +
      • Endpoint for OpenAPI specification, PR #2474
      • +
      • Endpoint for copyrights for item ids, PR #2475
      • +
      +
    • +
    • Facing PHPUnit error for the new endpoint. Mentors will review PR and provide solutions on the PR.
    • +
    • Will update GSoC Docs.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Working on 6 tasks and demo them: +
        +
      • List data from license table in file decision view.
      • +
      • Setting text, acknowledgement and comment of licenses.
      • +
      • Schedule a bulk scan.
      • +
      • Getting clearing history for an item. Feedback from mentor is to break license list into 2 like done for bulk +history.
      • +
      • Getting bulk scan history.
      • +
      • Handling next/previous item with 3 filters. Feedback from mentor is to check the filter names. +[2 => withLicense, 3 => noClearing]
      • +
      +
    • +
    +
  • +
  • +

    Abdelrahman jamal

    +
      +
    • Final exams have finished. Will start working from this week.
    • +
    • Building DB to train ML models. Wanted to show DB in next meeting.
    • +
    • Did some refactoring of existing code.
    • +
    • Data creation to be discussed in next meeting.
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Was working on licenses endpoints, created a PR.
    • +
    • Added flag to control DB population to prevent errors.
    • +
    • Added error statements while populating DB.
    • +
    • Endpoints to get all licenses, get license by shortname endpoint created. +
        +
      • Added error handling, sort licenses by shortname.
      • +
      • Added models for response.
      • +
      +
    • +
    • Working on endpoint to create new license.
    • +
    • For creating license, suggestion is to remove shortname from the path and read it from body.
    • +
    • Some suggestions have be posted on the PR by mentors and linter is added for Actions.
    • +
    +
  • +
  • +

    Sushant Kumar

    +
      +
    • Was exporting CycloneDX schema, understood some required fields.
    • +
    • Can add files as components in the report.
    • +
    • Was able to generate JSON report in separate repo using static data.
    • +
    • Using schema v1.4 from CycloneDX to validate the generated report.
    • +
    • Will be working on agent implementation in FOSSology.
    • +
    • Concerns from mentors about report size exceeding SPDX report 😅
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-06-22/index.html b/docs/2023/minutes/2023-06-22/index.html new file mode 100644 index 0000000000..ef3f92706b --- /dev/null +++ b/docs/2023/minutes/2023-06-22/index.html @@ -0,0 +1,70 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Sushant Kumar

    +
      +
    • Working on generating the report on fossology.
    • +
    • Currently license part is done and looking into copyright part.
    • +
    • Will take reference from CLIXML Agent.
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Previous week i have worked on two endpoints.
    • +
    • Insert, Delete/Update of the licenses.
    • +
    • will work on search and full-text search.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Working on copyright related endpoints.
    • +
    • Raised PRs and Showed demo.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • +

      Working on highlight license keywords part and license edit part.

      +
    • +
    • +

      Showed demo of lastweeks work.

      +
    • +
    • +

      Abdelrahman jamal

      +
    • +
    • +

      Worked on generating dataset using chatGPT and working on optimizing it.

      +
    • +
    • +

      Dataset needs to be generated from fossology mentors to provide data.

      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-06-29/index.html b/docs/2023/minutes/2023-06-29/index.html new file mode 100644 index 0000000000..85d5526fd8 --- /dev/null +++ b/docs/2023/minutes/2023-06-29/index.html @@ -0,0 +1,62 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Sushant Kumar

    +
      +
    • Done implementation of the CycloneDX agent, PR #2507
    • +
    • Gave demo of the CycloneDX agent report generation.
    • +
    • Suggestion, create bomRef as <upload_id>-<item_id>.
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Added authentication for REST API.
    • +
    • Using username and password for now.
    • +
    • Implemented fuzzy search and full-text search. +
        +
      • Suggestion is to add a query parameter to let user decide to go for fuzzy or full-text search.
      • +
      +
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Working on copyright related endpoints.
    • +
    • Raised PRs and working on changes requested.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Working on jobs and standard acknowledgement endpoints.
    • +
    • Showed demo of the acknowledgements endpoints with insert, update and toggle enable.
    • +
    • Working on merging the license decision endpoints and showed the demo.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-07-06/index.html b/docs/2023/minutes/2023-07-06/index.html new file mode 100644 index 0000000000..a326e5290d --- /dev/null +++ b/docs/2023/minutes/2023-07-06/index.html @@ -0,0 +1,79 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Kavya Shukla

    +
      +
    • Done authentication for endpoints.
    • +
    • Added auth for all endpoints. +
        +
      • Suggestion is to add authentication for non GET endpoints like create license, update, get user, create users, etc.
      • +
      • The endpoints to get all licenses, license by shortname, search license should not have authentication.
      • +
      • Please check response status code and response body should have same code (like 401).
      • +
      • Cleanup the code a bit.
      • +
      +
    • +
    • Merge conflict resolution required for #11.
    • +
    +
  • +
  • +

    Abdelrahman jamal

    +
      +
    • Tried to generate dataset using FOSSology (instead of ChatGPT).
    • +
    • Scanned opensource projects to get data. But needed manual annotation, which is time consuming.
    • +
    • Could use scancode-toolkit instead to annotate copyrights instead.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Focused on updating PR with changes requested.
    • +
    • Working on new endpoints for Customize page. Created GET endpoint, had discussion with mentor and will incorporate the changes suggested.
    • +
    • Worked on Conf endpoints as well. Need review from mentors.
    • +
    • Made the changes to have pagination in Copyright fetch endpoint #2475.
    • +
    • Suggestion from Avinal is to add some more descriptions to the issues created for the REST API project. +
        +
      • Could work more on the title (they currently have only short names).
      • +
      +
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Create endpoints for Standard License Comments and Acknowledgements.
    • +
    • Working on endpoint for Candidate license Merge and Dashboards.
    • +
    • Presented how the current pages looks like in the UI and what different endpoints will be needed to achieve the same results.
    • +
    +
  • +
  • +

    Sushant Kumar

    +
      +
    • Absent.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-07-20/index.html b/docs/2023/minutes/2023-07-20/index.html new file mode 100644 index 0000000000..184b1bb9d1 --- /dev/null +++ b/docs/2023/minutes/2023-07-20/index.html @@ -0,0 +1,87 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Soham Banerjee

    +
      +
    • Worked on update endpoint for customize page.
    • +
    • The GET endpoint now returns consistent type of data.
    • +
    • Will be working on file info page endpoints. +
        +
      • Found a bug in the customize page, integer fields are accepting strings.
      • +
      +
    • +
    +
  • +
  • +

    Sushant Kumar

    +
      +
    • Was working on different ways to run ScanCode with different parameters.
    • +
    • Integrated the changes for running ScanCode via API, demonstrated the same in the meeting. +
        +
      • Worked on copyrights for now. And found API is faster (13 seconds) than CLI (23 seconds) as shown in demo.
      • +
      +
    • +
    • Still need to work on reading output from the Python script and updating DB.
    • +
    • Request from mentor is to push the updated code for ScanCode for recommending updates. +
        +
      • Also, to work on changes requested on CDX PR #2507
      • +
      +
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Updated the meeting minutes.
    • +
    • License is almost finished, will be focusing on Obligations.
    • +
    • Work on audit is not done, but test cases is done for other endpoints.
    • +
    • Can discuss on E2E testing in next call.
    • +
    +
  • +
  • +

    Abdelrahman jamal

    +
      +
    • Created a labled result for FOSSology's repo. The copyrights are color coded based on +True Positive (green), False Positive (red), Different lang (blue), not actual copyright (grey), confusing (orange).
    • +
    • Used this data (14k +ve and 5K -ve) to train classifiers. Started with tf-idf and trained SVM, Random Forest, Navie Bayes. +
        +
      • NB can be told to have certial level of confidence before classifying a string.
      • +
      +
    • +
    • Results are very good, >95% accuracy. Higher recall is aimed on identifying +ve copyrights.
    • +
    • Tested out Bert, but is slow and not very performant given the amount of data.
    • +
    • More data provided by the mentors.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Working on unlinking folders endpoints.
    • +
    • Updating existing PRs.
    • +
    • Next steps for the project will be to write testcases and migrate to v2 of API.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-08-10/index.html b/docs/2023/minutes/2023-08-10/index.html new file mode 100644 index 0000000000..b9ee7b97a7 --- /dev/null +++ b/docs/2023/minutes/2023-08-10/index.html @@ -0,0 +1,57 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Soham Banerjee

    +
      +
    • Worked on obligations end-point.
    • +
    • Created endpoints to list all obligations and obligation by ID.
    • +
    • Had questions about IPRA, Email/URL/Author, Keyword and ECC endpoints. +
        +
      • Will work on these endpoints after finishing the obligations endpoints.
      • +
      +
    • +
    • Will go through v2 documentations and contact on Slack if needed.
    • +
    +
  • +
  • +

    Abdelrahman jamal

    +
      +
    • Experimented with different algorithms. Best one so far is with 0.16% error on 16,377 entities.
    • +
    • More aggrisive optimization can achieve 0.03%
    • +
    • Received new data from mentors last week, 26K unique rows. 0.5% error on new test data from best model.
    • +
    • Most errors are due to wrong data annotation.
    • +
    • 2 copyrights wrongly labled on copyrights from Linux kernel, taken from a paper.
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Working on Audit for license changes. There is a separate table to hold the changes and separate to gerenrate the changelogs.
    • +
    • Audit logs can be fetched using a GET query and changes can be fetched using the changelog id.
    • +
    • Had question about candidate licenses. Mentors explained in brief, will continue the discussion in project specific call later.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-08-17/index.html b/docs/2023/minutes/2023-08-17/index.html new file mode 100644 index 0000000000..cdb9660ab0 --- /dev/null +++ b/docs/2023/minutes/2023-08-17/index.html @@ -0,0 +1,76 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Abdelrahman Jamal

    +
      +
    • Completed project documentation for GSoC model.
    • +
    • Looking for low hanging fruits.
    • +
    • Found specific cases like copyright <name> which is missidentified. NER can help.
    • +
    • Will be working for edge cases using NER. But pretrained models are not accurate enough in detecting name and orgs.
    • +
    • Looking for smaller pre-trained models to use.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Working on Obligation endpoints. Some changes suggested by mentors on endpoint name.
    • +
    • GET api is working, working on DELETE. Will continue work on create and edit endpoints.
    • +
    • Next endpoints to work on will be IPRA/Keyword, etc.
    • +
    • Following the v2 guidelines for new endpoints.
    • +
    +
  • +
  • +

    Sushant Kumar

    +
      +
    • Raised PR for ScanCode improvements #2569.
    • +
    • The idea is to invoke ScanCode API only once for the entire upload.
    • +
    • Working for final report available here.
    • +
    +
  • +
  • +

    Kavya Shukla

    +
      +
    • Made changes on Audit, continuing work on Obligations.
    • +
    • Showed demo of updated the audit and changes endpoint.
    • +
    • Created data structures for obligations, had questions about the endpoints +
        +
      • Following endpoints will be required for obligation: +
          +
        1. Create Obligation (with optional list of associated licenses).
        2. +
        3. Edit the obligation
        4. +
        5. Delete the obligation
        6. +
        7. Add new licenses to associated license list of the obligation.
        8. +
        9. Remove licenses from associated license list of the obligation.
        10. +
        +
      • +
      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/minutes/2023-08-24/index.html b/docs/2023/minutes/2023-08-24/index.html new file mode 100644 index 0000000000..91bcd4631c --- /dev/null +++ b/docs/2023/minutes/2023-08-24/index.html @@ -0,0 +1,67 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

Attendees:

+ +

Updates from contributors

+
    +
  • +

    Kavya Shukla

    +
      +
    • Updated the Obligation endpoints, added the foreign keys using ID.
    • +
    • Updated the primary key of licenses from shortname to an integer ID. Same +is updated for the foreign key usage.
    • +
    • Working on final evaluation documents.
    • +
    • Seems like user_id is passed to the endpoint and not auto-generated by DB. +Needs to be updated.
    • +
    +
  • +
  • +

    Soham Banerjee

    +
      +
    • Created /author endpoints similar to /copyright endpoints. Demoed the +same in call.
    • +
    • Worked on final evaluation documentation and submitted the same.
    • +
    +
  • +
  • +

    Samuel Dushimimana

    +
      +
    • Created PR to export obligations as CSV.
    • +
    • Added PR to support REST API V2. Explained and showed the demo for the same.
    • +
    • Suggestion from mentor to provide the link to original comment about the V2 +changes in the new issue created.
    • +
    +
  • +
  • +

    Abdelrahman Jamal

    +
      +
    • Worked on recognizing names and organization names. Showed sample run of +tagging human names and org names. Displayed some edge cases.
    • +
    • Will be working on improving the tagging next week.
    • +
    • Tried to classify copyrights by replacing names of people with "person" and +org names with "ORG". Saw slight improvements but with have some edge cases.
    • +
    • With the replacements, false negatives have reduced a lot.
    • +
    • Experimenting with different language models of relatively small size.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/index.html b/docs/2023/rest/index.html new file mode 100644 index 0000000000..ac326fa2b4 --- /dev/null +++ b/docs/2023/rest/index.html @@ -0,0 +1,30 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-05-11/index.html b/docs/2023/rest/updates/samuel/2023-05-11/index.html new file mode 100644 index 0000000000..22c6eca66e --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-05-11/index.html @@ -0,0 +1,43 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

+

Meeting 1

+

(May,11,2023)

+

This was the first meeting of community bonding period in GSoC'23. In this the +Mentors and the contributors were introduced.

+

Minutes of Meeting

+
    +
  • Documentation and its +repository was explained to +track the updates. For reference we can look upon previous year documentation.
  • +
  • Timings of the each of the project meet and weekly meet was decided.
  • +
+

During week 1

+

(May 12,2023- May 17,2023)

+
    +
  • Passed through the task list of the REST APIs that need implementation.
  • +
  • I had a discussion with my colleague soham4abc about how we shall manage our tasks using Trello.
  • +
+

Meeting 2

+

(May 18,2023)

+

Basic discussion about the project previous week work and general updates.

+

During week 2

+

(May 19,2023- May 24,2023)

+
    +
  • Implemented the aliases for running the project easier and simpler for development.
  • +
+

Meeting 3

+

(May 25,2023)

+

Minutes of Meeting

+

Basic discussion about the project previous week work and general updates.

+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-06-01/index.html b/docs/2023/rest/updates/samuel/2023-06-01/index.html new file mode 100644 index 0000000000..62c815526a --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-06-01/index.html @@ -0,0 +1,29 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Activities

+
    +
  • Tested and confirmed the REST API to add the pagination feature on the existing API /uploads/{id}/licenses: #2430 .
  • +
  • Added the new REST API to get the contents of a specific file given the upload's id and the item's id: #2456.
  • +
+

SOME SCREENSHOTS

+

1. ADD PAGINATION FEATURE ON THE API /uploads/{id}/licenses

+

add-pagination-feature

+

1. GET FILE CONTENTS API /uploads/{id}/item/{id}/view

+

get-file-contents

+

Next Week's Expectations

+
    +
  • Updated the GetFile contents API based on the mentors' feedback.
  • +
  • Add the REST API for retrieving the File Details: Scanner results, edited results with text, etc.
  • +
  • Add the REST API to Get Bulk History, clearing history, bulk scan schedule and right left with 3 filters. (GET & SET)
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-06-08/index.html b/docs/2023/rest/updates/samuel/2023-06-08/index.html new file mode 100644 index 0000000000..7881d4a117 --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-06-08/index.html @@ -0,0 +1,29 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Activities

+
    +
  • Added the REST API to set the clearing decision for a particular uploadtree: #2460
  • +
  • Added the REST API to add the new main license for the upload: #2462
  • +
+

SOME SCREENSHOTS

+

1. SET CLEARING DECISION API /uploads/10/items/{itemId}/clearing-decision

+

set-clearing-decision

+

2. ADD MAIN LICENSE API /uploads/{id}/mainlicense

+

add-main-license

+

Next Week's Expectations

+
    +
  • Updated the Set Clearing decision & Add Main License API API based on the mentors' feedback.
  • +
  • Add the REST API for retrieving the File Details: Scanner results, edited results with text, etc.
  • +
  • Add the REST API to Get Bulk History, clearing history, bulk scan schedule and right left with 3 filters. (GET & SET)
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-06-15/index.html b/docs/2023/rest/updates/samuel/2023-06-15/index.html new file mode 100644 index 0000000000..14404e4d50 --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-06-15/index.html @@ -0,0 +1,45 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Activities

+
    +
  • Added the REST API to remove a particular main license from the upload: #2463
  • +
  • Added the REST API to retrieve all the main licenses assigned on a particular upload: #2465
  • +
  • Added the REST API to add new license decision for an item: #2466
  • +
  • Added the REST API to delete a specific license decision assigned on an item: #2469
  • +
  • Added the REST API to list the license decisions for a specific item: #2470
  • +
  • Added the REST API to update the clearing info (License text, acknowledgement & Comment) for a specific license decision on the item: #2471
  • +
  • Added the REST API to retrieve the clearing history for a specific item: #2477
  • +
+

Some Screenshots

+

1. Remove main license API /uploads/{id}/licenses/{licenseId}/main

+

delete-main-license

+

2. Get main licenses API /uploads/{id}/licenses/main

+

get-main-licenses

+

3. Add new license decision API /uploads/{id}/items/{itemId}/licenses

+

add-license-decision

+

4. Delete License decision API /uploads/{id}/items/{itemId}/licenses/{licenseId}

+

delete-license-decision

+

5. Get all license decisions for an item API /uploads/{id}/items/{itemId}/licenses

+

get-license-decisions

+

6. Update the clearing info API /uploads/{id}/items/{itemId}/licenses

+

update-license-decision

+

7. Get clearing history API /uploads/{id}/items/{itemId}/clearing_history

+

get-clearing-history

+

Next week's expectations

+
    +
  • Add the PR for the REST API to schedule the bulk scan.
  • +
  • Add the PR for the REST API to handle the three-pointers functionality.
  • +
  • Add the REST API to retrieve the positions for the highlighting the content of the file.
  • +
  • Add the REST API for the Tree view: Reuse Summary, Scanner Details (GET & for filter).
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-06-22/index.html b/docs/2023/rest/updates/samuel/2023-06-22/index.html new file mode 100644 index 0000000000..58f38efeb4 --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-06-22/index.html @@ -0,0 +1,49 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Activities

+
    +
  • Added the REST API to schedule the bulk scan: #2483
  • +
  • Added the REST API to handle the three-pointers functionality: #2480
  • +
  • Added the REST API to retrieve the bulk history of the upload & item: #2481
  • +
  • Added the REST API to get the clearing progress status of the upload & item: #2494
  • +
  • Added the REST API to retrieve the positions that should be highlighted in the contents of the file: #2484
  • +
  • Added the REST API to get the license tree-view of the upload and the item: #2492
  • +
+

Some Screenshots

+

1. Schedule bulk scan API /uploads/{id}/items/{itemId}/bulk-scan

+

schedule-bulk-scan

+

2. Three-pointers API /uploads/{id}/items/{itemId}/prev-next

+
Default
+

three-pointers-default

+
With the withLicenses parameter
+

three-pointers-with-licenses

+
With the noClearing parameter
+

three-pointers-no-clearing

+

3. Bulk history API /uploads/{id}/items/{itemId}/bulk-scan

+

bulk-history

+

4. Clearing progress API /uploads/{id}/items/{itemId}/clearing-progress

+

clearing-progress

+

5. Highlight positions API /uploads/{id}/items/{itemId}/highlight

+

highlight-positions

+

6. License tree-view API /uploads/{id}/items/{itemId}/tree/view

+

license-tree-view

+

Next week's expectations

+
    +
  • Add and test the REST API to get licenses histogram for an upload.
  • +
  • Add and test the REST API to get edited licenses list for an upload
  • +
  • Add and test the REST API to get the licenses count summary API
  • +
  • Add and test the REST API to get licenses reuse summary API
  • +
  • Add and test the REST API to get all agents for the upload.
  • +
  • Add and test the REST API To get the all agents revisions.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-06-29/index.html b/docs/2023/rest/updates/samuel/2023-06-29/index.html new file mode 100644 index 0000000000..91bfa38000 --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-06-29/index.html @@ -0,0 +1,42 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Activities

+
    +
  • Added the REST API to get the clearing progress information for the upload: #2494
  • +
  • Added the REST API to get a list of the scanned licenses for the upload: #2495
  • +
  • Added the REST API to get the licenses histogram for the upload: #2497
  • +
  • Added the REST API to get the list of the edited licenses for the upload: #2498
  • +
  • Added the REST API to get the licenses count summary: #2499
  • +
  • Added the REST API to get the licenses reuse summary list: #2501
  • +
+

Some Screenshots

+

1. Clearing progress API /uploads/{id}/clearing-progress

+

clearing-progress

+

2. Scanned licenses API /uploads/{id}/licenses/scanned

+

scanned-licenses

+

3. Licenses histogram API /uploads/{id}/licenses/histogram

+

licenses-histogram

+

4. Edited licenses API /uploads/{id}/licenses/edited

+

edited-licenses

+

5. Licenses count summary API /uploads/{id}/licenses/count-summary

+

licenses-count-summary

+

6. Licenses reuse summary API /uploads/{id}/licenses/reuse-summary

+

licenses-reuse-summary

+

Next week's expectations

+
    +
  • Add the REST API to get the agents' list for the upload.
  • +
  • Add the REST API to get the agents revision for the upload.
  • +
  • Add the REST API that merges the Add, Edit & delete requests for the license decision.
  • +
  • Add the REST APIs for managing the Add, Edit, and enable requests for the acknowledgements.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-07-06/index.html b/docs/2023/rest/updates/samuel/2023-07-06/index.html new file mode 100644 index 0000000000..744d16a7f5 --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-07-06/index.html @@ -0,0 +1,45 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Activities

+
    +
  • Added the REST API to get all the agents for the upload: #2502
  • +
  • Added the REST API to get all the agents revisions for the upload: #2506
  • +
  • Created the REST API that merges together the request of editing, creating and deleting license decisions: #2509
  • +
  • Added the REST API to get all the licenses admin-acknowledgements: #2512
  • +
  • Added the REST API to Add, Edit & toggle admin license acknowledgement : #2516
  • +
  • Added the REST API to retrieve all the standard comments: #2517
  • +
+

Some Screenshots

+

1. Get all agents for the upload API /uploads/{id}/agents

+

get-all-agents

+

2. Get all agents revisions for the upload API /uploads/{id}/agents/revision

+

get-all-agents-revision

+

3. Create, Edit and Delete License Decision API /uploads/{id}/item/{itemId}/licenses

+

crud-license-decision-req +crud-license-decision-res

+

4. Get all licenses' Admin-acknowledgements API /licenses/adminacknowlegments

+

get-all-admin-acknowledgements

+

5. Crete, Edit and Toggle Admin-acknowledgements /licenses/adminacknowlegments

+

crud-admin-ack-req +crud-admin-ack-res

+

6. Get all standard comments /licenses/stdcomments

+

get-all-stdcomments

+

Next week's expectations

+
    +
  • Add the REST API to Add, Edit & toggle standard-license comment.
  • +
  • Add the REST API to search & suggest license from the reference text.
  • +
  • Add the REST API very license as new or a variant of another license.
  • +
  • Add the REST API to merge the license into an existing one.
  • +
  • Add the REST APIs for Admin Dashboard overview.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-07-13/index.html b/docs/2023/rest/updates/samuel/2023-07-13/index.html new file mode 100644 index 0000000000..74afc91c5e --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-07-13/index.html @@ -0,0 +1,38 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Activities

+
    +
  • Added the REST API to add, edit and toggle the standard license comment: #2518
  • +
  • Added the REST API to search and suggest license from the given reference text: #2524
  • +
  • Created the REST API to verify a license as new or a variant: #2528
  • +
  • Added the REST API to merge a license into an existing one: #2529
  • +
+

Some Screenshots

+

1. Add, Edit and Toggle Standard License Comment API /licenses/stdcomments

+

crud-stdcomments-req +crud-stdcomments-res

+

2. Search and Suggest License API /licenses/suggest

+

suggest-license

+

3. Verify a license as new or a variant API /licenses/verify

+

verify-as-new +verify-as-variant

+

4. Merge a license into an existing one API /licenses/merge

+

merge-license

+

Next week's expectations

+
    +
  • Get the database contents for the dashboard overview.
  • +
  • Get database metrics for the dashboard overview.
  • +
  • Get active queries for the dashboard overview.
  • +
  • Get disk space usage for the dashboard overview.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-07-20/index.html b/docs/2023/rest/updates/samuel/2023-07-20/index.html new file mode 100644 index 0000000000..8a04cab22e --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-07-20/index.html @@ -0,0 +1,36 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Activities

+
    +
  • Added the REST API to get the database contents for the dashboard overview: #2530
  • +
  • Added the REST API to get the database metrics for the dashboard overview: #2532
  • +
  • Created the REST API to get the active queries for the dashboard overview: #2533
  • +
  • Added the REST API to get the disk space usage for the dashboard overview: #2534
  • +
+

Some Screenshots

+

1. Get the database contents for the dashboard overview API /overview/database/contents

+

get-database-contents

+

2. Get the database metrics for the dashboard overview API /overview/database/metrics

+

get-database-metrics

+

3. Get the active queries for the dashboard overview API /overview/database/queries

+

get-active-queries

+

4. Get the disk space usage for the dashboard overview API /overview/disk/usage

+

get-disk-usage

+

Next week's expectations

+
    +
  • Add the REST API to get the PHP-Info for the dashboard overview.
  • +
  • Add the REST API to get all server jobs for the dashboard overview.
  • +
  • Add the REST API to get the summary statistics for all jobs.
  • +
  • Add the REST API to get the scheduler options for a given operation.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-07-27/index.html b/docs/2023/rest/updates/samuel/2023-07-27/index.html new file mode 100644 index 0000000000..8cd9b8747d --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-07-27/index.html @@ -0,0 +1,32 @@ + + + + + +Week 9 | GSoC projects at FOSSology + + + + + +

Week 9

Activities

+
    +
  • Added the REST API to get the PHP-Info for the dashboard overview: #2535
  • +
  • Added the REST API to get the server jobs for the Admin Dashboard: #2536
  • +
  • Added the REST API to get the summary statistics for all jobs: #2537
  • +
+

Some Screenshots

+

1. Get the PHP-Info for the dashboard overview API /overview/info/php

+

get-php-info

+

2. Get the server jobs for the Admin Dashboard API /jobs/dashboard

+

get-server-jobs

+

3. Get the summary statistics for all jobs API /jobs/dashboard/statistics

+

get-summary-statistics

+

Next week's expectations

+
    +
  • Add the REST API to retrieve all the scheduler options for a given operation.
  • +
  • Add the REST API to run the scheduler based on the given operation.
  • +
  • Add the REST API to get removable folder contents.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-08-03/index.html b/docs/2023/rest/updates/samuel/2023-08-03/index.html new file mode 100644 index 0000000000..97a2609e0f --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-08-03/index.html @@ -0,0 +1,33 @@ + + + + + +Week 10 | GSoC projects at FOSSology + + + + + +

Week 10

Activities

+
    +
  • Added the REST API to get the scheduler options for a given operation: #2538
  • +
  • Added the REST API to run the scheduler based on the given operation: #2539
  • +
  • Added the REST API to get the removable folder contents: #2551
  • +
+

Some Screenshots

+

1. Get the scheduler options for a given operation API /jobs/scheduler/operation/{operationName}

+

get-scheduler-options

+

2. Run the scheduler based on the given operation API /jobs/scheduler/operation/run

+

run-scheduler-operation +run-scheduler-operation-1

+

3. Get the removable folder contents API /folders/{id}/contents/removable

+

get-removable-folder-contents

+

Next week's expectations

+
    +
  • Add the REST API to unlink the folder contents.
  • +
  • Add the REST API to Get all the contents of a specified folder.
  • +
  • Add the REST API to export licenses-list as CSV.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-08-10/index.html b/docs/2023/rest/updates/samuel/2023-08-10/index.html new file mode 100644 index 0000000000..3abd7c178c --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-08-10/index.html @@ -0,0 +1,32 @@ + + + + + +Week 11 | GSoC projects at FOSSology + + + + + +

Week 11

Activities

+
    +
  • Added the REST API to unlink the folder contents: #2552
  • +
  • Added the REST API to get all contents of a specific folder: #2555
  • +
  • Added the REST API to export licenses-list as CSV: #2562
  • +
+

Some Screenshots

+ +

unlink-folder-contents

+

2. Get all contents of a specific folder API /folders/{folderId}/contents

+

get-folder-contents

+

3. Export licenses-list as CSV /license/export

+

export-licenses-list

+

Next week's expectations

+
    +
  • Add the REST API to import obligation list from CSV.
  • +
  • Add the REST API to export obligation list as CSV.
  • +
  • Enhance the FOSSology API to support Multiple versions (V1 & V2).
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/samuel/2023-08-17/index.html b/docs/2023/rest/updates/samuel/2023-08-17/index.html new file mode 100644 index 0000000000..2050945b29 --- /dev/null +++ b/docs/2023/rest/updates/samuel/2023-08-17/index.html @@ -0,0 +1,32 @@ + + + + + +Week 12 | GSoC projects at FOSSology + + + + + +

Week 12

Activities

+
    +
  • Added the REST API to Import the obligation list from CSV: #2563
  • +
  • Added the REST API to Export the obligation list as CSV #2574
  • +
  • Enhanced the FOSSology API configurations to support V1 Rest APIs: #2576
  • +
+

Some Screenshots

+

1. Import the obligation list from CSV API /license/obligation/import-csv

+

import-obligation-list

+

2. Export the obligation list as CSV API /license/obligation/export-csv

+

export-obligation-list

+

3. FOSSology API configurations to support V1 Rest APIs

+

How to test

+

1. Add this block of code in the getInfo method from InfoController:

+

update-get-info

+

2. Call the Version 2 API

+

call-version2-api

+

3. Call the Version 1 API

+

call-version1-api

+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-05-11/index.html b/docs/2023/rest/updates/soham/2023-05-11/index.html new file mode 100644 index 0000000000..76d5f28c0e --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-05-11/index.html @@ -0,0 +1,42 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

+

Meeting 1

+

(May,11,2023)

+

This was the first meeting of community bonding period in GSoC'23. General introduction was done in this meeting and the schedule for weekly meetings was decided.

+

Minutes of Meeting

+
    +
  • Documentation and its +repository was explained to +track the updates. For reference we can look upon previous year documentation.
  • +
  • Timings of the each of the project meet and weekly meet was decided.
  • +
+

During week 1

+

(May 12,2023- May 17,2023)

+
    +
  • Listed down and discussed the required endpoints with the mentors.
  • +
  • Tried listing down the endpoints in Trello with my fellow contributor Samuel.
  • +
+

Meeting 2

+

(May 18,2023)

+

Discussion about implementing GitHub projects to assign ourselves issues.

+

During week 2

+

(May 19,2023- May 24,2023)

+
    +
  • Implemented the aliases for the ease of recompilation during development procedure.
  • +
+

Meeting 3

+

(May 25,2023)

+

Minutes of Meeting

+

Basic discussion about the project previous week work and general updates.

+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-06-01/index.html b/docs/2023/rest/updates/soham/2023-06-01/index.html new file mode 100644 index 0000000000..cd004e2589 --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-06-01/index.html @@ -0,0 +1,25 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-06-08/index.html b/docs/2023/rest/updates/soham/2023-06-08/index.html new file mode 100644 index 0000000000..ffe26dc1e4 --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-06-08/index.html @@ -0,0 +1,32 @@ + + + + + +Week 2 & 3 | GSoC projects at FOSSology + + + + + +

Week 2 & 3

Activities

+
    +
  • Issued Pull Request for the file copyright info. GET /file/upload/{UploadId}/item/{ItemId}/copyrights: #2475.
  • +
  • Issued Pull Request for the file copyright delete. DELETE /file/upload/<uploadId>/item/<ItemId>/copyright/<Hash>: #2478.
  • +
  • Issued Pull Request for the file copyright update. PUT /file/upload/{Upload_id}/item/{Item_id}/copyright/{Copyright_hash}: #2479.
  • +
+

Screenshots

+

1. Get copyrights for file response /file/upload/{UploadId}/item/{ItemId}/copyrights

+

get-copyrights-file

+

2. Update copyrights for file response /file/upload/{Upload_id}/item/{Item_id}/copyright/{Copyright_hash}

+

update-copyrights-file

+

3. Delete copyrights for file response /file/upload/<uploadId>/item/<ItemId>/copyright/<Hash>

+

delete-copyrights-file

+

Next Week's Expectations

+
    +
  • Fix failing unit tests for the newly added endpoints.
  • +
  • Discuss with mentors how to avoid the possible Merge conflicts resulted by redundancy of PRs.
  • +
  • Move on to the next module of API development.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-06-27/index.html b/docs/2023/rest/updates/soham/2023-06-27/index.html new file mode 100644 index 0000000000..869c86ec4b --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-06-27/index.html @@ -0,0 +1,38 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Activities

+
    +
  • Issued Pull Request for restoring file copyright. PATCH file/upload/{uploadId}/item/{itemid}/copyright{copyrightHash}: #2486.
  • +
  • Issued Pull Request for fetching inactive copyright details for a file. GET /file/upload/{UploadId}/item/{ItemId}/copyrights/inactive: #2485.
  • +
  • Issued Pull Request for the file info . GET /file/upload/{UploadId}/item/{ItemId}/info: #2496.
  • +
  • Issued Pull Request for total number of copyrights for a file . GET /file/upload/{UploadId}/item/{ItemId}/totalcopyrights: #2488.
  • +
  • Issued Pull Request for conf info for upload. GET /file/upload/{UploadId}/item/{UploadId}/conf: #2505.
  • +
+

Screenshots

+

1. Restore file copyrights file/upload/{uploadId}/item/{itemid}/copyright{copyrightHash}

+

restore-copyrights-file

+

2. Get inactive copyrights for a file /file/upload/{UploadId}/item/{ItemId}/copyrights/inactive

+

get-intactive-copyrights-file

+

3. Get file info /file/upload/{UploadId}/item/{ItemId}/info

+

file-info

+

4. Get total number of copyrights for a file /file/upload/{UploadId}/item/{ItemId}/totalcopyrights

+

total-number-copyrights

+

5. Get conf info for upload /file/upload/{UploadId}/item/{UploadId}/conf

+

conf-info

+

Next Week's Expectations

+
    +
  • Reach out to mentors regarding the improvement of the response for the submitted APIs.
  • +
  • Review and make changes according to the mentor's suggestions.
  • +
  • Move on to the next module of API development.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-07-05/index.html b/docs/2023/rest/updates/soham/2023-07-05/index.html new file mode 100644 index 0000000000..fd4fb0cc8f --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-07-05/index.html @@ -0,0 +1,29 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Activities

+
    +
  • Updated Pull Request to include pagination feature. GET uploads/{uploadId}/item/{itemid}/copyrights: #2475.
  • +
  • Issued Pull Request for fetching Customise page data. GET /file/upload/{UploadId}/item/{ItemId}/copyrights/inactive: #2520.
  • +
+

Screenshots

+

1. Pagination header in getInfo endpoint for copyrights upload/{uploadId}/item/{itemid}/copyrights

+

header-copyrights-file

+

2. Get Customise page data /customise

+

get-customise

+

Next Week's Expectations

+
    +
  • Modify the existing endpoints according to the suggestions from mentors
  • +
  • Focus on Midterm Evaluation for the GSOC
  • +
  • Keeping an target of making existing PRs to ready status by this week.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-07-16/index.html b/docs/2023/rest/updates/soham/2023-07-16/index.html new file mode 100644 index 0000000000..5057045633 --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-07-16/index.html @@ -0,0 +1,34 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Activities

+
    +
  • Updated Pull Request for getting total copyrights. Included query parameters to get seperate response for active and inactive copyrights. GET uploads/{uploadId}/item/{itemid}/totalcopyrights?status=active/inactive: #2488.
  • +
  • Updated Pull Request to get conf info from the server. GET /uploads/{id}/conf: #2505.
  • +
  • Updated Pull Request to get conf info from the server. GET /uploads/{id}/conf: #2505.
  • +
  • Added reformatted response for the customise page data endpoint. GET /customise
  • +
+

Screenshots

+

1. Response for total copyrights uploads/{uploadId}/item/{itemid}/totalcopyrights?status=active/inactive

+

total-copyrights-response

+

2. Conf info response /uploads/{id}/conf

+

conf-response

+

3. New customise endpoint response /customise

+

customise-response

+

Next Week's Expectations

+
    +
  • Modify the existing endpoints according to the suggestions from mentors
  • +
  • Start developing Update endpoints as for the existing GET endpoints
  • +
  • fix existing bugs from some of the endpoints.
  • +
  • Discuss with the mentors on the priority of the upcoming endpoints.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-07-28/index.html b/docs/2023/rest/updates/soham/2023-07-28/index.html new file mode 100644 index 0000000000..1edb40e054 --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-07-28/index.html @@ -0,0 +1,33 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Activities

+
    +
  • GET request endpoint to recieve the banner message. GET /customise/banner: #2553.
  • +
  • Update endpoint for Conf data updation. PUT /uploads/{UploadId}/conf: #2549.
  • +
  • Updated Pull Request to get conf info from the server. GET /uploads/{id}/conf: #2505.
  • +
  • Update endpoint for Customise data. PUT /customise: #2545.
  • +
+

Screenshots

+

1. Response for Banner message /customise/banner

+

banner-message

+

2. Conf Update endpoint /uploads/{id}/conf

+

conf-update

+

3. Update customise data /customise

+

customise-update

+

Next Week's Expectations

+
    +
  • Update the existing update endpoints to eliminate sql injection possiblities
  • +
  • Start working on the obligations endpoints.
  • +
  • Discuss with the mentors on the priority of the upcoming endpoints.
  • +
+ + \ No newline at end of file diff --git a/docs/2023/rest/updates/soham/2023-08-05/index.html b/docs/2023/rest/updates/soham/2023-08-05/index.html new file mode 100644 index 0000000000..c4249efc5c --- /dev/null +++ b/docs/2023/rest/updates/soham/2023-08-05/index.html @@ -0,0 +1,29 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

Activities

+
    +
  • GET request endpoint to Obligations list. GET /obligations/list: #2559.
  • +
  • GET request endpoint to recieve details of a particular obligation. GET /obligations/{id}: #2564.
  • +
+

Screenshots

+

1. Response for Obligations list/obligations/list

+

obligations-list

+

2. Response for obligation details /obligations/{id}

+

obligations-details

+

Next Week's Expectations

+
    +
  • Start with Create, Update and Delete requests for the Obligations
  • +
  • Disscuss with mentors for bringing up the version 2 of APIs
  • +
  • Look over and discuss with the community to find any further API requirements.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/GSoC-projects/index.html b/docs/2024/GSoC-projects/index.html new file mode 100644 index 0000000000..a08b30071c --- /dev/null +++ b/docs/2024/GSoC-projects/index.html @@ -0,0 +1,260 @@ + + + + + +Google Summer of Code Proposals 2024 | GSoC projects at FOSSology + + + + + +

Google Summer of Code Proposals 2024

Welcome to the main page for all GSoC 2024 related information.

+ +

Intro

+

We from the fossology project would like to apply for GSoC 2024. Please see two +main resources for finding out more FOSSology in general:

+ +

Meetings: Checkout the Meetings table

+

Interested in Application? - Getting Grip

+

If you are interested in an application - great! We encourage your application. +So the question is how to get started with the topic, just a few points:

+ +

Examples from past programs

+

In 2020, we were awarded seven slots, please see here what was the result of it:

+ +

Also - very much fun - There are some YouTube videos created:

+ +

In 2021, the GSoC program awarded the fossology project with 7 slots. It was a +lot bigger and a lot of fun for 2021, a dedicated page has been set up. Please +see the GSoC works here.

+

From this page you can also get an idea about the work being carried out: check +the weekly reporting, for example for the UI project.

+

You can check out our GSoC 2022 projects with 8 slots. The dedicated page can be +found here.

+

The recent participation in GSoC 2023 also came to an end. You can check out the +projects with 5 slots at the dedicated page for GSoC 2023.

+

Mentors

+

Interested in becoming a mentor? Please reach out to us!

+

Proposals so far:

+ +

Topic Proposals

+

Please reach out to us to add more proposals for GSoC 2024.

+

Currently, discussion happening on +https://github.com/fossology/fossology/discussions/2663

+

Topic Proposals from 2024

+
    +
  1. Improving FOSSology CI scanner image
  2. +
  3. Support text phrases and bulk based scanning for MONK a like +agent
  4. +
  5. SPDX license expression support
  6. +
  7. Overhauling scheduler design
  8. +
  9. Debian packaging for Debian +repository
  10. +
  11. REST API improvements
  12. +
  13. New Artificial Intelligence based copyright and license scanner +agent
  14. +
  15. Support SPDX 3.0 reports
  16. +
+

Improving FOSSology CI scanner image

+

Goal: Enhancing current scanner image with new reports and features

+

As a fun project, FOSSology started combining scanners in a simple and small +Docker image which can be run on CI providers. The image is currently capable of +understanding build environment (GitLab/GitHub Actions/Travis) and use their +API's to fetch diff of a branch or scan the complete repo. The capabilities of +image include license scanning with Nomos and ojo scanners, copyright and +keyword scanning with respective scanners. The image makes use of a Python +script to perform all the tasks.

+
    +
  1. The integration with GitHub Actions can be improved by reporting line number +where a license violation is found.
  2. +
  3. Allowing user to provide a different list of Keywords for scanning (currently +stored at /usr/local/share/fossology/keyword/agent/keyword.conf).
  4. +
  5. Improving on whitelist format +with feature to provide it from other sources, currently it is read from a +file which is expected to be in the root of repo being scanned.
  6. +
  7. Ability to download a dependency for scan (path provided at pipeline +trigger).
  8. +
+

Additionally, the JSON output of nomos needs to be enhanced providing highlight +and line information in the output.

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory**
Fun/Periphial***
Core Development**
Project Infrastructure***
Project sizeLarge
Preferred contributorStudent/Professional
Skills neededDocker, Python
Contact@GMishx @shaheemazmalmmd
+

Support text phrases and bulk based scanning for MONK a like agent

+

Goal: Adding text phrases from UI to database and use existing bulk phrases +and provide ability to scan them using MONK and identify files if the match is +100%.

+

FLOW :

+
    +
  • Create a UI Where user can add multiple text phrases associated with license +(FROM FOSSology License Database).
  • +
  • Use existing bulk phrases table from database.
  • +
  • Create a new agent like existing MONK agent which not only identifies the +matches but also decides the files.
  • +
  • Test cases needs to be provided as well.
  • +
+
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Periphial**
Core Development*
Project Infrastructure**
Project sizeMedium
Preferred contributorStudent/professional
Skills neededPHP, C++
Contact@GMishx @shaheemazmalmmd
+

SPDX license expression support

+

Goal: Support SPDX license expression detection and reporting

+
    +
  1. Support SPDX license expressions in FOSSology such as +MIT AND (GPL-2.0-only OR BSD-2-Clause).
  2. +
  3. Differentiate SPDX licenses with exceptions. FOSSology currently stores +license exceptions as licenses.
  4. +
  5. Scanning SPDX Expressions with ojo as step 1.
  6. +
  7. UI components to create and see license expressions in file clearing page.
  8. +
  9. Updating reports to export the expressions correctly.
  10. +
+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory**
Fun/Periphial***
Core Development***
Project Infrastructure***
Project sizeLarge
Preferred contributor-
Skills neededPHP, C/C++
Contact@GMishx @shaheemazmalmmd
+

Overhauling scheduler design

+

Goal: Improving FOSSology scheduler or replacing with OTS solution

+

The existing scheduler design is causing new issues which need to be addressed. +Moreover, existing scheduler design is not touched in years.

+

Concerning points

+
    +
  1. The scheduler is written in C which makes it next to impossible to find cause +of a failure.
  2. +
  3. The C language does not support exception handling out of the box. It makes +code less readable and prone to errors.
  4. +
  5. The linear queue design causes issue when there should be only one instance +of an agent running for an upload, but overall the agent is not mutually +exclusive. +
    +

    For example, if the monkbulk has a limit set to 1, it should be implied for +only single upload. But with linear queue, this monkbulk job will block all +other agents from executing even when they are not effected by the results +of monkbulk.

    +

    This essentially makes the agent mutually exclusive even though, there is a +special flag EXCLUSIVE for the very same purpose: +https://github.com/fossology/fossology/wiki/Job-Scheduler#agentconfs

    +
    +
  6. +
+
    +
  • One idea on redesigning the queue, it can be broken into buckets per upload +each maintaining its own priority queue. There can be another queue for +global operations like maintenance, delagent, etc.
  • +
  • Doing so, each bucket can be traversed in round-robin and pick first pending +job and check against host limit. This will eliminate the scenario mentioned +in point 3. Also, exclusive agents can be sent to global queue.
  • +
+
  upload specific queue
|-<upload_2> -> nomos, copyright, ojo, keyword
|-<upload_3> -> monkbulk, decider, monkbulk, decider
|-<upload_4> -> reuser, decider

global queue
-> delagent,
+
    +
  1. Since the FOSSology is released, there can be number of new scheduling +libraries being released which needs to be explored. They can be a nice +addition to the project.
  2. +
+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory**
Fun/Periphial***
Core Development***
Project Infrastructure*
Project sizeLarge
Preferred contributorProfessional
Skills neededC/C++, Go, any fast language
Contact@GMishx @ag4ums @avinal
+

Debian packaging for Debian repository

+

Goal: Improve Debian packaging and make it acceptable for APT

+

The existing effort to put FOSSology under Debian packaging list needs to be +taken forward. A repository under Debian Salsa was setup initially but not +maintained any more: https://salsa.debian.org/fossology-team/fossology +It is configured to use +gbp.

+

Blockers

+
    +
  1. The Debian building mechanism does not allow installation from sources other +than apt. The Composer packages need to be packed as Debian packages and +shipped with FOSSology.
  2. +
  3. Packaging and shipping other tools needs to satisfy their licensing terms.
  4. +
  5. The versions of packages in APT and actual versions used are different.
  6. +
  7. APT also provides JS libraries like JQuery and DataTables but RHL does not.
  8. +
+

See also

+ +
CategoryRating
Low Hanging Fruit*
Risk/Exploratory**
Fun/Periphial***
Core Development*
Project Infrastructure***
Project sizeSmall
Preferred contributorStudent/Professional
Skills neededDebian, APT, CMake
Contact@GMishx @shaheemazmalmmd
+

REST API improvements

+

Goal: Completing REST API implementation and migrate to v2

+ +
CategoryRating
Low Hanging Fruit**
Risk/Exploratory*
Fun/Periphial**
Core Development***
Project Infrastructure**
Project sizeLarge
Preferred contributorStudent/Professional
Skills neededPHP, Slim framework
Contact@GMishx @shaheemazmalmmd
+ +

Goal: Integrate new AI capabilities to improve the scanners

+

A quick ChatGPT 3.5 test shows it's pretty good at spotting the correct licenses +and expressing them as SPDX expressions.

+

One idea would be integrate a similar technology into a FOSSology agent - +however not by relying on external proprietary services but by building a +dedicated LLM model based on existing open source solutions.

+
CategoryRating
Low Hanging Fruit-
Risk/Exploratory***
Fun/Peripheral***
Core Development*
Project Infrastructure*
Project sizeLarge
Preferred contributorStudent/Professional
Contact@NicolasToussaint @ag4ums
+

Support SPDX 3.0 reports

+

Goal: Support reading and generating SPDX 3.0 reports

+
    +
  • Support generation of SPDX 3.0 reports in different formats.
  • +
  • Start with Core, Software and Licensing profiles. Increase if needed.
  • +
  • Support generation of SPDX reports in JSON format.
  • +
  • Support ingestion of SPDX 3.0 reports
  • +
+

Refs:

+ +
CategoryRating
Low Hanging Fruit**
Risk/Exploratory**
Fun/Periphial*
Core Development**
Project Infrastructure*
Project sizeLarge
Preferred contributorStudent/Professional
Skills neededPHP, Twig
Contact@GMishx @shaheemazmalmmd
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/index.html b/docs/2024/ci-scanner/index.html new file mode 100644 index 0000000000..54f39c01a7 --- /dev/null +++ b/docs/2024/ci-scanner/index.html @@ -0,0 +1,61 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Rajul Jha

+

Contact info

+ +

Project title

+

CI Scanner Improvements

+

What's the project about?

+

To be able to easily and continuously scan packages with +fossology checks in CI pipelines, a docker image fossology/fossology:scanner capable of running license checks (using nomos or ojo) and keyword and copyright scans is available.

+

The main aims of this projects is to improve the CI pipeline with various quality of life improvements like:

+
    +
  • Highlight the exact location of violations in the results.
  • +
  • Enable customization of keywords used by the scanner.
  • +
  • Allow whitelisting from a custom location.
  • +
  • Provide the ability to download and scan dependencies.
  • +
+

What should be done?

+

Reporting line numbers for violations

+
    +
  • For calculating the previous and new line number from the diff scan output, an algorithm has to be made.
  • +
  • The line number start byte and end byte information is spit out by all scanners except nomos in json output. That has to be fixed.
  • +
  • Add the line number calculated to the finding log information as well as write it in results file.
  • +
+

Keyword scanning using custom keyword.conf

+
    +
  • Currently, the keyword scanner uses a predefined set of keywords stored at /usr/local/share/fossology/keyword/agent/keyword.conf.
  • +
  • To support this, we also need to document the regex-like format used for specifying these keywords.
  • +
  • Decision to be made : Should custom keyword.conf overwrite the previous one?
  • +
+

Providing allowlist.json from a different path

+
    +
  • Currently, the allowlist.json is located at the root of the project.
  • +
  • We want to allow users to optionally specify a different path, using a CLI argument, like --allowlist
  • +
+

Allow users to download and scan dependencies

+
    +
  • Currently, the project only scans the source code of the project either in repo/diff manner.
  • +
  • We additionally want to allow the functionality to scan and dependencies of the project.
  • +
+

Steps to achieve this:

+
    +
  • With the CycloneDX tool center, we can generate SBOM which contains the dependency download url.
  • +
  • The SBOM format specifies the package URL (purl) for each dependency.
  • +
  • Using the python-packageurl tool, we can extract the download url from the purl for this purpose.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-05-07/index.html b/docs/2024/ci-scanner/updates/2024-05-07/index.html new file mode 100644 index 0000000000..767b90fa22 --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-05-07/index.html @@ -0,0 +1,75 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community bonding

Meeting 1

+

(May 7, 2024)

+

Discussion:

+
    +
  • Could not attend due to family emergency.
  • +
+

Community Bonding Week 1

+

(May 9, 2024 - May 15, 2024)

+

Meeting 2

+

(May 9, 2024)

+

Discussion:

+
    +
  • I gave my introduction in the meeting.
  • +
  • Got to know my mentors and colleagues.
  • +
+

Work Done:

+
    +
  • Tried to setup the coding environment.
  • +
  • Set up a Virtual Machine because fossology does not work on Mac.😔
  • +
  • Faced challenges installing some python packages which were not available for aarch64 architecture. +Worked around the issue by commenting this out.
  • +
+

Community Bonding Week 2

+

(May 16, 2024 - May 23, 2024)

+

Meeting 3

+

(May 16, 2024)

+

Discussion:

+
    +
  • Contributors shared their weekly updates.
  • +
  • Discussed and decided time for weekly project specific meetings.
  • +
  • Mentors talked about the importance of open communication in open source.
  • +
+

Work Done:

+
    +
  • Played around with fossology and scanned a few repositories.
  • +
  • Tried to understand how scanners work internally.
  • +
  • Talked with other contributors about the project.
  • +
+

Community Bonding Week 3

+

(May 23, 2024 - May 30, 2024)

+

Meeting 4

+

(May 23, 2024)

+

Discussion:

+
    +
  • Had final discussions on projects.
  • +
  • Finalized any changes to the project milestones.
  • +
+

Work Done:

+
    +
  • Tried building the fossology scanner image locally.
  • +
  • Played around a while with the image, trying to understand what it does.
  • +
  • Faced an issue of UI freezing in the VM. Solved it by using SSH Remote Tunneling
  • +
  • Started to theorize how the line number algorithm would work.
  • +
+

Meeting 5

+

(May 30, 2024)

+
    +
  • Discussed the project updates from the mentors and contributors.
  • +
  • Got clear understanding of how to document our progress during the whole program.
  • +
  • Had discussions with the mentors about how to approach the algorithm for line numbers.
  • +
+

This summarizes my community bonding period at Fossology

+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-06-06/index.html b/docs/2024/ci-scanner/updates/2024-06-06/index.html new file mode 100644 index 0000000000..69b067bd41 --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-06-06/index.html @@ -0,0 +1,50 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

+

(May 31, 2024 - June 6, 2024)

+

Meeting 1

+

(June 5, 2024)

+

Attendees

+ +

Discussions

+
    +
  • Discussed unified diff format to populate the data fetched from the Github and Gitlab API's
  • +
  • We also discussed after extraction of the content in unified diff format, how will we extract the line number from it.
  • +
  • We discussed potential risks that we had to keep in mind before approaching this: +
      +
    • The scanner results should give required info for searching line number.
    • +
    • The scanner results should not be affected by this.
    • +
    +
  • +
+

Updates

+
    +
  • Came across this thread on stackoverflow. Used this gawk command as a reference and wrote a python script to convert the api content into unified diff format.
  • +
  • Create a new class FormatResult to handle all the formatting of the results and diff content.
  • +
  • Also, created a function to extract the line number from the formatted diff content.
  • +
  • Tested both the scripts extensively and all cover potential edge cases.
  • +
+

Planning for next week

+
    +
  • Use the script on the diff content and try to find the line number for copyright and keyword scanners.
  • +
  • Add relevant byte info to the JSON output of nomos scanner.
  • +
  • Figure out what to do for repo scans.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-06-13/index.html b/docs/2024/ci-scanner/updates/2024-06-13/index.html new file mode 100644 index 0000000000..75338ae878 --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-06-13/index.html @@ -0,0 +1,52 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

+

(June 6, 2024 - June 13, 2024)

+

Meeting 1

+

(June 12, 2024)

+

Attendees

+ +

Discussions

+
    +
  • Mentors reviewed my PR's and gave me feedback like changes regarding squashing commits into one.
  • +
  • There was a discussion regarding the copyright and keyword scanners breaking because of new formatting since they are regex based. I tested the code and it was working without any descrepencies.
  • +
  • Mentors gave me pointers for adding byte info to nomos, which I was unable to figure out before.
  • +
  • I also found a bug in SpdxReport where it breaks when an unknown license reference is found by the scanner. I had a discussion with the mentors regarding solving it.
  • +
+

Updates

+
    +
  • Completed the Format Results functionality for the copyright and keyword scanners. 😁 +
      +
    • Add the line numbers to the STDOUT, text_report and bom report function.
    • +
    • Sent out a PR(#2754) with the given changes.
    • +
    +
  • +
  • Add the line numbers for repo scans also in a seperate PR(#2756)
  • +
+

Planning for next week

+
    +
  • Add line numbers for the remaining nomos and ojo scanners which requires: +
      +
    • Adding relevant byte info to the JSON output of nomos scanner.
    • +
    +
  • +
  • Solve the bug found in SpdxReport.
  • +
  • Upgrade the spdx_tools library to latest version.
  • +
  • Try to figure out a method of providing custom keyword scanning by providing a path to a custom keyword.conf file by the user.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-06-20/index.html b/docs/2024/ci-scanner/updates/2024-06-20/index.html new file mode 100644 index 0000000000..f4e854c2b4 --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-06-20/index.html @@ -0,0 +1,66 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

+

(June 14, 2024 - June 20, 2024)

+

Meeting 1

+

(June 19, 2024)

+

Attendees

+ +

Discussions

+
    +
  • Worked on adding nomos json output. But not able to access the theMatches object's licenseAndMatchPositions object. Stuck on this for nomos task.
  • +
  • Bumped up spdx_tools library to latest version. Tested with both platforms (GH Actions and Gitlab).
  • +
  • Discussed an issue in the github workflow, not supporting multiple architectures. +
      +
    • The GH Actions Runner does not support multi-architecture images.
    • +
    • We discussed potential solutions for the same including trying to build the image in the GH Action itself or utilizing an emulator like qemu.
    • +
    +
  • +
+

Work Done

+
    +
  • +

    Upgraded the spdx_tools library (#PR2762) and did performance analysis for both versions.

    +
      +
    • +

      With Version 0.0.0a2: +Screenshot

      +
    • +
    • +

      With Version 0.8.2: +Screenshot

      +
    • +
    +
  • +
  • +

    Worked on providing custom keyword.conf file during CI pipeline. It works as follows:

    +
      +
    • User creates a custom keyword.conf file following this pattern.
    • +
    • They set an environment variable called KEYWORD_CONF_FILE_PATH in CI providers settings and set its value to the path of the keyword.conf file.
    • +
    • Then, when the pipeline is triggered, say on push to main, then the keyword scanner reads the custom file and scans for the keywords specified by the user.
    • +
    • Keep in mind that the current keyword file is overwritten by the script, as discussed with the mentors.
    • +
    +
  • +
+

Planning for next week

+
    +
  • Test the keyword functionality with GH Actions and Gitlab CI and send out a PR for the same.
  • +
  • Work on providing multi architecture support for GH Actions.
  • +
  • Study about how to implement differential scans.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-06-27/index.html b/docs/2024/ci-scanner/updates/2024-06-27/index.html new file mode 100644 index 0000000000..5309de01a8 --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-06-27/index.html @@ -0,0 +1,80 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

+

(June 21, 2024 - June 27, 2024)

+

Meeting 1

+

(June 26, 2024)

+

Attendees

+ +

Discussions

+
    +
  • Talked about how the differential scans need to work in detail, like: +
      +
    • Should they be triggered on release only? As it makes sense to scan between two different versions when a new release it being published.
    • +
    • Or should the user be able to scan between two different versions via any sort of trigger, like on push or commit as well?
    • +
    +
  • +
  • Talked about the current implementation of custom keyword functionality, and how it can be +extrapolated similarly for different scanners also.
  • +
  • We talked about fleshing out the design and implementation details first, then work on improving speed.
  • +
+

Work Done

+
    +
  • +

    Completed custom keyword functionality. (#PR2769) The details are as follows:

    +
      +
    • +

      User can now setup a GH Action or Gitlab CI pipeline and pass environment variables to scan for custom keywords however they want. This gives them immense control over what they wan't to scan.

      +
    • +
    • +

      Added some validity checks for the keyword.conf file as during testing, I found out that the scanner breaks if an invalid file is passed to it.

      +
    • +
    • +

      Set up a test docker image (rjknightmare/fo-ci-test:latest) for testing. +Here are the test results for the same:

      +
        +
      • GH Actions:
      • +
      +

      Screenshot

      +
        +
      • Gitlab CI:
      • +
      +

      Screenshot

      +
    • +
    +
  • +
  • +

    Set up qemu emulator for the Github Actions environment to provide multiple architecture support, which also reduced the time for action execution significantly.

    +

    Screenshot

    +
  • +
  • +

    Studied about how we can implement differential (between two different versions) scans and explored these use cases:

    +
      +
    • Use Case I: On release
    • +
    • Use Case II: On push, commit or any other event trigger.
    • +
    +
  • +
+

Planning for next week

+
    +
  • Study further on above use cases and work out a plan for the same.
  • +
  • Explore the GH Actions and Gitlab API's and use the best endpoints for our use cases.
  • +
  • Then start working on implementation of differential scans.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-07-04/index.html b/docs/2024/ci-scanner/updates/2024-07-04/index.html new file mode 100644 index 0000000000..809a5e8dda --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-07-04/index.html @@ -0,0 +1,63 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

+

(June 28, 2024 - July 04, 2024)

+

Meeting 1

+

(July 03, 2024)

+

Attendees

+ +

Discussions

+
    +
  • I showed my progress regarding differential scans and allowlist functionality.
  • +
  • Discussed doubts regarding the nomos scanner -J flag. We'll tackle this later for now.
  • +
  • Mentors mentioned that we should now work towards providing a fossology action which will +provide smooth integration into Github Actions.
  • +
  • Created a new repository in fossology, called fossology-action for now.
  • +
+

Work Done

+
    +
  • Researched and tested the relevant API endpoints from the Github and Gitab API's: +
      +
    • Github API: https://api.github.com/repos/:owner/:repo/compare/{:tag1}...{:tag2} +Screenshot
    • +
    • Gitlab API: https://gitlab.com/api/v4/projects/:projectid/repository/compare/?from={:tag1}&to={:tag2} +Screenshot
    • +
    +
  • +
  • Implement differential scans and tested on Github and Gitlab and sent out a PR(#2775) for the same.
  • +
  • Solved some bugs found in the previous PR(#2574).
  • +
  • Resolved and corrected some issues in PR(#2754) and PR(#2769) respectively.
  • +
  • Started implementing the functionality that allows passing allowlist.conf file from a custom location +by the user.
  • +
+

Planning for next week

+
    +
  • Complete the allowlist.conf part and send a PR for the same.
  • +
  • Next, start researching and testing which type of Github Action we should create. Currently, there are three choices: +
      +
    • JavaScript Action
    • +
    • Docker Action
    • +
    • Composite Action
    • +
    +
  • +
  • Docker Action and Composite Action are most relevant to our use case. Need to test and find out which is a better fit for us.
  • +
  • Start working on providing and then releasing the action to the marketplace.
  • +
  • PS: Also need to think about a cool name for the action 😜
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-07-11/index.html b/docs/2024/ci-scanner/updates/2024-07-11/index.html new file mode 100644 index 0000000000..39360a8486 --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-07-11/index.html @@ -0,0 +1,72 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

+

(July 05, 2024 - July 11, 2024)

+

Meeting 1

+

(July 10, 2024)

+

Attendees

+ +

Discussions

+
    +
  • Mentioned about the progress and completion of #PR2785 which adds the relevant byte info the nomos scanner's JSON Output.
  • +
  • Also got review from mentors regarding #PR2784 which allows for the user to pass a custom allowlist.json file for whitelisting certain licenses or keywords.
  • +
  • Gave a demo to the mentors on how the Github Action for Fossology Scanners works. I studied docker actions as well as composite actions and decided to go for the composite actions because: +
      +
    • Emulation on our end: Composite actions give us the flexibility to run multiple steps in our jobs which makes it easier for us to implement QEMU Emulator for cross platform image support de-facto.
    • +
    • Uploading Artifacts: Using composite actions, the user does not need to set up a separate step of uploading the results as an artifact, as we can add this step into our action itself. User can just provide the report_format key to tell the script which report to generate. Thus, it ensures less clout for the user.
    • +
    +
  • +
+

Work Done

+
    +
  • +

    Completed the allowlist functionality and sent a #PR2784 for the same.

    +
      +
    • +

      The user can now pass a allowlist.json file in a particular format like this:

      +
      {
      "licenses": [
      "GPL-2.0-or-later",
      "GPL-2.0-only",
      "LGPL-2.1-or-later"
      ],
      "exclude": [
      "*/agent_tests/*",
      "src/vendor/*"
      ]
      }
      +
    • +
    • +

      The script looks for the file allowlist file first. If not found here, then looks for allowlist.json file in the root directory. If not found here then looks for whitelist.json. If this is also not found, populates an empty dictionary with license and exclude keys. +The decision tree looks like this:

      +

      Screenshot

      +
    • +
    +
  • +
  • +

    As discussed and resolved in the previous meeting, the start, end, and len information is updated into the nomos JSON output in this #PR2785.

    +

    Screenshot

    +
  • +
  • +

    Started working on the line number part for nomos and ojo scanners.

    +
  • +
  • +

    Researched and understood the different Github Actions and decided to go with composite actions as they allow us to customize our action in an easier manner.

    +
  • +
  • +

    Implemented a demo Github Action for testing and demo'd it to the mentors. +Screenshot

    +
  • +
+

Planning for next week

+
    +
  • Need to complete the action, test all cases and boundary conditions.
  • +
  • Once the action is completed, we need to think about a name for it and publish it to the Github Marketplace.
  • +
  • After that, resume working on the line number part for the nomos and ojo scanners as well.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-07-18/index.html b/docs/2024/ci-scanner/updates/2024-07-18/index.html new file mode 100644 index 0000000000..e78e8ba95a --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-07-18/index.html @@ -0,0 +1,54 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

+

(July, 12 2024 - July 18, 2024)

+

Meeting 1

+

(July 17, 2024)

+

Attendees

+ +

Discussions

+
    +
  • Discussed the work done on the Fossology Github Action #PR1 with the mentors.
  • +
  • Discussed some issues that were encountered during the testing of #PR2784 by Kaushal
  • +
  • Had a brief discussion on how to improve the examples that are given in the Github workflow file.
  • +
  • Shaheem mentioned I should also start working on the documentation part for the Wiki.
  • +
  • Had a fun discussion about what to name the new repository.😁
  • +
+

Work Done

+
    +
  • Completed the initial work on Fossology Action repository and sent out a #PR1 for the same.
  • +
  • The new Github Action allows the users to scan using the fossology scanners ( nomos, ojo and copyright ) inside their Github Actions workflows in just a few lines of configuration.
  • +
+
name: License scan on PR
on: [pull_request]
jobs:
compliance_check:
runs-on: ubuntu-latest
name: Perform license scan
steps:
- name: Checkout
uses: actions/checkout@v2

- name: License check
id: compliance
uses: fossology/fossology-action@v1
with:
scan_mode: ''
scanners: 'nomos ojo'
report_format: 'SPDX_JSON'

+
    +
  • User can scan in various scanning modes like diff, repo and differential.
  • +
  • User can retrieve the scan results report as an artifact in Github Actions in various formats like SPDX_JSON, SPDX_YAML, SPDX_RDF and SPDX_TAG_VALUE by passing the format as an input with the action.
  • +
  • The action also allows the user to pass various custom parameters like passing their own keyword.conf or allowlist.json file.
  • +
+
scan_mode:
description: "Specifies whether to perform diff scans, repo scans, or differential scans. Leave blank for diff scans."
required: false
default: ""
scanners:
description: "Space-separated list of scanners to invoke."
required: true
default: "nomos ojo copyright keyword"
report_format:
description: "Report format (SPDX_JSON,SPDX_RDF,SPDX_YAML,SPDX_TAG_VALUE) to print the results in."
required: false
default: ""
keyword_conf_file_path:
description: "Path to custom keyword.conf file. (Use only with keyword scanner set to True)"
required: false
default: ""
allowlist_file_path:
description: "Path to allowlist.json file."
required: false
default: ""
from_tag:
description: "Starting tag to scan from. (Use only with differential mode)"
required: false
default: ""
to_tag:
description: "Ending tag to scan to. (Use only with differential mode)"
required: false
default: ""
+
    +
  • Fixed some of the bugs in the previous PR's before they were merged.
  • +
  • Got a review from Gaurav to reduce code duplication at some places and try to maintain backward compatibility in the code.
  • +
+

Planning for next week

+
    +
  • Refactor the code in the previous PR's to reduce code duplication (following the DRY principle) and better function handling.
  • +
  • Try to complete the line number part for the scanner parts as well.
  • +
  • Research about the next step for allowing the users to download scanned dependencies.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/ci-scanner/updates/2024-07-25/index.html b/docs/2024/ci-scanner/updates/2024-07-25/index.html new file mode 100644 index 0000000000..ef7d11c43b --- /dev/null +++ b/docs/2024/ci-scanner/updates/2024-07-25/index.html @@ -0,0 +1,71 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8

+

(July, 19 2024 - July 25, 2024)

+

Meeting 1

+

(July 24, 2024)

+

Attendees

+ +

Discussions

+
    +
  • +

    Discussed potential improvements in the #PR1 +with Avinal

    +
  • +
  • +

    Gaurav discussed in detail what we need to achieve with the download dependencies task.

    +
      +
    • The user should have ability to download dependencies for scan.
    • +
    • Then they can run fossology scanners on them in CI pipeline before hand to identify potential licenses and resolve them before hand.
    • +
    • We want to use the Cyclone DX toolkit for generating SBOMs of the repo. +
        +
      • Then use our custom written downloader for downloading the packages from the SBOM.
      • +
      +
    • +
    • User needs to pass the language flag along with some download-deps flag or (something) since +we are using language dependant tools.
    • +
    +
  • +
+

Work Done

+
    +
  • +

    Completed refactoring the previous #PR2754:

    +
      +
    • It follows the Don't repeat Yourself (DRY) principle.
    • +
    • Add type annotations to all the functions.
    • +
    • Add a new boolean flag whole that can be used to extract whole information from the scanners.
    • +
    +
  • +
  • +

    Completed the licenses line number display in the CI in the same #PR2754.

    +
  • +
  • +

    Started working on documenting the new scanners features locally as discussed with Shaheem.

    +
  • +
  • +

    Explored the scan dependencies part for the scanners. Need more clarity as to what exactly we need to achieve here.

    +
  • +
+

Planning for next week

+
    +
  • Plan out the structure and research in depth about the download dependencies task part.
  • +
  • After structuring, need to plan out and flesh out the design details for the same.
  • +
  • Start working on this next major task :)
  • +
+ + \ No newline at end of file diff --git a/docs/2024/index.html b/docs/2024/index.html new file mode 100644 index 0000000000..8219f40ea0 --- /dev/null +++ b/docs/2024/index.html @@ -0,0 +1,38 @@ + + + + + +GSoC'24 @ FOSSology | GSoC projects at FOSSology + + + + + +

GSoC'24 @ FOSSology

FOSSology is looking forward for participating in +Google Summer of Code 2024.

+

You can visit our idea page for GSoC 2024.

+

More info to come here.

+

Projects

+
ContributorProject
Aaditya SinghOverhaul Scheduler Design
Abdelrahman JamalAI Powered License Detection
Abhishek KumarSupport SPDX 3.0 Reports
Akash SahSPDX License Expression
Divij SharmaREST API Improvements
Rajul JhaImproving CI Scanner
Shreya GautamData Pipeline
Valens NiyonsengaText phrase scanning
+

Proposed Mentors

+ +

Meetings table

+
Topic(s)TimingsMeeting linkICS
General MeetingThursday 13:30 - 14:30 UTCJitsi.ics
----
REST APITuesday 11:00 - 11:50 UTCJitsi.ics
SPDX RelatedTuesday 10:30 - 11:20 UTCJitsi.ics
CI ScannerWednesday 10:30 - 11:00 UTCJitsi.ics
Scheduler OverhaulFriday 10:30 - 11:00 UTCJitsi.ics
AI Powered ScannersThursday 10:30 - 11:20 UTCJitsi.ics
+

Photo

+

Photos to come soon.

+

Thanks for being part of the community. 💚

+ + \ No newline at end of file diff --git a/docs/2024/license-detection/index.html b/docs/2024/license-detection/index.html new file mode 100644 index 0000000000..2435538b09 --- /dev/null +++ b/docs/2024/license-detection/index.html @@ -0,0 +1,71 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Abdelrahman Jamal

+

Contact info

+ +

Project title

+

AI Powered License Scanner

+

What's the project about?

+

One of Fossology's primary features is extracting licenses and license text +from files. Traditional methods like text comparison, regular expressions, +and SPDX identifiers can result in false positives, often requiring human +review.

+

This project harnesses the power of Large Language Models (LLMs) like Gemini-Pro, ChatGPT-3.5, and GPT-4. These models demonstrate exceptional accuracy in license recognition and conversion tasks.

+

Key Goals:

+
    +
  • License Detection/Identification: Accurately pinpoint licenses within files.
  • +
  • License Conversion: Convert licenses to SPDX and other standard formats.
  • +
  • Explainable AI: Provide clear reasoning behind license identification and conversion decisions.
  • +
  • TBD: (Potential for additional features - could be expanded later)
  • +
  • Advanced Licen +se Analysis: Explore the use of LLMs for: +
      +
    • Obligation Conversion: Translate license obligations into actionable steps.
    • +
    • Outbound License Determination: Assess the licenses applicable to derivative works.
    • +
    • License Compatibility Checks: Identify potential conflicts or compatibility issues between licenses.
    • +
    +
  • +
+

What should be done?

+
    +
  1. +

    Semantic Search Preprocessing: Utilize semantic search to pinpoint sections of code most likely to contain license information. This serves several purposes:

    +
      +
    • Cost Reduction: Minimize the amount of text processed by the LLM.
    • +
    • Speed Enhancement: Accelerate license identification by focusing on relevant sections.
    • +
    • Initial License Matching: Identify potential licenses based on the content of extracted sections.
    • +
    +
  2. +
  3. +

    LLM-Powered Decision Making: This phase involves a thorough evaluation process to select the most suitable LLM for the task. Multiple LLMs (e.g., LLama 3 8b, Mistral 7b, Gemma 1/2) will be tested on license identification and conversion tasks, considering factors such as:

    +
      +
    • Accuracy: Ability to correctly identify and convert licenses.
    • +
    • Explainability: Clarity and detail of explanations for decisions.
    • +
    • Efficiency: Performance and computational resource requirements.
    • +
    • Adaptability: Potential for fine-tuning or customization for license-specific tasks.
    • +
    +

    Extensive prompt engineering will be conducted to optimize the input provided to the LLM, ensuring it receives the most relevant information from the pre-selected code sections and potential license matches. This will include experimenting with different prompt structures, formats, and the inclusion of additional context (e.g., project metadata) to enhance the LLM's performance and decision-making capabilities.

    +
  4. +
  5. +

    Handling Complex Cases: Extend the LLM's capabilities to address scenarios where:

    +
      +
    • Licenses are located in external files (e.g., LICENSE file in a project's root directory).
    • +
    • Multiple files contribute to a project's overall licensing.
    • +
    +
  6. +
+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-05-30/index.html b/docs/2024/license-detection/updates/2024-05-30/index.html new file mode 100644 index 0000000000..280ec33199 --- /dev/null +++ b/docs/2024/license-detection/updates/2024-05-30/index.html @@ -0,0 +1,43 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Meeting 1

+

(May 30,2024)

+

Attendees:

+ +

Discussion:

+

LLM Comparison Codebase

+

I presented a preliminary codebase designed to interface with multiple LLM APIs (Groq, Nvidia, Together AI) for comparison purposes. This allows us to assess the performance of different models on our license identification task.

+

Initial PyTorch Dataset

+

I prepared a small PyTorch dataset using the Nomos agent to evaluate the LLMs.

+

Codebase Structure

+

The project repository is structured as follows: +GSOC24

+
GSOC24
├── helpers
│ ├── functions
│ ├── llm_client
│ ├── models
│ └── parsers
+

functions: Contains helper functions for sampling, file operations, etc.

+

llm_client: Central class for interacting with LLMs, including API initialization, logging, and retry mechanisms. This week focused on laying the groundwork for efficient, automated requests to the APIs.

+

models: Enum class for supported LLM models (LLama 8b, Mistral 7b, Gemma 1 7b, Phi_3 mini/small).

+

parsers: (Placeholder for future LLM output parsing functions)

+

Next Steps

+

Refined Data Input

+

Instead of feeding the entire file comments to the LLM, we will use Nirjas to extract and provide only the comments relevant to license information. This should improve accuracy and reduce computational costs. +Enhanced Dataset: We plan to create a more diverse dataset using Linux code, as this will better represent the variety of license structures and wording encountered in real-world projects.

+

Codebase Enhancements

+

Finalize the llm_client functionality to enable efficient, automated requests across the entire dataset.

+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-06-06/index.html b/docs/2024/license-detection/updates/2024-06-06/index.html new file mode 100644 index 0000000000..9f0657d579 --- /dev/null +++ b/docs/2024/license-detection/updates/2024-06-06/index.html @@ -0,0 +1,60 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Meeting 2

+

(June 6,2024)

+

Attendees:

+ +

Discussion:

+

Code Implementation Details

+

Completed core functionality for automated LLM comparison on datasets. Now able to efficiently process and compare LLM outputs across different models.

+

Key Functions:

+
    +
  • +

    process_dataset: This function is the heart of the LLM comparison process. It:

    +
      +
    1. Iterates through the dataset (in this case, pytorch-main.csv).
    2. +
    3. Sends each data point (license text) to the specified LLM API.
    4. +
    5. Handles API requests and responses, including retries for robustness.
    6. +
    7. Logs progress at specified intervals (log_every=5 means every 5 rows)
    8. +
    9. We can easily swap the model=Models.MISTRAL_7b in the process_dataset function call with other models from the Models enum to run the same experiment on a different model.
    10. +
    +
    client = LLMClient()
    df = pd.read_csv('extras/pytorch-main.csv')
    sampled_data_mistral_7b = client.process_dataset(df, df_path='pytorch-main.csv',
    model=Models.MISTRAL_7b,
    prompt_function=prompt_function,
    parser=license_parser,
    extra_file_path='extras',
    log_every=5,
    )

    +
  • +
  • +

    prompt_function: This function creates the prompt template instructing the LLM on how to identify and extract license information.

    +
    def prompt_function(text):
    return f"""
    [Task]
    Carefully analyze the provided text to determine if it contains any software licenses.

    [Guidelines]
    1. **License Identification:** If a license is found, clearly state its name and its corresponding SPDX identifier (e.g., MIT License, SPDX-License-Identifier: MIT).
    2. **Evidence Extraction:** For each identified license, extract the specific text snippet(s) from the provided text that confirm its presence. Include surrounding context if it helps clarify the license's applicability.
    3. **No License Scenario:** If no license is detected in the text, explicitly state "No software license found."
    4. **Response Format:** Provide the results in the following format:
    * **Licenses = [list of identified licenses]**
    * **SPDX-IDs = [list of corresponding SPDX identifiers]**

    If no licenses are found, both lists should be empty:

    * **Licenses = []**
    * **SPDX-IDs = []**

    [Text]
    {text}
    """
    +
  • +
  • +

    Log Output Example:

    +
    2024-06-06 12:37:58.034 | INFO     | helpers.llm_client:process_dataset:173 - Processing index: 0
    2024-06-06 12:38:07.307 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 5
    2024-06-06 12:38:14.613 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 10
    2024-06-06 12:38:42.489 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 15
    2024-06-06 12:38:50.538 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 20
    2024-06-06 12:39:13.782 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 25
    2024-06-06 12:39:23.271 | INFO | helpers.llm_client:process_dataset:173 - Processing index: 30
    +
  • +
+

Results Showcase

+
scan results_xllama_responsemistral_responsegemma_response
0BSD BSDLicenses = [Zero Clause BSD (0BSD)]\n**SPD...Licenses = [Zero Clause BSD (0BSD)]\n**SPD...Licenses = [ 'Zero Clause BSD (0BSD)' ]\n*...
Apache-2.0Licenses = [Apache License, Version 2.0]\n...Licenses = [Apache License, Version 2.0]\n...Licenses = [Apache License, Version 2.0]\n...
Apache-2.0Licenses = [Apache-2.0]\n**SPDX-IDs = [Apa...Licenses = [Apache-2.0]\n**SPDX-IDs = [Apa...Licenses = [Apache-2.0]\n**SPDX-IDs = [Apa...
Apache-2.0 BSD-3-Clause BSL-1.0**Licenses = [BSD License, Apache License, Boo...**Licenses = [BSD License, Apache License, Boo...Licenses:\n\n- Licenses = [Early BSD Licen...
Apache-possibilityLicenses = [Apache License]\n**SPDX-IDs = ...Licenses = [Apache License]\n**SPDX-IDs = ...Licenses = [Apache License]\n**SPDX-IDs = ...
BSDLicenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n\n**SPDX-IDs = [...
BSDLicenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n\n**SPDX-IDs = [...
BSDLicenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n**SPDX-IDs = [BS...
BSDLicenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\n**Expl...
BSDLicenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n\n**SPDX-IDs = [...
BSD-3-ClauseLicenses = [Apache License 2.0]\n**SPDX-ID...Licenses = [Apache License 2.0]\n**SPDX-ID...Licenses = [MIT License]\n\n**SPDX-IDs = [...
BSD-3-ClauseLicenses = [Apache License 2.0]\n**SPDX-ID...Licenses = [Apache License 2.0]\n**SPDX-ID...Licenses = []\nSPDX-IDs = []\n\n**Conc...
BSD-3-ClauseLicenses = [Apache License 2.0]\n**SPDX-ID...Licenses = [Apache License 2.0]\n**SPDX-ID...Licenses = [MIT License]\n**SPDX-IDs = [SP...
BSD-possibilityLicenses = [MIT License]\n**SPDX-IDs = [MI...Licenses = [MIT License]\n**SPDX-IDs = [MI...Licenses:\n\n- Licenses: [MIT License]...
BSD-styleLicenses = [BSD License]\n**SPDX-IDs = [SP...Licenses = [BSD License]\n**SPDX-IDs = [SP...Licenses = [BSD License]\n\n**SPDX-IDs = [...
BSD-styleLicenses = [BSD-style license]\n**SPDX-IDs...Licenses = [BSD-style license]\n**SPDX-IDs...Licenses = [BSD-style license]\n**SPDX-IDs...
BSD-styleLicenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD License]\n**SPDX-IDs = [BS...Licenses = [BSD-style license]\n\n**SPDX-I...
BSD-styleLicenses = [BSD-style license]\n**SPDX-IDs...Licenses = [BSD-style license]\n**SPDX-IDs...Licenses = [BSD-style license]\n**SPDX-IDs...
BSD-styleLicenses = [BSD-style license]\n**SPDX-IDs...Licenses = [BSD-style license]\n**SPDX-IDs...Licenses = [BSD License]\n**SPDX-IDs = [SP...
MITLicenses = [MIT License]\n**SPDX-IDs = [SP...Licenses = [MIT License]\n**SPDX-IDs = [SP...Licenses:\n\n```\n- MIT License\n- SPDX-Li...
MITLicenses = [MIT License]\n**SPDX-IDs = [MI...Licenses = [MIT License]\n**SPDX-IDs = [MI...Licenses = [MIT License]\n**SPDX-IDs = [SP...
MITLicenses = [MIT License]\n**SPDX-IDs = [MI...Licenses = [MIT License]\n**SPDX-IDs = [MI...Licenses:\n\n- MIT License\n\n**SPDX-IDs:*...
MITLicenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\n**Note...
NCSA**Licenses = [University of Illinois Open Sour...**Licenses = [University of Illinois Open Sour...**Licenses = [University of Illinois Open Sour...
No_license_foundLicenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\n**Expl...
No_license_foundLicenses = ["MIT License"]\n**SPDX-IDs = [...Licenses = ["MIT License"]\n**SPDX-IDs = [...Licenses = []\nSPDX-IDs = []\n\n**No s...
No_license_foundLicenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\nNo sof...
No_license_foundLicenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\nNo sof...Licenses = []\nSPDX-IDs = []\n\n**No s...
+

Key Findings

+
    +
  • Decent Accuracy but Challenges with Complexity: LLMs demonstrated reasonably good accuracy in identifying single, well-known licenses. However, they encountered difficulties when dealing with files containing multiple licenses or licenses with variations.
  • +
  • Consistent LLM Errors: We observed similar mistakes across different LLMs.
  • +
+

Next Steps

+
    +
  • Anupam suggested utilizing semantic search to pinpoint license-relevant code snippets and match them to potential licenses based on similarity scores.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-06-13/index.html b/docs/2024/license-detection/updates/2024-06-13/index.html new file mode 100644 index 0000000000..542c37bb4d --- /dev/null +++ b/docs/2024/license-detection/updates/2024-06-13/index.html @@ -0,0 +1,68 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Meeting 3

+

(June 13,2024)

+

Attendees:

+ +

Discussion:

+

Semantic Search Exploration

+

Began implementing semantic search to improve license identification accuracy. Explored various techniques:

+
    +
  • Sentence Transformers: Utilized the high-performing all-mpnet-base-v2 model.
  • +
  • Bag-of-Words (BoW) & TF-IDF: Examined a simpler model for comparison
  • +
+

License Text Dataset

+

Incorporated license names and SPDX IDs from the SPDX GitHub repository into the project. The end result is a csv file with license names, ids, and license text available for use in semantic search.

+

Semantic Search Approaches

+
    +
  • file-embedding: Embedded all license texts together, but this proved too coarse for granular analysis.
  • +
  • license-embedding: Embedded each license text individually. This showed promise in identifying license-relevant lines but struggled with accurate license matching.
  • +
  • line-embedding: Embedded each line of each license separately, offering potential for finer-grained matching but at a higher computational cost.
  • +
+

Code Example:

+
create_license_dataset('extras/license_information/details')
df = client.temp_function(pd.read_csv('extras/lamma3-8b-pytorch-main-sampled.csv'))
file_idx = 0
results = get_top_similar_license_lines(\
df.loc[file_idx, 'file_comments'],
'extras/license_information/license_dataset.txt',
# model='bow',
top_k=5,
embedding_approach='license-embedding'
)
results
)
+

Output Example:

+
[(40,
0.6339692,
' File distributed under the Zero Clause BSD (0BSD) license. Copyright Contributors to the pythoncapi_compat project.',
'License Name: CNRI Python License'),
(0,
0.5076868,
'Header file providing new C API functions to old Python versions.',
'N/A'),
(1,
0.5062,
'SPDX-License-Identifier: 0BSD',
'License Name: Xdebug License v 1.03'),
(41,
0.4910386,
' Homepage: https://github.com/python/pythoncapi_compat',
'License Name: CNRI Python License'),
(46,
0.47866815,
' bpo-43753 added Py_Is(), Py_IsNone(), Py_IsTrue() and Py_IsFalse() to Python 3.10.0b1.',
'License Name: CNRI Python License')]
+

The output is a list of tuples where each tuple contains:

+
    +
  1. The index of the line in question
  2. +
  3. The similarity score that led to it being chosen as a top similar line
  4. +
  5. The actual text of the line
  6. +
  7. The name of the license that the line was matched to
  8. +
+

Key Findings

+
    +
  • Semantic Search Progress: Successfully implemented semantic search to identify potentially license-relevant lines within code files.
  • +
  • License Matching Challenges: While line identification improved, accurately matching lines to the correct license remains a challenge. The current approach often mismatches lines to unrelated licenses.
  • +
  • Metrics Needed: Currently lack quantitative metrics (e.g., accuracy) to assess the effectiveness of different semantic search approaches and embedding techniques.
  • +
+

Additional Notes

+
    +
  • The TF-IDF proved very poor at both finding license relevant lines and matching them to the correct license.
  • +
  • The BoW was not as accurate as Sentence Transformers at finding the license relevant lines, but it was still very good for its size.
  • +
  • The get_top_similar_license_lines function automatically saved the embeddings for each approach and loads them if they already existed on disk.
  • +
+

Conclusions and Next Steps

+
    +
  • Refine License Matching: Continue exploring and refining semantic search techniques to improve license matching accuracy.
  • +
  • Experiment with Models: Investigate alternative embedding models or fine-tuning existing models to better capture license-specific semantics. As model size is not a hindrance, no need to explore suboptimal strategies such as BoW and TF-IDF.
  • +
  • Establish Evaluation Metrics: Develop metrics to quantitatively measure the performance of license identification and matching, enabling objective comparison of different approaches.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-06-20/index.html b/docs/2024/license-detection/updates/2024-06-20/index.html new file mode 100644 index 0000000000..6101a47a0e --- /dev/null +++ b/docs/2024/license-detection/updates/2024-06-20/index.html @@ -0,0 +1,41 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Meeting 4

+

(June 20,2024)

+

Attendees:

+ +

Discussion:

+

Linux License Dataset

+

Created a larger, more comprehensive dataset of licenses from Linux sources. This dataset includes line-level annotations to indicate which lines contain license-relevant information.

+ +

Continued refining the semantic search implementation:

+
    +
  • Explored Alternative Models: Tested other sentence transformer models and potential alternatives, but determined that the current model (all-mpnet-base-v2) was not a bottleneck.
  • +
+

Performance Metrics

+

Introduced two key metrics to evaluate semantic search effectiveness:

+
    +
  • Accuracy: Measures if at least one relevant line is found per file (binary: 0 or 100%). The current model achieved 96% accuracy on the Linux dataset.
  • +
  • Coverage: Calculates the percentage of relevant lines found within each file. The average coverage across files was 80%.
  • +
+

Conclusions and Next Steps

+
    +
  • Give semantic search one more week and focus on improving license matching accuracy.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-06-27/index.html b/docs/2024/license-detection/updates/2024-06-27/index.html new file mode 100644 index 0000000000..f4368ce76d --- /dev/null +++ b/docs/2024/license-detection/updates/2024-06-27/index.html @@ -0,0 +1,55 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Meeting 5

+

(June 27,2024)

+

Attendees:

+ +

Discussion:

+

Improved Semantic Search Performance

+
    +
  • Accuracy: Increased to nearly 100% (98.7% in the meeting, with slight discrepancies attributed to labeling errors).
  • +
  • Coverage: Enhanced to over 93% (potentially closer to 96% when accounting for labeling issues).
  • +
+

License Matching Exploration

+
    +
  • Hierarchical Approach: Attempted a two-step semantic search approach: +
      +
    1. Use existing code to identify top K similar lines.
    2. +
    3. Perform line-by-line semantic search against all SPDX license text lines.
    4. +
    +
  • +
  • Performance Issues: This approach proved computationally expensive, taking hours to process small samples.
  • +
  • Fuzzy Matching (Post-Meeting): Explored the fuzzywuzzy library (based on Levenshtein distance) for the second step of license matching, yielding significantly improved results.
  • +
+

License Matching Metrics

+
    +
  • Predicted License Accuracy: 68% (This indicates the percentage of files where at least one license was correctly matched.)
  • +
  • Predicted Licenses Covered: 62.5% (This measures the percentage of all licenses within the explored files that were correctly identified and matched.)
  • +
+

Key Findings

+
    +
  • Performance Breakthrough with Fuzzy Matching: Switching to fuzzy matching with fuzzywuzzy significantly enhanced license matching accuracy and coverage compared to the initial hierarchical semantic search approach.
  • +
+

Conclusions and Next Steps

+
    +
  • Integrate Semantic Search with LLMs: Begin combining semantic search results with LLM analysis to achieve a more comprehensive and accurate license identification solution.
  • +
  • Refine Fuzzy Matching: Continue exploring and refining fuzzy matching parameters to further improve license matching performance.
  • +
  • Analyze Combined Performance: Establish metrics and analyze the effectiveness of the integrated semantic search and LLM approach.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-07-04/index.html b/docs/2024/license-detection/updates/2024-07-04/index.html new file mode 100644 index 0000000000..3e9e19f728 --- /dev/null +++ b/docs/2024/license-detection/updates/2024-07-04/index.html @@ -0,0 +1,82 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Meeting 6

+

(July 4,2024)

+

Attendees:

+ +

Discussion:

+

Integration of Semantic Search with LLMs

+
    +
  • +

    Initial Attempt

    +
      +
    1. Prompt: The initial prompt focused on providing text and metadata to the LLM for license identification.
    2. +
    3. Issues: The LLM attempted to match all provided lines to a license, even when many lines were clearly irrelevant to licensing.
    4. +
    +
  • +
  • +

    Initial Prompt

    +
  • +
+
[Task]
You are provided with text extracted from a file, along with potential license matches identified by a semantic search tool.
Your task is to carefully analyze the provided text and metadata to determine the actual software license(s) present in the original file.
Out of the 10 provided lines, not all matches will be correct or relevant, so focus on the most relevant lines in your analysis.

[Metadata Explanation]
The metadata provided for each line is a tuple containing four elements:
* **Line:** The actual line of text extracted from the file.
* **Potential License Match:** The name of a license that the semantic search tool believes the line might belong to.
* **License ID:** The SPDX identifier of the potential license match.
* **Matched License Text:** The specific text within the potential license that the line was matched to.

[Guidelines]
1. **License Identification:** If a license is found, clearly state its name and its corresponding SPDX identifier (e.g., MIT License, SPDX-License-Identifier: MIT). If multiple licenses are found, list them all.
2. **Evidence and Reasoning (Focus on Relevance and Clarity):**
* For each identified license, extract the specific text snippet(s) from the provided text that confirm its presence. Include surrounding context if it helps clarify the license's applicability. Prioritize the most relevant lines of text.
* Explain why the identified license is the most likely match, taking into account the potential license matches and the matched license text provided in the metadata.
* Only consider matches that are clear and obviously correct. The semantic search tool will always attempt to match lines to licenses, but these matches are not always accurate.
3. **Override Semantic Search:** If the semantic search tool's suggested match seems incorrect, feel free to disregard it and rely on your own knowledge and analysis to determine the correct license. Provide a clear explanation of why you chose a different license.
4. **Exclude Irrelevant Information:**
* Disregard copyright notices and statements and lines of code as they do not indicate the software license.
* Focus only on text that is found in licenses or clearly identifies licenses.
5. **No License Scenario:** If no license is detected in the text, explicitly state "No software license found."
6. **Ambiguity:** If the license cannot be confidently determined due to ambiguity or conflicting information, clearly state this and provide an explanation.
7. **Response Format:** Provide the results in the following format:
* **Licenses = [list of identified licenses]**
* **SPDX-IDs = [list of corresponding SPDX identifiers]**

If no licenses are found, both lists should be empty:
* **Licenses = []**
* **SPDX-IDs = []**

[Text and Metadata]
+
    +
  • Outcome: The LLM tried too hard to relate irrelevant lines to licenses, resulting in many false positives.
  • +
+

Revised Approach

+
    +
  • +

    Second Attempt

    +
      +
    • Prompt: Changed the task to identify relevant lines before determining licenses.
    • +
    • Issues: Reduced the number of irrelevant lines identified, but the problem of false positives persisted.
    • +
    +
  • +
  • +

    Second Prompt

    +
  • +
+
[Task]
From the following tuples, select those that are relevant to software licensing and ignore the rest.
A relevant tuple is a tuple that contains a line of text that is relevant and can be used to identify a license.

[Tuples]
Each tuple consists of three elements:
1. **Line:** The actual line of text extracted from the file. This is the element you need to evaluate for relevance to software licensing.
2. **Potential License Match:** The name of a license that the semantic search tool suggests the line might belong to (provided for reference).
3. **License ID:** The SPDX identifier of the potential license match (provided for reference).

[Guidelines]
1. **Select License-Specific Lines:** Choose only lines that:
* Explicitly mention license terms
* Directly quote from known license texts
* Include specific license references or titles.

2. **Ignore Irrelevant Lines:**
* Disregard lines that do not explicitly mention license terms.
* Ignore copyright notices, code snippets, comments, and general documentation.
* Ignore code documentation lines that seem to be documenting code or just general instructions or information.
* Do not select lines that are general descriptions, code, or comments unrelated to license terms.

3. **No License:** If no license is found, state "No software license found."
4. **Ambiguity:** If uncertain, explain the ambiguity.
5. **Response Format:**
* **Relevant Lines = [list of relevant lines]**
* **Licenses = [list of identified licenses from relevant lines]**
* **SPDX-IDs = [list of corresponding SPDX identifiers from relevant lines]**

[Text and Metadata]
+
    +
  • Outcome: The LLM still included irrelevant lines in its output, indicating a persistent issue with following the prompt guidelines.
  • +
+

Key Findings

+
    +
  • +

    Performance Issues: Despite detailed prompts, the LLMs struggled to correctly identify relevant lines and accurately match licenses.

    +
  • +
  • +

    RAG Exploration: Suggested by Kaushl, Retrieval-Augmented Generation (RAG) may provide a more robust solution to improve accuracy in license identification.

    +
  • +
+

Conclusions and Next Steps

+
    +
  • +

    Improve Semantic Search: Continue refining the semantic search approach for better initial filtering of potential license lines.

    +
  • +
  • +

    RAG Implementation: Investigate and implement RAG to enhance the LLM's ability to accurately identify relevant lines and match licenses.

    +
  • +
  • +

    Further Prompt Engineering: Experiment with additional prompt variations to improve LLM performance.

    +
  • +
  • +

    Performance Metrics: Establish metrics to evaluate the effectiveness of the integrated approach and analyze the results for further improvements.

    +
  • +
+
+ + \ No newline at end of file diff --git a/docs/2024/license-detection/updates/2024-07-11/index.html b/docs/2024/license-detection/updates/2024-07-11/index.html new file mode 100644 index 0000000000..7689c03750 --- /dev/null +++ b/docs/2024/license-detection/updates/2024-07-11/index.html @@ -0,0 +1,131 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Meeting 7

+

(July 4,2024)

+

Attendees:

+ +

Discussion:

+

Improved Semantic Search Algorithm

+
    +
  • +

    Presentation of Improved Algorithm

    +
      +
    1. +

      Approach: Implemented chunking by dividing code comments and paragraphs into multiline strings, starting new chunks at empty lines.

      +
    2. +
    3. +

      Challenges: Original method of extracting comments resulted in long, merged lines, necessitating a rework to handle multiline comments effectively.

      +
    4. +
    +
  • +
  • +

    Chunking Example

    +
  • +
+
/*
This is a multiline comment
that should be considered as one
single chunk for better accuracy.

This is a separate chunk.
*/

// This is a single line comment

// This is still a single line comment
// This is also still a single line comment and not a chunk with the previous comment
+

License Matching Performance

+
    +
  • +

    Initial Results

    +
      +
    1. +

      Accuracy: The chunking approach significantly improved license matching accuracy but struggled with extremely similar licenses (e.g., 0BSD and ISC).

      +
    2. +
    3. +

      Problem: Minor differences between very similar licenses led to occasional misidentifications.

      +
    4. +
    +
  • +
  • +

    License Text Examples

    +
  • +
+
0BSD License Text:
Copyright (C) YEAR by AUTHOR EMAIL

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

ISC License Text:
Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
Copyright (c) 1995-2003 by Internet Software Consortium

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

+
    +
  • Enhancements
  • +
+
    +
  1. +

    Chunk Merging: Attempted merging potential chunks to improve license identification by providing more comprehensive text for comparison.

    +
  2. +
  3. +

    Combined Line and Chunk Matching: Implemented both line and chunk matching to enhance accuracy, though it increased processing time due to the greater number of combinations.

    +
  4. +
+
    +
  • +

    Results

    +
      +
    1. +

      Metrics: +Predicted License Accuracy: 93.33% +Predicted Licenses Covered: 84.0%

      +
    2. +
    3. +

      Notes: Approximately 5% of the remaining 7.6% were files referring to a different license file, not containing the license text directly.

      +
    4. +
    +
  • +
  • +

    Matching Output Example:

    +
  • +
+
[(100.0,
' THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.',
'BSD Zero Clause License',
'0BSD',
'THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.',
[('BSD Zero Clause License', 100.0),
('BSD Zero Clause License', 100.0),
('ISC License', 97.0),
('ISC License', 97.0),
('Mackerras 3-Clause License', 93.0)]),
(100.0,
' Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.',
'curl License',
'curl',
'Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.',
[('curl License', 100.0),
('curl License', 100.0),
('pkgconf License', 99.0),
('ISC License', 99.0),
('ISC License', 99.0)]),
(99.0,
' Permission to use, copy, modify, and distribute this software for any',
'OAR License',
'OAR',
'Permission to use, copy, modify, and distribute this software for any',
[('Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant',
99.0),
('David M. Gay dtoa License', 99.0),
('OAR License', 99.0),
('pkgconf License', 97.0),
('SGI OpenGL License', 96.0)]),
(99.0,
' copyright notice and this permission notice appear in all copies.',
'pkgconf License',
'pkgconf',
'copyright notice and this permission notice appear in all copies.',
[('pkgconf License', 99.0),
('Historical Permission Notice and Disclaimer - documentation variant',
99.0),
('CMU Mach - no notices-in-documentation variant', 96.0),
('ISC Veillard variant', 87.0),
('Historical Permission Notice and Disclaimer - Pbmplus variant', 86.0)]),
.... (many more)

+

Key Findings

+
    +
  • +

    Enhanced Accuracy: The combination of chunking and line matching improved overall accuracy and coverage.

    +
  • +
  • +

    Increased Processing Time: The dual approach led to longer search times due to the increased number of combinations.

    +
  • +
+

Conclusions and Next Steps

+
    +
  • +

    Evaluate on Nomos Test Dataset:

    +
      +
    1. +

      Dataset Links:

      + +
    2. +
    3. +

      Objective: Assess the performance of the semantic search and LLM integration on the provided test datasets.

      +
    4. +
    +
  • +
  • +

    Limit Line/Chunk Matching: To address the issue of excessive matches, limit the line/chunk matching to optimize search time and accuracy.

    +
  • +
  • +

    Additional Tasks

    +
      +
    1. +

      Acknowledgement from Notice Files: Begin work on identifying and acknowledging licenses from notice files.

      +
    2. +
    3. +

      Obligations: Convert identified licenses to obligations, detailing the requirements and conditions of each license.

      +
    4. +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-05-30/index.html b/docs/2024/minutes/2024-05-30/index.html new file mode 100644 index 0000000000..0f5082ab65 --- /dev/null +++ b/docs/2024/minutes/2024-05-30/index.html @@ -0,0 +1,150 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1

Welcome to meeting minutes page for GSoC 2024 at FOSSology 30-05-2024.

+

Attendees:

+ +

Missed:

+ +

General

+
    +
  • +

    Shaheem Azmal M MD: General updates regarding project. The contributors shall update the GSoC Documentation tool before joining the thursday call.

    +
  • +
  • +

    Gaurav Mishra: Explains about the GSoC Documentation tool. Different rules to contribute the code and documentation.

    +
  • +
+

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Basic code to parse file text from fossology and prompt it to different LLM's. LLM is giving license names and also gives multiple licenses, empty in case of no license found.

      +
    • +
    • +

      Checking which LLM is best.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • +

      Fossology installation done. created a pull request to enhance cross-platform compatibility and line encoding issues.

      +
    • +
    • +

      Discussed with mentor to solve other issue with mimetype agent.

      +
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Exploring and working on SPDX 3.0 JSON format will be opening the pull request soon.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • I was looking into ways to store the license expressions. Found Abstract syntax as one way. i have shared the document to mentors to take a call.
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • No major updates i was looking into ways to implement OAUTH via API.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • In call with mentors we have discussed on general milestone for CI/CD project. Working on line number extraction and differencial scans.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • I Dont have many updates i have gone through the idea regarding Monk based text scanning. need to discuss further on how to start.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-06-06/index.html b/docs/2024/minutes/2024-06-06/index.html new file mode 100644 index 0000000000..a1f6a85905 --- /dev/null +++ b/docs/2024/minutes/2024-06-06/index.html @@ -0,0 +1,150 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2

Welcome to meeting minutes page for GSoC 2024 at FOSSology 06-06-2024.

+

Attendees:

+ +

Missed:

+ +

General

+ +

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Code to parse comment text of a file from fossology and prompt it to multiple LLM's. LLM is giving license names and also gives multiple licenses, need to cleanup/reorder the data.

      +
    • +
    • +

      Shows short demo on current work.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • For this week i have gone through end-to-end flow and code of safaa project. Created a PPT and presented it to mentors, currently working on scripts to extract data from fossology.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • +

      Based on my last discussion with mentors, rewriting the scheduler code from C language to go. Raised a PR for the same.

      +
    • +
    • +

      Also looking into different approaches to finish this.

      +
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • As per my discussion with mentors im using the JSON format to convert the license expression and store it to database. Currently working on creating UI for the same.
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • Finished implementation of OAUTH via API. Currently looking into API upgrade from V1 to V2.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Worked on pulling the line number's of finding. Successfully able to fetch the information, in the integration part i was able to fetch keyword information but facing issues for copyright.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Absent.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-06-13/index.html b/docs/2024/minutes/2024-06-13/index.html new file mode 100644 index 0000000000..6c4c7bbb61 --- /dev/null +++ b/docs/2024/minutes/2024-06-13/index.html @@ -0,0 +1,150 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3

Welcome to meeting minutes page for GSoC 2024 at FOSSology 13-06-2024.

+

Attendees:

+ +

Missed:

+ +

General

+ +

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Tested different model using Semantic Search which tries to find similar match.

      +
    • +
    • +

      Test semantic transformer, and work on basic license identifier.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • +

      Based on my last discussion with mentors, rewriting the scheduler code from C language to go. Raised a PR for the same.

      +
    • +
    • +

      Trying to implement queue. also working on CLI code

      +
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Worked on generation of SPDX 3.0 JSON format. Looking in to validation of generated reports. will start work on RDF report soon.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • +

      As per my discussion with mentors im using the JSON format to convert the license expression and store it to database(successful).

      +
    • +
    • +

      Worked on creating UI for the same. currently looking into adding comments acknowledgements and text for license expression.

      +
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • Finished implementation of OAUTH via API. Currently looking into API upgrade from V1 to V2.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Working on adding the line number support for repo scan. will be working on nomos and ojo part.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • I have added the unit test cases for API's like License, Group and upload. I have opened the pull request for the same.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-06-20/index.html b/docs/2024/minutes/2024-06-20/index.html new file mode 100644 index 0000000000..bdea6f4e5f --- /dev/null +++ b/docs/2024/minutes/2024-06-20/index.html @@ -0,0 +1,145 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4

Welcome to meeting minutes page for GSoC 2024 at FOSSology 20-06-2024.

+

Attendees:

+ +

Missed:

+ +

General

+ +

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Worked on Semantic Search which tries to find similar match.

      +
    • +
    • +

      Test semantic transformer, and work on basic license identifier.(Demo on current implementation)

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • Based on my last discussion with mentors, I have created a gap analysis. and worked on the architecture (Demo on current structure).
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Worked on generation of SPDX 3.0 JSON format. Validation tool is not compatible with SPDX 3.0 JSON format(Gaurav will speak with linux community regarding this). working on RDF report.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • Finished work on creating UI for license expression. implemented adding comments acknowledgements and text for license expression.(Demo on current implementation)
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • Finished implementation of OAUTH via API(Demo on OAUTH). Currently working on copyright endpoing to get user copyrights.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Editing the nomos scanner including byte info(Stuck), Started working on custom keyword part, Change in GH Action Workflow (Working), 4 mints for new workflow earlier 17 secs.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • +

      I have added the unit test cases for API's like License, Group and upload. I will be looking to finish with the license API test cases this week.

      +
    • +
    • +

      Looking into youtube videos to understand FOSSology More.

      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-06-27/index.html b/docs/2024/minutes/2024-06-27/index.html new file mode 100644 index 0000000000..dc5ea9b54c --- /dev/null +++ b/docs/2024/minutes/2024-06-27/index.html @@ -0,0 +1,140 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5

Welcome to meeting minutes page for GSoC 2024 at FOSSology 20-06-2024.

+

Attendees:

+ +

Missed:

+ +

General

+ +

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Worked on Semantic Search which tries to find similar match.

      +
    • +
    • +

      Test semantic transformer, Provide the information to LLM.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • Was sick couldnt work much, I have implemented deadlock and heartbeat for scheduler and also user first approch(demo on further changes on arch).
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Worked on generation of SPDX 3.0 RDF format. will start works on tag/value report.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • Working on report generation part to include license expressions. verified few SPDX reports after the implementation.
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • Finished implementation of OAUTH via API(Demo on OAUTH). finished working on oneshot analysis for licenses and copyrights. working on scancode agent.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • I have finished working on keyword functionality now one can provide path to CONF file. this scripts will scan for given keywords in differential scan as well as repo scan.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Absent.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-07-04/index.html b/docs/2024/minutes/2024-07-04/index.html new file mode 100644 index 0000000000..3268d56606 --- /dev/null +++ b/docs/2024/minutes/2024-07-04/index.html @@ -0,0 +1,178 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6

Welcome to Minutes of Meeting page for GSoC 2024 at FOSSology happened on 04-07-2024.

+

Attendees:

+ +

Missed:

+ +

General

+
    +
  • +

    Kaushlendra Pratap : Raised the issue of Students not updating the documentation/WPRs constantly.

    +
  • +
  • +

    Gaurav Mishra : General updates regarding project. Explained the importance of the Weekly Progress Reports.

    +
  • +
+

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Worked on LLM, Different models are now being tested with the General Statements.

      +
    • +
    • +

      Multiple prompts were tried still some prompt engineering is required.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • +

      Completed python script to get copyright data form DB.

      +
    • +
    • +

      Did some experiment on Github Actions for the Data Pipeline.

      +
    • +
    • +

      Research for incremental learning using SGDClassifier().

      +
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • +

      Call with avinal to understand the CMake structure.

      +
    • +
    • +

      Started coding in Go for the scheduler.

      +
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • +

      JSON format is done, JSON-LD validation is on going.

      +
    • +
    • +

      RDF reports are generated.

      +
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • +

      Reports are generated, SPDX expressions are there.

      +
    • +
    • +

      Working on REUSE.

      +
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • +

      Worked on endpoints to support ScanCode copyrights.

      +
    • +
    • +

      Next week OpenID Connect work will continue.

      +
    • +
    • +

      Jobs Endpoint, Pull request is there. (Unit test cases are failing)

      +
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • +

      Explored few Github Actions (Docker Based & Composite).

      +
    • +
    • +

      Trying to implement some standard for fossology action

      +
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Finalising the additional test cases for Controllers and Models including permission, license, agents.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/minutes/2024-07-11/index.html b/docs/2024/minutes/2024-07-11/index.html new file mode 100644 index 0000000000..4cda3a4fbc --- /dev/null +++ b/docs/2024/minutes/2024-07-11/index.html @@ -0,0 +1,147 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7

Welcome to Minutes of Meeting page for GSoC 2024 at FOSSology happened on 04-07-2024.

+

Attendees:

+ +

Missed:

+ +

General

+
    +
  • Shaheem Azmal M MD: General updates regarding project. Explained the importance of the Weekly Progress Reports.
  • +
+

Updates from contributors

+
    +
  • +

    Abdelrahman jamal

    +
      +
    • +

      Worked on LLM, Different models are now being tested with the General Statements.

      +
    • +
    • +

      Test LLM results on given test files from nomos. ideas to implement/gather acknowledgements and obligations.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • Started coding in Go for the scheduler created the database file.
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • +

      JSON format is done, JSON-LD validation is on going.

      +
    • +
    • +

      RDF reports are generated. Working on tag-value report.

      +
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • Working on REUSE.
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • +

      Worked on endpoints to support ScanCode copyrights.

      +
    • +
    • +

      Jobs Endpoint, Pull request is there. (Unit test cases are failing)

      +
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Working on implemention of some standard for fossology action
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Finalising the additional test cases for Controllers and Models including permission, license, agents.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/pipeline/index.html b/docs/2024/pipeline/index.html new file mode 100644 index 0000000000..cafef13336 --- /dev/null +++ b/docs/2024/pipeline/index.html @@ -0,0 +1,46 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Shreya Gautam

+

Contact info

+ +

Project title

+

Data Pipelining of Safaa

+

What's the project about?

+

Currently, Safaa provides a strong framework designed to deal with copyright notices particularly focusing on the identification and reduction of false positives, as well as streamlining the decluttering procedure to remove unnecessary content. Key features of Safaa include:

+
    +
  1. Model Flexibility
  2. +
  3. Integration with scikit-learn
  4. +
  5. spaCy Integration
  6. +
  7. Preprocessing Tools +Despite these strengths, the current process of data curation and handling is manual, which can be time-consuming and prone to human error. To address this, I am proposing a data pipeline project aimed at automating the entire workflow. This project will focus on developing an automated data pipeline that will streamline the collection, preprocessing, and preparation of data for model training. By automating these tasks, the project aims to enhance efficiency, scalability, and accuracy in Safaa's operations.
  8. +
+

Additionally, the project will involve the creation of a dedicated library for Named Entity Recognition (NER) and Part-of-Speech (POS) tagging. This enhancement will further optimize the process of copyright notice analysis, making Safaa even more effective at reducing false positives.

+

Ultimately, the project aims to refine and fine-tune Safaa's models post-deployment, using ongoing research and development to continuously improve its performance and capabilities in false positive detection and content management.

+

What should be done?

+

Here are the key tasks planned for the project:

+
    +
  1. +

    Data Pipeline Focus: This pipeline will streamline the process of collecting, preprocessing, and preparing data for model training, enhancing efficiency and scalability in Safaa's operations. The project will commence with comprehensive data collection and ingestion from diverse sources. Then there will be robust data cleaning to rectify missing values and outliers, normalising values, and adding supplementary features or external data sources. EDA will be carried out to gain insights into data distribution, guiding further preprocessing strategies for optimal model training. Subsequently. The model training, validating and testing will be carried out.

    +
  2. +
  3. +

    NER-POS Tagging Library: I propose the development of a dedicated library for Named Entity Recognition (NER) and Part-of-Speech (POS) tagging, which will serve as a crucial component in Safaa's data pipeline. This library will leverage the capabilities of LLMs for accurately identifying and categorising entities within text data. By integrating this library into Safaa's data pipeline, I aim to automate and optimise the NER and POS tagging process, thereby enhancing the efficiency and effectiveness of copyright notice analysis.

    +
  4. +
  5. +

    Fine-tune the Model: Post-deployment, I plan to fine-tune the model to further improve its performance. Rigorous model validation and testing techniques are pivotal. I plan on using hyperparameter tuning to fine-tune the model. Leveraging LLMs, I intend to conduct extensive research to enhance Safaa's capabilities and refine its false positive detection mechanisms. Once optimised, the models will be packaged and deployed into production environments. Furthermore, the ongoing model performance will be monitored and maintained including regular performance assessments. Periodically, the model will be retrained with new data.

    +
  6. +
+ + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-05-07/index.html b/docs/2024/pipeline/updates/2024-05-07/index.html new file mode 100644 index 0000000000..24e241088a --- /dev/null +++ b/docs/2024/pipeline/updates/2024-05-07/index.html @@ -0,0 +1,54 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Meeting Summary for GSoC Community Bonding Period

+

Introduction Meeting

+

(May 7,2024)

+

This was the inaugural meeting of the community bonding period for GSoC 2024.

+
    +
  • A general introduction of mentors and contributors took place.
  • +
  • Time and platform for the weekly general meeting were agreed upon.
  • +
+

Meeting 1

+

(May 9,2024)

+

The first general meeting took place on this day.

+
    +
  • Mentors emphasized the importance of communication in open source projects.
  • +
  • They encouraged the practice of regular updates
  • +
+

Engagements

+
    +
  • Explored Safaa's codebase to grasp its functionality, provided updates, and deliberated on the pipeline procedures.
  • +
  • Addressed crucial pipeline requirements essential for Safaa's automation efforts.
  • +
+

Meeting 2

+

(May 16, 2024)

+

Contributors provided updates and offered a brief overview of their ongoing tasks. Mentors inquired about challenges encountered during the setup of Fossology and their respective environments.

+

Engagements

+
    +
  • Evaluated the suitability of Safaa's dataset with a focus on regex preprocessing, proposing Nirjas as an alternative.
  • +
  • Due to challenges faced while setting up Linux on my system, I transitioned to configuring Ubuntu within VirtualBox for Fossology.
  • +
+

Meeting 3

+

(May 23, 2024)

+

In the report:

+

Contributors discussed their progress, with mentors emphasizing the importance of making incremental contributions to deepen project understanding. Final arrangements for project-specific weekly meetings were also settled.

+

Engagements

+
    +
  • Discussed the future of Safaa as an ML project for offline deployment.
  • +
  • Explored potential changes, including fine-tuning the model and identifying edge cases where improvements are needed.
  • +
  • Assigned to explore the MLOps field for relevance to the project.
  • +
  • Discussed the iterative generation of training scripts for binaries and the push of model binaries.
  • +
  • There was a discussion on establishing a shadow environment, conducting mirrored testing on output data, and implementing CI/CD pipelining.
  • +
+

This report summarizes my activities and interactions during the GSoC community bonding period.

+ + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-05-30/index.html b/docs/2024/pipeline/updates/2024-05-30/index.html new file mode 100644 index 0000000000..19d3723e49 --- /dev/null +++ b/docs/2024/pipeline/updates/2024-05-30/index.html @@ -0,0 +1,37 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

WEEK 1

+

(May 30, 2024)

+

Attendees:

+ +

Discussion:

+
    +
  • I installed Fossology and familiarized myself with its features. Furthermore, I conducted tests with Fossology's current copyright detection agent and the experimental false positive deactivation agent to assess their effectiveness and determine areas for enhancement.
  • +
  • There were discussions on strategies such as gathering unidentified copyrights or establishing a shadow model based on the current framework. Additionally, refinements in fine-tuning and training were considered to enhance decluttering and detection capabilities.
  • +
  • Lastly, Safaa's performance was critically evaluated, and strategies for acquiring additional data were deliberated upon.
  • +
  • I missed the general meeting due to connection issues from my side.
  • +
+

Enagagements

+

I engaged in a call with my colleague Abdel, who had previously worked on developing Safaa, to clarify several doubts regarding the agent. During our discussion, I learned that Nirjas was already proficient in performing the task, and the agent began its operations after Nirjas had extracted copyrights.

+

Subsequent Steps

+
    +
  • I was tasked with presenting a comprehensive overview of the project in the next meeting, outlining plans for processing new data, explaining the working of current Safaa and explaining the retrieval of gathering the new proposed data.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-06-06/index.html b/docs/2024/pipeline/updates/2024-06-06/index.html new file mode 100644 index 0000000000..f3255c8796 --- /dev/null +++ b/docs/2024/pipeline/updates/2024-06-06/index.html @@ -0,0 +1,39 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

WEEK 2

+

(June 6, 2024)

+

Attendees:

+ +

Discussion:

+
    +
  • I presented a detailed plan via PowerPoint outlining my approach to the project. This included an explanation of Safaa's current functionality and its key features, along with identified areas for enhancing pipeline efficiency.
  • +
  • I initiated a discussion comparing TF-IDF with BERT/GPT embeddings. Given our relatively small dataset (~20k), I proposed transitioning to a transformer model if we scale up our dataset size.
  • +
  • Additionally, I recommended replacing the current SVM model with either a transformer model or LSTM for improved performance.
  • +
  • I also suggested initiating parallel work on developing a Python library for the NER-POS tagging task.
  • +
  • To guide me in formulating a structured approach to the pipeline steps, Kaushal shared his perspective by presenting his envisioned pipeline for the project. His insights proved invaluable in identifying and comprehending critical aspects of the pipeline's development and implementation.
  • +
+

Engagements

+

Further discussions covered aspects of model development, validation, testing, monitoring, and ongoing maintenance. I participated in the general meeting, providing comprehensive updates on project progress.

+

Subsequent Steps

+
    +
  • I was assigned the task of writing a script to connect to the Fossology database and retrieve copyright contents. Initially, I was instructed to test the script on my locally hosted Fossology instance using dummy data. Once validated, I will proceed to use the script to fetch actual data.
  • +
  • Additionally, I was tasked with creating a MVP to substantiate my proposal for using embedding models and transformers instead of TF-IDF and SVM. This prototype aims to verify their effectiveness and potential for significant improvements.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-06-13/index.html b/docs/2024/pipeline/updates/2024-06-13/index.html new file mode 100644 index 0000000000..bf7c95b56d --- /dev/null +++ b/docs/2024/pipeline/updates/2024-06-13/index.html @@ -0,0 +1,25 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

WEEK 3

+

(June 13, 2024)

+

Updates

+
    +
  • I had my semester exams running hence I could not make it to the meeting
  • +
  • During the week, Gaurav provided me with a brief overview of Fossology's database structure, explaining the layout and organization of the copyright and copyright_events tables.
  • +
+

Subsequent Steps

+
    +
  • Post-exams, I plan to experiment with the script by connecting it to my local Fossology database to retrieve the copyright notices.
  • +
  • Once the exams conclude, my focus will shift to retrieving the datasets and preparing the framework.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-06-20/index.html b/docs/2024/pipeline/updates/2024-06-20/index.html new file mode 100644 index 0000000000..3d6643e391 --- /dev/null +++ b/docs/2024/pipeline/updates/2024-06-20/index.html @@ -0,0 +1,23 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-06-27/index.html b/docs/2024/pipeline/updates/2024-06-27/index.html new file mode 100644 index 0000000000..2e0e869770 --- /dev/null +++ b/docs/2024/pipeline/updates/2024-06-27/index.html @@ -0,0 +1,50 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

WEEK 5

+

(June 27, 2024)

+

Attendees:

+ +

Discussion:

+
    +
  • +

    Checked use cases to evaluate the current model's preprocessing output and discussed findings. +Checking of corner cases can be found here and my findings can be found documented in this word file.

    +
  • +
  • +

    I researched and explored various NER taggers and began creating a library for NER-POS tagging using Stanford's NER tagger. In parallel, I initiated work on developing a dedicated library for this task and investigated multiple models:

    +
      +
    • SpaCy
    • +
    • NLTK
    • +
    • Flair
    • +
    • Stanford’s CoreNLP
    • +
    • AllenNLP
    • +
    • Apache OpenNLP
    • +
    +
  • +
+

I tested Stanford’s CoreNLP with some random data from the internet to evaluate its model. You can find my code for experimentation here.

+
    +
  • I wrote a Python script using Psycopg to connect to the Fossology database and retrieve copyright contents. During this process, I encountered and addressed several issues. You can find the script here.
  • +
+

Subsequent Steps

+
    +
  • The mentors emphasized the critical importance of completing the framework before progressing further. Therefore, my plan for the next week is to focus on getting the framework ready.
  • +
  • In the NER tagging task, I plan to focus on fine-tuning BERT to perform both NER and POS tagging tasks. Multitask learners, like fine-tuned language models, generally achieve better performance on downstream tasks.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/pipeline/updates/2024-07-04/index.html b/docs/2024/pipeline/updates/2024-07-04/index.html new file mode 100644 index 0000000000..efacabb1f0 --- /dev/null +++ b/docs/2024/pipeline/updates/2024-07-04/index.html @@ -0,0 +1,45 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

WEEK 6

+

(July 4, 2024)

+

Attendees:

+ +

Discussion:

+
    +
  1. Completed the Python script for fetching copyright contents from the database, incorporating Gaurav's recommendation to also retrieve user-modified contents. The updated script now collects copyrights and stores them in a CSV file with four columns:
  2. +
+
original_contentoriginal_is_enablededited_contentmodified_is_enabled
+

You can find the updated script here.

+
    +
  1. +

    Automated the model training process with the idea that at a threshold of 500 new entries in the database, the Safaa model should be retrained. I explored GitHub Actions and wrote a YAML script to check the number of new entries and trigger the model retraining script if the threshold is met. However, due to connection issues between GitHub Actions and the locally hosted database, I consulted the mentors. They suggested making a connection for retraining when a new copyright file is uploaded to the repository. This task will be continued in the coming week, and updates will be provided in the following meeting.

    +
  2. +
  3. +

    Explored incremental learning in Safaa. Currently, Safaa uses Scikit-learn's SVM implementation, which retrains from scratch. Since SVM is incapable of incremental learning, I switched to the SGD Classifier model from Scikit-learn, which supports incremental learning. I calculated its metric reports and found that its results are similar to those of the SVM. As per the mentors' suggestions, I will create a PR showing the results from both SVM and SGD. You can find my implementation for SVM here, for SGD here, and the comparison between them can be found below. The dataset used for implementation can be found here.

    +
  4. +
+

The results are as follows:

+

SGD Classifier:

precisionrecallf1-scoresupport
00.990.990.992878
10.960.980.971016

SVM Classifier:

precisionrecallf1-scoresupport
00.990.990.992878
10.960.970.971016
+
    +
  • Started working on creating a Python library for the NER-POS tagging task. I experimented with the Stanford NER Tagger. You can find my work here. However, I plan on exploring the fine-tuning of BERT or GPT for this task in the coming weeks.
  • +
+

Subsequent Steps

+
    +
  • Address the issue with GitHub Actions by establishing a connection for retraining when a new copyright file is uploaded to the repository. Do all the implementations locally and then create the final yaml file to try out GitHub Actions.
  • +
  • Explore and implement the fine-tuning of BERT or GPT for the NER-POS tagging task.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/API-guidelines/index.html b/docs/2024/rest/API-guidelines/index.html new file mode 100644 index 0000000000..2f79f6fab2 --- /dev/null +++ b/docs/2024/rest/API-guidelines/index.html @@ -0,0 +1,280 @@ + + + + + +REST API Guidelines | GSoC projects at FOSSology + + + + + +

REST API Guidelines

Details

+ +

Motive

+

Since this project primarily focuses on REST API development and improvement, it is crucial to establish a comprehensive guideline from the beginning. This guideline will serve as a set of rules to follow and provide a clear objective to achieve. After researching various reputable open-source projects and reviewing several design guides, I have prepared a detailed guideline document. Please refer to the table below for more information.

+

Guidelines

+
#GuidelineDescriptionExample
1Uniform Interface

The uniform interface principle in RESTful API design +advocates for a consistent and standardised approach to +interactions between clients and servers. Advantages-

  • Predictability
  • Standardisation
  • Scalability

This is widely used in FOSSology, for instance, a user can +send a POST request to /upload endpoint to post a new +upload and can get that particular upload by making a GET +request at /upload/{id}. +get-action +post-action

2Platform Independent

Any client should be able to call the API, regardless of how +the API is implemented internally. This requires +consistent data sharing rules and formats. Advantages-

  • Flexibility
  • Integration

Consider a RESTful API for a weather service. Clients, such +as web applications, mobile apps, and IoT devices, can +retrieve weather data using standardised API endpoints, +regardless of the programming languages or frameworks used +to develop these clients.

3Backward Compatible

The web API should be able to evolve and add functionality +independently from client applications. As the API evolves, +existing client applications should continue to function +without modification. Advantages-

  • Gradual updates
  • Stability
  • Strategic updates

Suppose a social media platform introduces a new endpoint +for retrieving user profile information in a more efficient +manner. To ensure backward compatibility, the platform +retains support for the existing endpoint structure, +allowing older client applications to continue accessing +user profiles without any disruptions. FOSSology implements +this by supporting V1 REST API endpoints in deprecated mode.

4Stateless Behaviour

REST APIs use a stateless request model. The only place +where information is stored is in the resources themselves, +and each request should be an atomic operation. For this +to hold, each request must contain all the information +necessary to understand and process the request. Advantages-

  • Caching
  • Consistency

Consider a shopping website with a RESTful API for managing +user sessions and shopping carts. Each client request, such +as adding items to the cart or proceeding to checkout, +includes all the necessary information (e.g., item IDs, +quantities) for the server to process the request. The +server does not store any client-specific data between +requests, ensuring that the API remains stateless and +scalable, regardless of the number of concurrent users.

5Resource-Oriented Design

REST APIs are structured around resources, which +represent any object, data, or service accessible by +clients. Also, resources of the same type should be clubbed +under the same endpoint. Each resource is uniquely +identified by a URI (Uniform Resource Identifier), +providing a consistent and predictable means of access where +CRUD operations can be defined. Advantages-

  • Easy maintenance
  • Uniformity

The value for these path parameters MUST NOT contain any +unescaped "generic syntax" characters described by +RFC3986.

Suppose we have a RESTful API for managing user accounts in +an e-commerce platform. Each user account is treated as a +resource, with a unique URI (/users/{id}) representing the +resource. Clients can perform CRUD operations on user +accounts using standard HTTP methods enabling seamless +interaction with the API endpoints. Also implemented in +FOSSology +user-id

6Entity-Centric URIs

Base resource URIs on nouns representing business entities +(plural nouns for collections) rather than verbs +indicating operations. Ensure each business entity has a +distinct and simple URI, reflecting its unique identity +and purpose within the system. Advantages-

  • Semantic Consistency
  • Clarity and intuitiveness

Suppose we have a RESTful API for managing products on an +e-commerce platform. Each product is considered a business +entity, and the URIs for accessing these products follow a +noun-based pattern, such as /products/{product_id}. This +approach ensures that each product has a unique and distinct +URI, facilitating efficient resource identification and +interaction within the API.

7Hierarchical Organisation

Organise resources in a hierarchical manner to establish a +structured and intuitive API architecture. Use +parent-child relationships to represent nested +resources, ensuring logical grouping and defined scope +within the API. With each /, the scope of the resource +should become more specific. Advantages-

  • Logical Structuring
  • Simplified Navigation

In a content management system (CMS) API, blog posts may be +organised under a parent resource representing a user's +blog. The hierarchical URI structure could be +/user/{uid}/blog/{bid}, where each segment represents a +nested relationship between resources. This organisation +provides a clear and intuitive path for accessing blog posts +within the context of a specific user and blog.

8Decouple Web API from Data Sources

Think of the web API as an abstraction of the database. +If necessary, introduce a mapping layer (DAO) between the +database and the web API. That way, client applications are +isolated from changes to the underlying database scheme. +Advantages-

  • Abstraction
  • Security

In a web API for a retail platform, the API endpoints should +interact with an abstraction layer or service interface that +encapsulates data access logic. This abstraction shields the +API from direct dependencies on database implementations, +enabling the use of various storage solutions (e.g., SQL +databases, NoSQL databases, cloud storage) without affecting +the API's external behaviour.

9Media types

Standardise the use of media types, also known as MIME +types, to specify data formats exchanged between clients and +servers in the HTTP protocol. For textual data, the widely +supported JSON format (media type = application/json) is +commonly used in web APIs. Advantages-

  • Interoperability
  • Clear communication

The media type definitions SHOULD be in compliance with +RFC6838.

FOSSology widely use "application/json” media type in +response +media-type-1 +media-type-2

10Conform to HTTP semantics

Ensure that the web API adheres to the semantic meaning of +HTTP methods defined by the HTTP protocol. Utilise the +common HTTP methods—GET, POST, PUT, PATCH, and DELETE—to +perform operations that correspond to the creation, +retrieval, modification, and deletion of resources, aligning +with the intended semantics of each method. Advantages-

  • Standardised communication
  • Clarity & Performance

semantics +Standard HTTP methods deployed by FOSSology

11Status Codes

Adhere to standardised HTTP status codes to convey the +outcome of API requests accurately. HTTP status codes +provide a clear indication of the success, failure, or +specific conditions of each request, enabling clients to +interpret and handle responses appropriately. Some common +status codes are as follows:

  • GET Method:

    • 200: OK
    • 204: No Content
    • 404: Not Found
  • POST Method:

    • 200: OK
    • 201: Created
    • 204: No Content
    • 400: Bad Request
  • PUT Method:

    • 200: OK
    • 201: Created
    • 204: No Content
    • 409: Conflict
  • PATCH Method:

    • 400: Bad Request
    • 409: Conflict
    • 415: Unsupported Media Type
  • DELETE Method:

    • 204: No Content
    • 404: Not Found

codes +When a client submits a GET request to retrieve a resource +from a RESTful API, the server responds with a 200 OK status +code if the request is successful, along with the requested +resource in the response body. In the event that a resource is not +found, the server returns a 404 Not Found status code, +indicating to the client that the requested resource does +not exist. By consistently using appropriate status codes in +responses, the API ensures clear and meaningful +communication with clients, enhancing usability and +reliability.

12Empty sets in message bodies

Any time the body of a successful response is empty, the +status code should be 204 (No Content). For empty sets, such +as a response to a filtered request with no items, the +status code should still be 204 (No Content), not 200 +(OK).

no-content +Deleting a user returns 204 (No Content)

13Consistent Casing Conventions

Adopt consistent casing conventions, such as camelCase +or snake_case, for naming identifiers within the API, +including resource names, query parameters, and JSON keys +for both request and response objects. Advantages-

  • Readability and clarity
  • Alignment with industry standards

All field names in the specification are case-sensitive

naming +FOSSology response object using camelCase keys

14Pagination

Exposing a collection of resources through a single URI can +lead to applications fetching large amounts of data when +only a subset of the information is required. Instead, the +API can allow passing a filter in the query string of the +URI, such as page and size, from which only the +specific subset required is sent as a response. Advantages-

  • Saves bandwidth
  • Improves user experience

a GET request to /blog?page=2&size=10 would fetch the +second page of blogs, with each page containing up to 10 +blogs. Pagination headers such as Total Pages, Total Items, +and Page Number can also be included in the response to +provide clients with metadata about the paginated results.

15Filtering

Incorporate filtering functionality into the API to allow +clients to retrieve specific subsets of resources based +on defined criteria. Filtering enables clients to tailor +their requests to match their requirements, facilitating +efficient data retrieval and enhancing the flexibility of +the API. Advantages-

  • Customised data retrieval
  • Enhanced usability

In an e-commerce API, clients may need to retrieve products +based on various attributes such as category, price range, +or availability status. By implementing filtering +functionality, clients can send requests like GET +/products?cat=ele&range=100-500 to retrieve electronics +products within the specified price range. The API processes +the filter parameters and returns only the relevant +products, providing clients with the precise data they need +for their applications.

16Input fields

Place input fields in one of the following based on the +description:

  • Headers- Use headers for sensitive information +or authentication data that should not be visible in +URLs or easily accessible to users. They should be +light- weight and contain protocol related +information rather than business logic.

  • Query Parameters- Use for filtering, sorting, or +specifying additional options related to the +request, such as pagination parameters or search +queries. They should be expressive, intuitive, and +self-descriptive to improve usability and +readability. Do not include sensitive information +here.

  • Body- For large or complex data structures, such +as JSON objects or file uploads, use the request +body to encapsulate the data. Generally, body is +used when the arguments don't have a flat key:value +structure.

  • Path- Use path parameters to specify variable +parts of the URL path. Include input fields that +represent identifiers or resource paths directly in +the URL, such as IDs, slugs, or resource names.

  • Cookie- Use cookies for storing stateful +information or session tokens on the client side.

  • Headers to store sensitive info like cookies and +Authorization. +headers

  • Query parameters are used like

    • Filtering: /products?type=home

    • Pagination: /products?page=1&limit=20

    • Sorting: /products?sort=price&order=asc

    • Search: /products?query=laptop

    Specific to FOSSology, query params can be used to +store name, id, shortName etc.

  • Body is used to store heavy payloads like JSON +objects, or licenseText in terms of FOSSology.

  • Path is used together with Path Templating, where +the parameter value is actually part of the +operation's URL. This does not include the host or +base path of the API. For example, in +/items/{itemId}, the path parameter is itemId.

  • When a user logs in to the website, the server sets +cookies to store the user's preferences. For +example, the server sets a cookie with values like +lang=en&theme=dark. Each time +the user visits a page on the website, the browser +automatically sends the cookie along with the +request and server response accordingly.

17Versioning

Versioning enables a web API to indicate the features and +resources that it exposes, and a client application can +submit requests that are directed to a specific version of a +feature or resource. Service names and API-class names +should be chosen carefully so that they do not change +when products are versioned or rebranded. Advantages-

  • Compatibility
  • Maintenance
  • Documentation

Versioning can have many examples like: +Version

18Use of Models

Utilise models to encapsulate and represent data structures +exchanged between clients and the API. Models serve as +structured representations of resources and response data. +Advantages-

  • Consistency and standardisation
  • Encapsulation
  • Semantic enforcement

models +Semantic enforcement in one of the models at FOSSology.

19Concrete Architecture

Adopt a concrete architecture and directory separation +strategy for organising the API codebase. Implementing a +clear architectural pattern, such as MVC +(Model-View-Controller) or similar, along with structured +directory separation, enhances code maintainability, +scalability, and overall project structure. Advantages-

  • Code maintainability
  • Team Collaboration

Architecture +. +Folder structure of FOSSology REST API.

20JSON Representation

With regard to JSON representation property names, and URL +query parameters, services should:

  • Choose meaningful and succinct names,
  • Do not reuse any names reserved for other purposes by +these guidelines,

  • Avoid internal naming conflicts by reusing names for +dissimilar purposes,

  • Use plural nouns for arrays,
  • Use singular nouns for non-arrays,
  • Begin with lowercase letters,
  • Prefer camelCase over snake_cases,
  • Follow SCIM Schema naming when the field represents +data from the directory,

  • Be case-sensitive.

JSONRepresentation +In this example:

  • Property names are meaningful and succinct, such as +userId, userName, emailAddress, etc.

  • Plural nouns are used for arrays (roles).
  • Singular nouns are used for non-arrays (userId, +userName, etc.).

  • Property names begin with lowercase letters and use +camelCase.

  • SCIM Schema naming convention is followed where +appropriate (userId, userName, emailAddress).

  • The representation is case-sensitive, adhering to +the guideline.

21Date and Time fields

All fields with a date/time should follow ISO 8601 and be +in UTC timezone.

The W3C note provides +clarification and examples.

22Cross-Origin Resource Sharing (CORS) Policy

The API service must adhere to CORS specifications, +supporting both simple and preflight request flows. The +Access-Control-Allow-Origin header should be returned in +responses to enable cross-origin resource sharing. +Advantages-

  • Security compliance
  • Enforcement of policies

cors CORS +headers returned by FOSSology in a response.

23Error Handling

Standardise the format and handling of error objects +returned by the API to provide consistent and informative +error responses to clients. Error objects should include +relevant information such as error codes, messages, and +additional details to assist developers in troubleshooting +and debugging issues. Advantages-

  • Consistency in error responses
  • Better error communication

error +Example of a good error response. Usually, errors are handled +using error middleware.

24Data Validation

Implement robust data validation mechanisms to ensure the +integrity, consistency, and security of incoming data, either +by using models or regular expressions. Advantages-

  • Prevents Data Corruption
  • Enhances Security

validation +Data validation using regular expressions as FOSSology

25Security

Prioritise security measures throughout the design, +development, deployment, and maintenance phases of the REST +API to mitigate potential threats and vulnerabilities. +Security considerations include implementing authentication, +authorization, encryption, input validation, rate limiting, +and protection against common attacks such as injection, +XSS, CSRF, and unauthorised access. Advantages-

  • Data Confidentiality
  • Prevention of Attacks

security +Authentication middleware at FOSSology

26Testing

Adopt a comprehensive testing strategy to ensure the +reliability, functionality, and performance of the REST API. +Implement unit tests, integration tests, and end-to-end +tests to validate individual components, interactions +between components, and the behaviour of the API as a whole. +Testing should cover various scenarios, including positive +and negative cases, edge cases, error handling, and +concurrency. Advantages-

  • Reliability
  • Enhanced Quality Assurance

testing +Test suite for FOSSology REST API

27Documentation

Use clear and consistent language, along with structured +formats such as OpenAPI Specification (formerly known as +Swagger), to organise and present the documentation +effectively. Keep the documentation up-to-date with the +latest changes and enhancements. Also, API documentation +should happen before working on the code, as it provides a +solid aim to achieve.

documentation +FOSSology REST API documentation being viewed on Swagger +editor using openapi.yml file

+

References

+
+ + \ No newline at end of file diff --git a/docs/2024/rest/index.html b/docs/2024/rest/index.html new file mode 100644 index 0000000000..f9938f9475 --- /dev/null +++ b/docs/2024/rest/index.html @@ -0,0 +1,61 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Authors

+ +

Project title

+

REST API Improvements

+

What's the project about?

+

In recent years, FOSSology's REST APIs have expanded significantly, enhancing user accessibility, flexibility, and automation. However, the development is not yet complete, prompting some users to resort to mocking WebUI access solely for information retrieval. With the development of FOSSology's new React UI also underway, robust support for REST APIs becomes imperative.

+

This project aims to finalize the development of FOSSology's REST API by exposing any remaining endpoints, enhancing and upgrading existing ones to V2, increasing test coverage, and improving documentation. The approach involves a comprehensive review of each module to ensure the availability and exposure of required APIs for frontend consumption. These efforts will streamline development workflows, enhancing the overall usability of the FOSSology platform and facilitating the development of the new React UI.

+

What should be done?

+

This project involves the following tasks:

+
    +
  1. +

    Exposing New API Endpoints:

    +
      +
    • Identify and expose any remaining endpoints required for frontend consumption.
    • +
    • Ensure that all endpoints are RESTful and adhere to the OpenAPI specification.
    • +
    • Update documentation to reflect the new endpoints and their usage.
    • +
    +
  2. +
  3. +

    Upgrading Existing Endpoints to Version 2:

    +
      +
    • Develop a REST API guideline which will provide a solid set of rules to follow.
    • +
    • Upgrade existing endpoints to V2 based on the guideline, also ensuring backward compatibility.
    • +
    • Update documentation to reflect the changes and versioning.
    • +
    +
  4. +
  5. +

    Increasing Test Coverage:

    +
      +
    • Study each endpoint and its functionality to identify potential edge cases.
    • +
    • Write unit tests for all existing and new endpoints.
    • +
    +
  6. +
+

More specific details about each task can be found in the Task Details Table.

+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-05-07/index.html b/docs/2024/rest/updates/Divij/2024-05-07/index.html new file mode 100644 index 0000000000..93aeb89db2 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-05-07/index.html @@ -0,0 +1,85 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

+

Introduction meeting

+

(May 7,2024)

+

This was the first meeting of the community bonding period for GSoC '24. Mentors and contributors introduced themselves, and the general meeting time and platform were decided.

+

Meeting 1

+

(May 9,2024)

+

This was the first general meeting after the introduction meeting. Mentors discussed the importance of communication and the need for regular updates. The contributors were free to ask any questions they had.

+

During community bonding week 1

+

(May 9,2024- May 15,2024)

+

Activities

+
    +
  • I created an unofficial communication group with fellow contributors to get to know each other better.
  • +
  • I discussed the project and the tasks that need to be completed during the coding period with the mentors.
  • +
  • I clarified some of my doubts regarding the project timeline.
  • +
+

Work done

+ +

Meeting 2

+

(May 16,2024)

+

We discussed the progress made during the first week of community bonding. Mentors asked if contributors were able to set up their development environments and if they faced any issues. Everyone gave a brief overview of the tasks they were working on.

+

During community bonding week 2

+

(May 16,2024- May 22,2024)

+

Activities

+
    +
  • I had calls with fellow contributors to help them set up their development environments.
  • +
  • I had a discussion with my colleague Valens about how we shall manage our tasks.
  • +
+

Work done

+ +

Meeting 3

+

(May 23,2024)

+

We discussed the progress made during the second week of the community bonding period. Mentors asked if contributors faced any issues while installing the project and encouraged us to make small contributions. We also decided on the time for project-specific weekly meetings.

+

During community bonding week 3

+

(May 23,2024- May 29,2024)

+

Activities

+
    +
  • I helped few of my colleagues in setting up their development environments.
  • +
+

Work done

+ +

Meeting 4

+

(May 30,2024)

+

We discussed the progress made during the third week of the community bonding period. Mentors gave general updates followed by weekly updates by contributors. We had a session on how are we supposed to present and maintain our work during the coding period through the documentation.

+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-05-30/index.html b/docs/2024/rest/updates/Divij/2024-05-30/index.html new file mode 100644 index 0000000000..91f802ad23 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-05-30/index.html @@ -0,0 +1,64 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1 meeting and activities

+

(May 30,2024)

+

Attendees

+ +

Discussion

+
    +
  • +

    Who should be doing what?

    +
      +
    • Discussed project responsibilities with my colleague Valens and mentors.
    • +
    • We decided that currently I will focus on the REST API Version 2 upgrade and OAuth 2.0 implementation, while Valens would work on adding test cases for the current REST API implementation.
    • +
    +
  • +
  • +

    REST API Version 2 updates

    +
      +
    • I mentioned that the work on the REST API Version 2 upgrade is almost complete and suggested we can start looking for any further improvements.
    • +
    • Mentors suggested I should review the code and look for any possible improvements based on my proposed guidelines. (REST API Guidelines).
    • +
    +
  • +
  • +

    OAuth 2.0 architecture discussion and needs

    +
      +
    • Gaurav explained the various modes of authentication we aim to have in the FOSSology project. These are: +
        +
      • Token based authentication
      • +
      • Authorization Code Grant (Web Application)
      • +
      • Client Credentials Grant (Machine to Machine)
      • +
      +
    • +
    • I cleared my doubts regarding the OAuth 2.0 implementation and its significance in the project. I also got a rough vision of what needs to be implemented and what is already implemented. (Reference Material)
    • +
    +
  • +
+

Activities

+
    +
  • Tested the REST API Version 2 on a local instance and noted down the improvements that can be made.
  • +
  • Researched on OAuth 2.0 and how it can be implemented in the project.
  • +
  • Did minor improvements in the following PR: + +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-06-06/index.html b/docs/2024/rest/updates/Divij/2024-06-06/index.html new file mode 100644 index 0000000000..5c3626fc59 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-06-06/index.html @@ -0,0 +1,74 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2 meeting and activities

+

(June 6,2024)

+

Attendees

+ +

Discussion

+
    +
  • No major updates since the last meeting.
  • +
  • Discussed the improvements that can be made in the REST API Version 2.
  • +
  • Discussed the implementation of OAuth 2.0 in the project.
  • +
+

Activities

+
    +
  • +

    OAuth 2.0

    +
      +
    • +

      Researched OAuth 2.0 and its application on production servers. Found the Auth0 article particularly helpful. Studied various architectural patterns for different flows to determine the best fit for our project.

      +
    • +
    • +

      Prepared a draft outlining the implementation details, focusing on two scenarios:

      +
        +
      • +

        For the API:

        +
          +
        • Create an endpoint to add new clients, accepting name, clientId, and scope.
        • +
        • Another endpoint to configure FOSSology, accepting appName, clientId, clientSecret, clientClaim, redirectUri, and discoveryUri. The discoveryUri will be used to fetch other required endpoints.
        • +
        • Once these steps are completed, FOSSology will be configured to use OAuth 2.0. Users can obtain a token from their authorization server to access the FOSSology API.
        • +
        +
      • +
      • +

        For the Web Application:

        +
          +
        • Implement the Authorization Code Grant flow for the frontend. This requires a login page where users can log in and receive a code, which can be exchanged for a token to access the FOSSology API.
        • +
        • Researched libraries to implement this flow on the frontend.
        • +
        • On the server side, implement a mechanism to verify user credentials received from the server and issue a token to the user.
        • +
        +
      • +
      +
    • +
    +
  • +
  • +

    REST API Version 2

    +
      +
    • Reviewed the code and identified areas for improvement.
    • +
    • Found the following things which we can look into: +
        +
      • Status Codes: Particularly 204 (no content)
      • +
      • Adding pagination to all necessary endpoints
      • +
      • Using model classes for all major/minor responses
      • +
      • Test coverage
      • +
      • Authentication workflow
      • +
      +
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-06-11/index.html b/docs/2024/rest/updates/Divij/2024-06-11/index.html new file mode 100644 index 0000000000..38dd010196 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-06-11/index.html @@ -0,0 +1,88 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3 meeting and activities

+

(June 11,2024)

+

Attendees

+ +

Discussion

+
    +
  • OAuth +
      +
    • Proposed 2 mechanisms for OAuth 2.0 implementation in the project. +
        +
      • M-2-M, for technical uesrs: +
          +
        • Clients must obtain a token from the authorization server using their client ID and client secret.
        • +
        • The token can be used to access the FOSSology API.
        • +
        • For this to happen, FOSSology server must be configured to use OAuth 2.0.
        • +
        • REST API will have endpoints to do this configuration.
        • +
        • Token sent should be verified by the server and user should be authenticated and authorized.
        • +
        +
      • +
      • Authorization Code Grant, for end users and new UI: +
          +
        • Only for client applications that can interact with the user.
        • +
        • Can use various npm libraries to implement this flow.
        • +
        • Users will log in and receive a code.
        • +
        • This code can be exchanged for a token to access the FOSSology API.
        • +
        +
      • +
      +
    • +
    • Gaurav mentioned that the client id for both the mechanisms will be different, which will cause problems when using the same client for both the mechanisms.
    • +
    • We will have to look into this and find a solution. Maybe I will handle this in the last week.
    • +
    • Discussed the improvements that can be made in the REST API Version 2, particularly the status codes and pagination.
    • +
    +
  • +
+

Activities

+
    +
  • +

    OAuth 2.0 M-2-M implementation

    +
      +
    • Implemented the OAuth 2.0 M-2-M mechanism for the project.
    • +
    • Created an endpoint /users/oauthclient to add new clients when user is logged in.
    • +
    • Created an endpoint /users/oauthclient/{type} to get active and expired OAuth clients.
    • +
    • The /customise endpoint used to accept only a single key-value pair for updating admin configs, making it difficult to update fields in bulk. I've modified it to accept an array of key-value pairs and update accordingly.
    • +
    • The /customise endpoint is now capable to fetch all other URLs required for OIDC integration when the discovery URL is passed over the REST API.
    • +
    • Raised a PR feat(oauth): Added machine-to-machine OAuth functionality for the same.
    • +
    +
  • +
  • +

    REST API Version 2

    +
      +
    • Started working on the improvements identified in the last meeting: +
        +
      • Status Codes: Particularly 204 (no content)
      • +
      • Adding pagination to all necessary endpoints
      • +
      • Using model classes for all major/minor responses
      • +
      • Test coverage
      • +
      • Authentication workflow
      • +
      +
    • +
    • Made requested changes in the PR feat(api): Upgrade Jobs & Report APIs to Version 2.
    • +
    +
  • +
+

SecreenShots

+
    +
  • /users/oauthclient : Add new clients when user is logged in. +addclients
  • +
  • /users/oauthclient/{type} : Get active and expired OAuth clients. +viewclients
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-06-18/index.html b/docs/2024/rest/updates/Divij/2024-06-18/index.html new file mode 100644 index 0000000000..9871c0a017 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-06-18/index.html @@ -0,0 +1,130 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4 meeting and activities

+

(June 18,2024)

+

Attendees

+ +

Discussion

+
    +
  • Gave updates and demo on previous week's work.
  • +
  • Discussed on the endpoint requirements for the One Shot Analysis and User Copyright Findings.
  • +
  • Resolved some queries regarding the architecture of APIs.
  • +
+

Activities

+
    +
  • +

    One Shot Analysis

    +
      +
    • Exposed 3 new endpoints to enable One Shot Analysis in the REST API: +
        +
      • /uploads/oneshot/nomos to run a Nomos scan on the uploaded file.
      • +
      • /uploads/oneshot/monk to run a Monk scan on the uploaded file.
      • +
      • /uploads/oneshot/ceu to run Copyright, Email and URL scan on the uploaded file.
      • +
      +
    • +
    • All of these endpoints accept a file binary and return the scan results in the following format: +
        +
      • Data Type : What is the scan returning (Nomos, Monk, CEU). Can take values like license and copyright.
      • +
      • Highlight : The highlighted text in the scan results based on the data type (license, copyright, emails, URLs etc).
      • +
      +
    • +
    • Decided on not returning the scanned file in the response as it increases unnecessary load on the server. It can always be accessed from the frontend.
    • +
    • Uplink PR: feat(api): Added OneShot analysis endpoints for license & copyright
    • +
    +
  • +
  • +

    User Copyright Findings

    +
      +
    • Exposed 5 new endpoints to enable User Copyright operations in the REST API: +
        +
      • /uploads/{id}/item/{itemId}/user-copyrights to retrieve user copyright findings.
      • +
      • /uploads/{id}/item/{itemId}/user-copyrights/{hash} to deactivate user copyright findings.
      • +
      • /uploads/{id}/item/{itemId}/user-copyrights/{hash} to restore deactivated user copyright findings.
      • +
      • /uploads/{id}/item/{itemId}/user-copyrights/{hash} to update user copyright findings.
      • +
      • /uploads/{id}/item/{itemId}/totalusercopyrights to get the count of user copyright findings.
      • +
      +
    • +
    • Uplink PR: feat(api): New endpoints to get/delete/restore/update user copyright findings
    • +
    +
  • +
  • +

    OAuth 2.0 Authorization Code Flow

    +
      +
    • Created the complete OAuth 2.0 Authorization Code Flow for the new UI.
    • +
    • Exposed the following endpoints to enable the mechanism: +
        +
      • /oauth/login to get the authorization redirect URL from the server.
      • +
      • /oauth/callback to exchange the authorization code for an access token.
      • +
      +
    • +
    • Below is how the flow works: +
        +
      • Frontend will hit the /oauth/login endpoint to get the authorization URL and will be redirected to the authorization URL for the user to log in.
      • +
      • User will log in and authorize the client application, and they will be redirected back to the frontend with an authorization code and a state (to prevent CSRF attacks).
      • +
      • Frontend will hit the /oauth/callback endpoint with the authorization code and state to get the access token. The access token will be stored in the frontend and will be used to access the FOSSology API. +
          +
        • The authorization code will be exchanged for an access token by the FOSSology server using the configs.
        • +
        • This token will be decoded, and the user will be authenticated if they have the same client id added in their active clients.
        • +
        • The drawback with this is the the user needs to know the client id to access the API.
        • +
        +
      • +
      +
    • +
    • Made a client side application OAuthFossy to test the flow.
    • +
    • Uplink PR: feat(oauth): Added Authorization Code Grant OAuth functionality
    • +
    +
  • +
+

Screenshots

+
    +
  • +

    One Shot Analysis

    +
      +
    • POST /uploads/oneshot/nomos to run a Nomos scan on the uploaded file. +Nomos
    • +
    • POST /uploads/oneshot/monk to run a Monk scan on the uploaded file. +Monk
    • +
    • POST /uploads/oneshot/ceu to run Copyright, Email and URL scan on the uploaded file. +CEU
    • +
    +
  • +
  • +

    User Copyright Findings

    +
      +
    • GET /uploads/{id}/item/{itemId}/user-copyrights to retrieve user copyright findings. +get
    • +
    • DELETE /uploads/{id}/item/{itemId}/user-copyrights/{hash} to deactivate user copyright findings. +delete
    • +
    • PATCH /uploads/{id}/item/{itemId}/user-copyrights/{hash} to restore deactivated user copyright findings. +patch
    • +
    • PUT /uploads/{id}/item/{itemId}/user-copyrights/{hash} to update user copyright findings. +put
    • +
    • GET /uploads/{id}/item/{itemId}/totalusercopyrights to get the count of user copyright findings. +count
    • +
    +
  • +
  • +

    OAuth 2.0 Authorization Code Flow

    +
      +
    • GET /oauth/login to get the authorization redirect URL from the server. +login
    • +
    • POST /oauth/callback to exchange the authorization code for an access token. +callback
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-06-25/index.html b/docs/2024/rest/updates/Divij/2024-06-25/index.html new file mode 100644 index 0000000000..671ea7da45 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-06-25/index.html @@ -0,0 +1,122 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5 meeting and activities

+

(June 25,2024)

+

Attendees

+ +

Discussion

+
    +
  • +

    One Shot Analysis

    +
      +
    • Showed demo on the One Shot Analysis endpoints. The endpoints are used to run Nomos, Monk and CEU scans on the uploaded file.
    • +
    • Raised a concern about start and end parameters in the highlights object are casted as string in the response. Got a suggestion to cast them as integer.
    • +
    • Shared that the endpoints don't return the scanned text, as passing it in the response will make the server slow and is not a requirement either. Scanned text can always be processed on the client side. Got positive feedback on this.
    • +
    +
  • +
  • +

    User Copyright Findings

    +
      +
    • Showed screenshots of the new endpoints to get/delete/restore/update/count user copyright findings. The endpoints are used to manage the user copyright findings.
    • +
    • No concerns were raised about these endpoints.
    • +
    • Will need to implement similar endpoints for scancode findings for copyright, email, author and URL.
    • +
    • Asked about the necessity of count endpoint. It can be skipped as of now as it was a user request specifically for copyright endpoint, which is already implemented.
    • +
    +
  • +
  • +

    OAuth 2.0 Authorization Code Flow

    +
      +
    • Showed a demo on the OAuth 2.0 Authorization Code Flow. The endpoints are used to get the authorization redirect URL from the server and exchange the authorization code for an access token.
    • +
    • Following concerns were raised: +
        +
      • Since the flow type is Authorization Code, the user should not add the client in their list of active clients. The client should be added by the server admin in FOSSology configuration only.
      • +
      • Since the client is no longer added by the user, the current auth flow will not work as we were authorizing the client based on the client id they have added.
      • +
      +
    • +
    • Got a suggestion to use the /userinfo endpoint to get the user details based on the access token and then authorize the client based on the user details.
    • +
    +
  • +
+

Activities

+
    +
  • +

    Added 12 new endpoints to expose operations for scancode findings for copyright, email, author and URL.

    +
      +
    1. +

      Added the following new endpoints for scancode copyright findings.

      +
    2. +
    +
      +
    • GET uploads/{id}/item/{itemId}/scancode-copyrights : To retrieve scancode copyright findings.
    • +
    • DELETE uploads/{id}/item/{itemId}/scancode-copyrights/{hash} : To deactivate scancode copyright.
    • +
    • PATCH uploads/{id}/item/{itemId}/scancode-copyrights/{hash} : To restore deactivated scancode copyright.
    • +
    • PUT uploads/{id}/item/{itemId}/scancode-copyrights/{hash} : To update scancode copyright.
    • +
    +
      +
    1. +

      Added the following new endpoints for scancode email findings.

      +
    2. +
    +
      +
    • GET uploads/{id}/item/{itemId}/scancode-emails : To retrieve scancode email findings.
    • +
    • DELETE uploads/{id}/item/{itemId}/scancode-emails/{hash} : To deactivate scancode email.
    • +
    • PATCH uploads/{id}/item/{itemId}/scancode-emails/{hash} : To restore deactivated scancode email.
    • +
    • PUT uploads/{id}/item/{itemId}/scancode-emails/{hash} : To update scancode email.
    • +
    +
      +
    1. +

      Added the following new endpoints for scancode url findings.

      +
    2. +
    +
      +
    • GET uploads/{id}/item/{itemId}/scancode-urls : To retrieve scancode url findings.
    • +
    • DELETE uploads/{id}/item/{itemId}/scancode-urls/{hash} : To deactivate scancode url.
    • +
    • PATCH uploads/{id}/item/{itemId}/scancode-urls/{hash} : To restore deactivated scancode url.
    • +
    • PUT uploads/{id}/item/{itemId}/scancode-urls/{hash} : To update scancode url.
    • +
    +
      +
    1. +

      Added the following new endpoints for scancode author findings.

      +
    2. +
    +
      +
    • GET uploads/{id}/item/{itemId}/scancode-authors : To retrieve scancode author findings.
    • +
    • DELETE uploads/{id}/item/{itemId}/scancode-authors/{hash} : To deactivate scancode author.
    • +
    • PATCH uploads/{id}/item/{itemId}/scancode-authors/{hash} : To restore deactivated scancode author.
    • +
    • PUT uploads/{id}/item/{itemId}/scancode-authors/{hash} : To update scancode author.
    • +
    +

    Uplink PR feat(api): New endpoints to get/delete/restore/update scancode copyright, email, author, url findings

    +
  • +
  • +

    Updated the start and end parameters in the highlights object to be casted as integer in the response.

    +

    Uplink PR feat(api): Added OneShot analysis endpoints for license & copyright

    +
  • +
+

Screenshots

+
    +
  • GET uploads/{id}/item/{itemId}/scancode-copyrights : To retrieve scancode copyright findings. +get
  • +
  • DELETE uploads/{id}/item/{itemId}/scancode-copyrights/{hash} : To deactivate scancode copyright. +delete
  • +
  • PATCH uploads/{id}/item/{itemId}/scancode-copyrights/{hash} : To restore deactivated scancode copyright. +patch
  • +
  • PUT uploads/{id}/item/{itemId}/scancode-copyrights/{hash} : To update scancode copyright. +put
  • +
+

Screenshots are similar for email, url and author endpoints.

+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-07-02/index.html b/docs/2024/rest/updates/Divij/2024-07-02/index.html new file mode 100644 index 0000000000..8c73e91873 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-07-02/index.html @@ -0,0 +1,63 @@ + + + + + +Week 6 | GSoC projects at FOSSology + + + + + +

Week 6 meeting and activities

+

(July 02,2024)

+

Attendees

+ +

Discussion

+
    +
  • Gave updates and demo on previous week's work.
  • +
  • Discussed on the endpoint requirements for the Jobs API.
  • +
+

Activities

+
    +
  • +

    Modified /jobs, /jobs/{id}, /jobs/all endpoints considering the following points:

    +
      +
    1. +

      Currently, the structure of the jobs object returned by these endpoints is as follows:

      +
      [
      {
      "id": <job id>,
      "name": <name of the job (upload name)>,
      "queueDate": <job queue date>,
      "uploadId": <upload id of the package>,
      "userId": <user id of the user>,
      "groupId": <group id of the user>,
      "eta": <time left>,
      "status": <job status (completed, killed, failed, etc.)>
      }
      ]
      +

      This structure has the following problems, as outlined in #1301, #1800 and #1972.

      +
        +
      • The structure is very simple, and does not provide much information about the job.
      • +
      • For example, the agent triggered by the job is not present in the response.
      • +
      • There is no information about child jobs being executed, and what is the status of each child job.
      • +
      • The information about status is redundant and returns invalid response for some testcases.
      • +
      • (After queue was added) The parent job status is determined by the success/failure of all the jobs related to that specific upload, and not the child jobs.
      • +
      • This, along with the current structure, makes it impossible to determine what exactly failed.
      • +
      +
    2. +
    3. +

      To handle all the things mentioned in point 1, I modified the structure as:

      +
      [
      {
      "id": <job id>,
      "name": <name of the job (upload name)>,
      "queueDate": <job queue date>,
      "uploadId": <upload id of the package>,
      "userId": <user id of the user>,
      "groupId": <group id of the user>,
      "eta": <time left>,
      "status": <job status (completed, killed, failed, etc.)>,
      "jobQueue": [
      {
      "jobQueueId": <job queue id>,
      "jobQueueType": <job queue type (generally agent name)>,
      "startTime": <job queue start time>,
      "endTime": <job queue end time>,
      "status": <job queue completion statu>,
      "itemsProcessed": <number of items processed>,
      "log": <location of log file if exists>,
      "dependencies": <Array: list of dependent job queue ids>,
      "itemsPerSec": <number of items processed per second>,
      "canDoActions": <job can accept new actions like pause and cancel>,
      "isInProgress": <checks if the job queue is still in progress>,
      "isReady": <is the job ready>,
      "download": {
      "text": <text for download link>,
      "link": <link to download the report
      }
      }
      ]
      }
      ]
      +

      This structure provides a lot more information about the job, and also provides information about the child jobs being executed, and what is the status of each child job. Attaching a screenshot of the response below.

      +

      newJobs

      +
    4. +
    5. +

      The same structure is used for the /jobs/{id} and /jobs/all endpoints.

      +
    6. +
    7. +

      The status returned by the endpoints now depend solely on the status of the child jobs, and not all the jobs related to the upload.

      +
    8. +
    +

    Uplink PR feat(api): New endpoints to get/delete/restore/update scancode copyright, email, author, url findings

    +
  • +
  • +

    Worked on documenting some improvements in the REST API implementation.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-07-09/index.html b/docs/2024/rest/updates/Divij/2024-07-09/index.html new file mode 100644 index 0000000000..8b6b2d06fa --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-07-09/index.html @@ -0,0 +1,40 @@ + + + + + +Week 7 | GSoC projects at FOSSology + + + + + +

Week 7 meeting and activities

+

(July 09,2024)

+

Attendees

+ +

Discussion

+
    +
  • Gave updates and demo on /jobs, /jobs/{id}, /jobs/all endpoints.
  • +
  • Raised a doubt regarding a failing test for /jobs endpoint.
  • +
  • Briefly discussed and reviewed the test cases development for the REST API with Valens
  • +
+

Activities

+
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/Divij/2024-07-16/index.html b/docs/2024/rest/updates/Divij/2024-07-16/index.html new file mode 100644 index 0000000000..327bb713e0 --- /dev/null +++ b/docs/2024/rest/updates/Divij/2024-07-16/index.html @@ -0,0 +1,46 @@ + + + + + +Week 8 | GSoC projects at FOSSology + + + + + +

Week 8 meeting and activities

+

(July 16,2024)

+

Attendees

+ +

Discussion

+
    +
  • Discussed the implementation of /jobs, /jobs/{id}, /jobs/all endpoints.
  • +
  • Following suggestions/improvements were discussed: +
      +
    1. The /jobs/history endpoint can be safely deprecated in V2, since the same functionality can be achieved by using the /jobs?upload=<id> endpoint.
    2. +
    3. The startTime and endTime fields in the jobQueue do not contain the timezone information. It was suggested to add the timezone information to these fields and make the format consistent with the queueDate field.
    4. +
    5. The output should be sorted by the queueDate field in descending order, so that the latest jobs are displayed first.
    6. +
    7. For the failing tests, it was suggested to cut out additional data from the mid-function calls and mock the object as a whole.
    8. +
    +
  • +
  • Briefly discussed and reviewed the test case development for the REST API with Valens.
  • +
+

Activities

+
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/valens/2024-05-07/index.html b/docs/2024/rest/updates/valens/2024-05-07/index.html new file mode 100644 index 0000000000..0c4cac9796 --- /dev/null +++ b/docs/2024/rest/updates/valens/2024-05-07/index.html @@ -0,0 +1,39 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

+

Introduction meeting

+

(May 7,2024)

+

We had the introductory meeting opening the community bonding for GSoC'24. All members, including mentors and contributors, introduced themselves and discussed more about the general meeting time and platform decision.

+

Meeting 1

+

(May 9,2024)

+

After introductory meetinThis was our initial general meeting following the introductory session. The mentors emphasized the significance of maintaining communication and providing updates. Contributors were encouraged to ask any questions they had.

+

During community bonding week 1

+

(May 12,2024- May 18,2024)

+

Activities

+
    +
  • Discussed with mentors more about the project and the tasks that need to be completed.
  • +
  • Got in touch with fellow contributors, sharing ideas on how we were going to approach our respective projects.
  • +
+

Work done

+
    +
  • I set up the project's development environment.
  • +
  • Cleared some doubts and asked questions to understand the project better..
  • +
+

Meeting 2

+

(May 30,2024)

+
    +
  • Mentors asked for any updates from contributors.
  • +
  • Mentors asked to update the documentation tool before joining the next call.
  • +
  • Mentors explained about the GSoC tool documentation tool, different rules for the code, and documentation.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/valens/2024-05-30/index.html b/docs/2024/rest/updates/valens/2024-05-30/index.html new file mode 100644 index 0000000000..66fae7ff16 --- /dev/null +++ b/docs/2024/rest/updates/valens/2024-05-30/index.html @@ -0,0 +1,35 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1 meeting and activities

+

(May 30,2024)

+

Attendees:

+ +

Discussion:

+
    +
  • +

    Who should be doing what?

    +
      +
    • I had discussion with mentors and my colleague Divij Sharma.
    • +
    • Divided responsibilities with my colleague Divij Sharma.
    • +
    • We took a decision that I will be focusing on adding test cases for the current REST API implementation while Sharma would focus on REST API version 2 upgrade and OAuth 2.0 implementation.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/valens/2024-06-13/index.html b/docs/2024/rest/updates/valens/2024-06-13/index.html new file mode 100644 index 0000000000..95af444485 --- /dev/null +++ b/docs/2024/rest/updates/valens/2024-06-13/index.html @@ -0,0 +1,38 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 3 meeting and activities

+

(June 13,2024)

+

Attendees:

+ +

Discussion:

+
    +
  • I and my colleague Divij Sharma provided updates on the progress of the project.
  • +
+

Activities:

+
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/valens/2024-06-20/index.html b/docs/2024/rest/updates/valens/2024-06-20/index.html new file mode 100644 index 0000000000..e98820d269 --- /dev/null +++ b/docs/2024/rest/updates/valens/2024-06-20/index.html @@ -0,0 +1,40 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3 meeting and activities

+

(June 13,2024)

+

Attendees:

+ +

Discussion:

+ +

Activities:

+
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/valens/2024-06-27/index.html b/docs/2024/rest/updates/valens/2024-06-27/index.html new file mode 100644 index 0000000000..0b94260e04 --- /dev/null +++ b/docs/2024/rest/updates/valens/2024-06-27/index.html @@ -0,0 +1,35 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +
+ + \ No newline at end of file diff --git a/docs/2024/rest/updates/valens/2024-07-04/index.html b/docs/2024/rest/updates/valens/2024-07-04/index.html new file mode 100644 index 0000000000..2c5b1ff230 --- /dev/null +++ b/docs/2024/rest/updates/valens/2024-07-04/index.html @@ -0,0 +1,40 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5 meeting and activities

+

(July 04,2024)

+

Attendees:

+ +

Discussion:

+
    +
  • Contributors including myself shared updates for their respective projects.
  • +
  • My mentors suggested that I start thinking about integration tests as well, and I promised to work on them after finalizing unit test cases during the last six weeks of the next phase.
  • +
+

Activities:

+
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/index.html b/docs/2024/scheduler/index.html new file mode 100644 index 0000000000..a69d776671 --- /dev/null +++ b/docs/2024/scheduler/index.html @@ -0,0 +1,148 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Aaditya Singh

+

Contact info

+ +

Project title

+

Scheduler overhaul

+

What's the project about?

+

This project aims to enhance the job scheduling capabilities of FOSSology by transitioning from a C-based implementation to a Go-based system. The overhaul focuses on leveraging Go's modern language features to improve concurrency, performance, and maintainability. This transition addresses the scalability and system throughput challenges in the current scheduler.

+

Architecture Overview

+

C-architecture

+

The Current architecture utilises the a multi-threaded approach to manage job scheduling & execution.It is structured around several key components:

+
    +
  1. +

    Main Thread: Acts as the scheduler's control unit, managing worker threads and overseeing system operations like resource allocation and health monitoring.

    +
  2. +
  3. +

    Job Execution Queue: Holds and manages incoming job requests, facilitating efficient job processing and priority control.

    +
  4. +
  5. +

    Worker Threads: Executes jobs from the queue under the main thread’s management, optimizing resource use and performance.

    +
  6. +
  7. +

    Scheduler Logic: Determines the execution order of jobs based on priority and resource availability, ensuring systematic and efficient processing.

    +
  8. +
  9. +

    Database Interaction: Handles storage of job logs and results, supporting tracking, auditing, and data persistence.

    +
  10. +
  11. +

    Error Handling Mechanism: Manages job execution errors to ensure stability and prevent system-wide impacts from failures.

    +
  12. +
  13. +

    Resource Allocation: Distributes resources across jobs and threads to avoid contention and ensure efficient execution.

    +
  14. +
+

Key Challenges:

+
    +
  1. +

    Concurrency and Synchronization: Ensuring that multiple worker threads operate without interfering with each other requires meticulous management of resources and synchronization.

    +
  2. +
  3. +

    Efficiency and Throughput: The system must optimize the processing of jobs to minimize wait times and maximize the throughput of the scheduler.

    +
  4. +
  5. +

    Scalability: As the number of jobs increases, the system must scale appropriately to handle the increased load without degradation in performance.

    +
  6. +
  7. +

    Flexibility: Adapting to varied job types and changing operational conditions while maintaining performance and reliability.

    +
  8. +
+

What should be done?

+

What are the plans for the project?

+
    +
  1. +

    Refactor Existing Code: Transitioning the existing C codebase to Go, restructuring components to fit the Go idiom.

    +
    +

    Why Go?

    +
    +
      +
    • +

      Concurrency and Performance: Go's native goroutine and channel-based concurrency model is highly efficient for processes that require concurrent execution, which is critical for job scheduling.

      +
    • +
    • +

      Memory Safety: Automatic memory management and garbage collection in Go reduce the risk of memory-related errors, a common challenge in C due to its manual memory handling.

      +
    • +
    • +

      Simplicity and Productivity: Go's clean and concise syntax, along with its powerful standard library, enables rapid development and easier maintenance compared to the verbose and complex C code.

      +
    • +
    • +

      Robust Tooling: The Go toolchain provides out-of-the-box support for testing, formatting, and documentation, enhancing development workflow and product quality.

      +
    • +
    • +

      Cross-Platform Compatibility: Go simplifies the build process with its strong support for cross-platform compilation, making it easier to manage and deploy on various systems without code changes.

      +
    • +
    +
  2. +
  3. +

    Optimize Concurrency Handling: Implementing a robust concurrency model using goroutines and channels to handle multiple jobs efficiently.

    +
    +

    How it would be achieved ?

    +
    +
      +
    • +

      The new scheduler architecture will utilise:

      +

      architecture

      +
        +
      • +

        Go Routines for Task Management: Efficiently handling multiple jobs in parallel to optimize resource usage.

        +
      • +
      • +

        Channels for Communication: Using channels to manage job queues and worker communication, ensuring thread-safe operations.

        +
      • +
      • +

        Modular Design: Structuring the scheduler with clear separation of concerns, allowing for easier updates and maintenance.

        +
      • +
      +
    • +
    • +

      To ensure consistency and maintainability of the codebase, the following coding standards will be applied:

      +
        +
      • +

        Format and Style: using gofmt and golint for formatting and linting the code.

        +
      • +
      • +

        Error Handling: Follow Go's idiomatic way of error handling. Always check for errors where they can occur and handle them gracefully.

        +
      • +
      • +

        Commenting and Documentation: Write clear comments for all public functions and methods, using Godoc conventions. Document all packages and provide examples where necessary.

        +
      • +
      • +

        Concurrency Practices: Use goroutines and channels appropriately. Avoid common pitfalls like race conditions by using synchronization primitives from the sync package when needed.

        +
      • +
      • +

        Testing: Write comprehensive unit tests for all components using Go's built-in testing package. Aim for a high level of test coverage to ensure reliability and facilitate future changes.

        +
      • +
      +
    • +
    +
  4. +
  5. +

    Enhance Error Handling: Utilizing Go's built-in error handling to create a more reliable and fault-tolerant scheduler.

    +
  6. +
  7. +

    Integrate with Existing Systems: Ensuring the new Go-based scheduler integrates seamlessly with the current FOSSology ecosystem.

    +
  8. +
  9. +

    Test and Deploy: Thoroughly test the new system for performance and reliability before full deployment.

    +
  10. +
  11. +

    Document the System: Provide comprehensive documentation to support future development and use of the scheduler.

    +
  12. +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/2023-05-30/index.html b/docs/2024/scheduler/updates/2023-05-30/index.html new file mode 100644 index 0000000000..c06d2c191a --- /dev/null +++ b/docs/2024/scheduler/updates/2023-05-30/index.html @@ -0,0 +1,32 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community bonding

Meeting 1

+

(May 7, 2024)

+

Discussion:

+
    +
  • Mentors and contributors introduced themselves.
  • +
  • Agreed on the time and platform for general weekly meetings.
  • +
+

Meeting 2

+

(May 9, 2024)

+

Discussion:

+
    +
  • Mentors emphasized the importance of communication in open source.
  • +
  • Held a general Q&A session.
  • +
+

Week 1 Activities

+

(May 9, 2024 - May 15, 2024)

+
    +
  • Explored parts of the codebase related to the project and UI.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/2024-05-09/index.html b/docs/2024/scheduler/updates/2024-05-09/index.html new file mode 100644 index 0000000000..fefb225b0b --- /dev/null +++ b/docs/2024/scheduler/updates/2024-05-09/index.html @@ -0,0 +1,33 @@ + + + + + +week-01 | GSoC projects at FOSSology + + + + + +

Community Bonding Report

+

Meeting 1

+

(May 7, 2024)

+

Discussion:

+
    +
  • Mentors and contributors introduced themselves.
  • +
  • Agreed on the time and platform for general weekly meetings.
  • +
+

Meeting 2

+

(May 9, 2024)

+

Discussion:

+
    +
  • Mentors emphasized the importance of communication in open source.
  • +
  • Held a general Q&A session.
  • +
+

Week 1 Activities

+

(May 9, 2024 - May 15, 2024)

+
    +
  • Explored parts of the codebase related to the project and UI.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/2024-05-23/index.html b/docs/2024/scheduler/updates/2024-05-23/index.html new file mode 100644 index 0000000000..95cb3f4b2f --- /dev/null +++ b/docs/2024/scheduler/updates/2024-05-23/index.html @@ -0,0 +1,22 @@ + + + + + +week-03 | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/2024-06-06/index.html b/docs/2024/scheduler/updates/2024-06-06/index.html new file mode 100644 index 0000000000..53e67760a7 --- /dev/null +++ b/docs/2024/scheduler/updates/2024-06-06/index.html @@ -0,0 +1,74 @@ + + + + + +Weekly Updates (Community Bonding) | GSoC projects at FOSSology + + + + + +

Meeting 7

+

(June 06, 2024)

+

Attendees

+ +

Missed

+ +

General Discussion

+

Mentors:

+ +

Contributors:

+
    +
  • +

    Abdelrahman Jamal: Demonstrated a short demo on current work involving parsing comment text of a file from FOSSology, prompting it to multiple LLM's for license name recognition. Mentioned the need to clean up and reorder the data.

    +
  • +
  • +

    Shreya Gautam: Presented a PPT on the end-to-end flow and code of the Safaa project, currently working on scripts to extract data from FOSSology.

    +
  • +
  • +

    Aaditya Singh: Discussed rewriting the scheduler code from C to Go based on last meeting with mentors, raised a PR for the same. Exploring different approaches to complete this task.

    +
  • +
  • +

    Abhishek Kumar: Was absent.

    +
  • +
  • +

    Akash Sah: Discussed with mentors about using JSON format to convert the license expression and store it in a database, currently working on creating a UI for the same.

    +
  • +
  • +

    Divij Sharma: Completed implementation of OAuth via API; currently looking into upgrading API from V1 to V2.

    +
  • +
  • +

    Rajul Jha: Discussed pulling line numbers of findings and integration challenges, was able to fetch keyword information but faced issues with copyright.

    +
  • +
  • +

    Valens Niyonsenga: Was absent.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/2024-06-07/index.html b/docs/2024/scheduler/updates/2024-06-07/index.html new file mode 100644 index 0000000000..836662b6e2 --- /dev/null +++ b/docs/2024/scheduler/updates/2024-06-07/index.html @@ -0,0 +1,66 @@ + + + + + +OVERHAULING SCHEDULER DESIGN (Discussion) | GSoC projects at FOSSology + + + + + +

Meeting 8

+

(June 07, 2024)

+

Attendees

+ +

Discussion

+

Contributors:

+
    +
  • Aaditya Singh: Discussing integration and implementation strategies for the new scheduler design.
  • +
+

architecture-version: 02

+

It consists of a sophisticated job scheduling system that leverages Go's powerful concurrency features to efficiently manage tasks across two primary queues:

+
    +
  1. Dependent Queue
  2. +
  3. Independent Queue
  4. +
+

Each queue is managed by a dedicated Global Go-Routine, which orchestrates the distribution and execution of tasks among multiple subordinate Go-Routines. These Go-Routines operate in parallel, each managing its own set of threads to ensure tasks are executed concurrently, maximising throughput & minimising response time.

+

Key Components:

+
    +
  • +

    Database: Central storage for all job-related data, ensuring durability and consistency across job executions.

    +
  • +
  • +

    Dependent Queue: Manages jobs that depend on the completion of other jobs, ensuring correct execution order.

    +
  • +
  • +

    Independent Queue: Handles jobs that can be executed independently, allowing for simultaneous processing and improved efficiency.

    +
  • +
  • +

    Logging: Each thread incorporates logging to track job execution, facilitating debugging and system monitoring.

    +
  • +
  • +

    Termination: Ensures all tasks are either completed or properly terminated before system shutdown, maintaining system integrity.

    +
  • +
+

Mentors:

+
    +
  • +

    Shaheem Azmal M MD: Questioned whether priority can be implemented in both dependent and independent queues effectively.

    +
  • +
  • +

    Gaurav Mishra: Highlighted considerations for ensuring mutual exclusivity either across dependent or independent queues, with a focus on execution rules and limitations.

    +
  • +
  • +

    Kaushlendra Pratap: Inquired about how goroutines can achieve both concurrency and parallelism, and whether they should operate synchronously or asynchronously.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/Discussion/2024-05-31/index.html b/docs/2024/scheduler/updates/Discussion/2024-05-31/index.html new file mode 100644 index 0000000000..d8c5eab296 --- /dev/null +++ b/docs/2024/scheduler/updates/Discussion/2024-05-31/index.html @@ -0,0 +1,86 @@ + + + + + +week-04 | GSoC projects at FOSSology + + + + + +

Meeting 6

+

(May 31, 2024)

+

Attendees

+ +

Discussion

+

Contributor

+ +

Current Scheduler Design

+

The schematic from the documentation provides an architectural overview of the current Job Scheduler:

+

CurrentDesign

+

Architectural Overview:

+

The design is based on a client-server model, featuring:

+
    +
  1. Scheduler Port: Serves as the communication hub between clients and the scheduler.
  2. +
  3. Main Thread: Responsible for job queuing, allocation, and event management.
  4. +
  5. Worker Threads: Implement specific tasks asynchronously, enhancing throughput and response times.
  6. +
+

Key Components:

+
    +
  1. Scheduler: Manages all job scheduling operations and acts as the primary interface for job requests.
  2. +
  3. Asynchronous Workers: Improve processing time by handling tasks in parallel.
  4. +
  5. Logging and Monitoring: Provides integrated systems for real-time monitoring and issue troubleshooting.
  6. +
+

Alignment with Documentation

+

Mentor:

+
    +
  • Gaurav Mishra: Confirmed alignment with the current architecture of the job scheduler.
  • +
+

New Scheduler Design

+

The revised design focuses on a more efficient multithreaded approach:

+

NewDesign

+

Architectural Overview:

+
    +
  1. Main Thread: Coordinates with various components and manages task execution.
  2. +
  3. Worker Thread: Manages interactions between different services to prevent conflicts.
  4. +
  5. Event Queue: Ensures proper handling of system-level events and error logging.
  6. +
+

Key Components:

+
    +
  1. Scheduler: Uses a round-robin technique to manage tasks, ensuring efficient CPU time distribution.
  2. +
  3. Queue Storage: Manages tasks dynamically to adapt to workload changes.
  4. +
+

Trade-offs

+
FeatureOld Job SchedulerNew Job Scheduler
MaintainabilityEasierMore challenging
MonitoringCentralizedDecentralized
Resource ManagementStaticDynamic
+

Effectiveness of New Design

+

Mentor:

+
    +
  • Gaurav Mishra: Suggests a finite state machine architecture might be more suitable given the complexity, as it facilitates easier tracking and management.
  • +
+

Addressing FOSSology Issue

+

#2742: Problem with incorrect MIME type recognition for text files.

+

Mentor:

+
    +
  • Shaheem Azmal M MD: Error found due to the "Ignore SCM files" option affecting MIME type recognition.
  • +
+

Wfx Project Approach

+

Mentor:

+
    +
  • Kaushlendra Pratap: Expressed interest in holding an internal discussion about the wfx project approach.
  • +
+

Goals for the Week

+

Contributor:

+
    +
  • Aaditya Singh: Goals include rewriting the existing C code to Go and implementing a queue in Golang.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/Discussion/2024-06-14/index.html b/docs/2024/scheduler/updates/Discussion/2024-06-14/index.html new file mode 100644 index 0000000000..afd5235a8e --- /dev/null +++ b/docs/2024/scheduler/updates/Discussion/2024-06-14/index.html @@ -0,0 +1,45 @@ + + + + + +week-06 | GSoC projects at FOSSology + + + + + +

Meeting 10

+

(June 14, 2024)

+

Participants:

+ +

Discussion Topics:

+

Contributor:

+
    +
  • Aaditya Singh: Could you provide more details on the ER diagram? I need to know the specific parameters to integrate into the code.
  • +
+

Mentor:

+
    +
  • +

    Gaurav Mishra: Let's discuss the data within the database and the essential criteria to consider when operating the scheduler:

    +
      +
    1. +

      Certain agents like delagent and software heritage must operate singularly due to their time-intensive nature, affecting users who need to run multiple agents.

      +
    2. +
    3. +

      Some agents depend on external APIs with rate limits. Surpassing these limits could lead to access restrictions or complete blocks on agent processing.

      +
    4. +
    5. +

      A maintenance agent exists to support our website, focusing on dependency resolutions and performance enhancements.

      +
    6. +
    7. +

      Ensure responsiveness is a priority—analysis for users who request first should be completed first.

      +
    8. +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/Discussion/2024-06-21/index.html b/docs/2024/scheduler/updates/Discussion/2024-06-21/index.html new file mode 100644 index 0000000000..1054b0733e --- /dev/null +++ b/docs/2024/scheduler/updates/Discussion/2024-06-21/index.html @@ -0,0 +1,73 @@ + + + + + +week-07 | GSoC projects at FOSSology + + + + + +

week-07


+

Meeting 12

+

(June 21,2024)

+

Participants

+

Mentors

+ +

Contributors

+ +

Discussion:

+

Contributor:

+
    +
  • +

    Aaditya Singh: Presented a thorough analysis of a use case, identifying several important aspects:

    +
      +
    1. Clear separation of dependent and independent job queues.
    2. +
    3. Implementation of a rate limiter using a sliding window log.
    4. +
    5. Application of semaphores for queue synchronization.
    6. +
    7. Integration of feedback through Telegraf.
    8. +
    +

    golang_architecture

    +
  • +
+
+

⚠️ In the diagram above, mutexes and channels for synchronization haven't been considered yet. Introducing single semaphore into the diagram might undermine the goal of achieving parallelism in extreme situations.

+
+
    +
  • Aaditya Singh: Concluded that the architecture faces several challenges: +
      +
    1. Potential deadlocks from using multiple semaphores.
    2. +
    3. Limitations of using a single semaphore under certain conditions affecting multiprogramming.
    4. +
    5. The need for a load balancer to prioritize users based on their analysis needs or project size.
    6. +
    7. Establishment of a heartbeat mechanism to monitor system performance.
    8. +
    +
  • +
+

Mentors:

+
    +
  • +

    Kaushlendra Pratap: Discussed the potential deadlock issues with the use of multiple semaphores.

    +
  • +
  • +

    Gaurav Mishra: Suggested the implementation of a heartbeat system, possibly through Grafana, to oversee system health.

    +
  • +
  • +

    Katharina Ettinger: Asked about the scalability of the current approach given the project size and complexity.

    +
  • +
  • +

    Shaheem Azmal M MD: Proposed integrating a priority mechanism within the dependent queue to optimize processing time for smaller or less complex projects.

    +
  • +
+
+

ℹ️: Additional studies and enhancements are considered for these areas.

+
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/Discussion/2024-06-28/index.html b/docs/2024/scheduler/updates/Discussion/2024-06-28/index.html new file mode 100644 index 0000000000..1a438fc529 --- /dev/null +++ b/docs/2024/scheduler/updates/Discussion/2024-06-28/index.html @@ -0,0 +1,66 @@ + + + + + +week-08 | GSoC projects at FOSSology + + + + + +

Meeting 16

+

(June 28,2024)

+

Attendees:

+ +

Discussion:

+
    +
  • +

    Aaditya Singh:

    +

    Shared the updated architecture of the Scheduler via this link for team review:

    +

    Scheduler Architecture

    +

    Detailed enhancements to overcome specific challenges:

    +
      +
    1. Deadlock handling through channels facilitating communication between two semaphores, intended to transmit data structures, ideally integers representing user IDs or group IDs.
    2. +
    3. Addressing race conditions among go-routines.
    4. +
    5. Implementing a heartbeat mechanism between go-routines and a load balancer, utilizing channels to check the state of go-routines, returning a boolean value to minimize overhead in frequent signaling.
    6. +
    +
  • +
  • +

    Shaheem Azmal M MD: Emphasized the importance of package size as a critical parameter in Fossology, suggesting communication to users about partitioning large packages or providing a UI page for package size-related settings.

    +

    Admin Scheduler

    +
  • +
  • +

    Katharina Ettinger: Questioned the criteria for determining whether packages are of larger or smaller size before processing begins.

    +
  • +
  • +

    Shaheem Azmal M MD: Clarified that the Unpackage agent determines the package size, stating that the current setup looks promising and encouraged starting coding for further enhancements.

    +
  • +
  • +

    Katharina Ettinger: Inquired about the possibility of pausing smaller packages as a form of context switching.

    +
  • +
  • +

    Aaditya Singh: Noted that context switching is currently handled under go-routines, which are synchronized per user, making pausing not feasible at the moment.

    +
  • +
  • +

    Shaheem Azmal M MD: Suggested the development of a web page to make informed decisions based on package size.

    +
  • +
  • +

    Avinal Kumar: Complimented the improvements from the previous version and recommended proceeding with coding.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/Discussion/2024-07-05/index.html b/docs/2024/scheduler/updates/Discussion/2024-07-05/index.html new file mode 100644 index 0000000000..232078d31d --- /dev/null +++ b/docs/2024/scheduler/updates/Discussion/2024-07-05/index.html @@ -0,0 +1,44 @@ + + + + + +week-09 | GSoC projects at FOSSology + + + + + +

week-09


+

Meeting 16

+

(July 05, 2024)

+

Attendees

+

Mentors:

+ +

Contributors:

+ +

Discussions:

+

Contributors:

+
    +
  • Aaditya Singh: Focused on developing code through database integration and organizing the structure based on the hexagonal architecture to prevent circular dependencies and separate logic. Additionally, raised a question regarding the sqlstatements.h file.
  • +
+

Mentors:

+
    +
  • +

    Shaheem Azmal M MD: Clarified queries about the operations of the sqlstatements.h file, discussing the ER diagram of the table and how it interacts with user actions.

    +
  • +
  • +

    Avinal Kumar: Recommended combining commands in cmake as follows:

    +
        custom_Target:
    custom_command: ()
    +

    Recommended reviewing the go-cmake repository for additional insights.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/Discussion/2024-07-12/index.html b/docs/2024/scheduler/updates/Discussion/2024-07-12/index.html new file mode 100644 index 0000000000..e390d76018 --- /dev/null +++ b/docs/2024/scheduler/updates/Discussion/2024-07-12/index.html @@ -0,0 +1,75 @@ + + + + + +week-10 | GSoC projects at FOSSology + + + + + +

week-10


+

Meeting 18

+

(July 12, 2024)

+

Attendees

+

Mentors:

+ +

Contributors:

+ +

Discussions:

+

Mentors:

+
    +
  • Shaheem Azmal M MD: Asked if having Aaditya's name in the go.mod file would affect the codebase.
  • +
+

Contributors:

+
    +
  • Aaditya Singh: Explained it wouldn't cause issues and can be updated using go mod tidy to adjust dependencies as needed.
  • +
+

Discussed applying the Hexagonal architecture principle, focusing on each module serving a single purpose and avoiding circular dependencies to improve processing efficiency.

+

Suggested creating a command-line interface for job control (pause, start, unpause), but noted that FOSSology already has a CLI for this purpose. Instead, proposed integrating the command parsing in main.go with an additional module directory.

+
+

Proposed Directory Structure: +gozilla +| --- /docs +| --- /src +| --- /app +| --- /balancer +| --- load.go +| --- load_test.go +| --- /buffer +| --- cache.go +| --- cache_test.go +| --- /syncroniser +| --- process.go +| --- process_test.go +| --- main.go +| --- main_test.go +| --- /connector +| --- /distributor +| --- queue.go +| --- queue_test.go +| --- /notify +| --- mail.go +| --- mail_test.go +| --- /storage +| --- /config +| --- config.go +| --- config_test.go +| --- /database +| --- db.go +| --- db_test.go +| --- /logs +| --- logs.go +| --- logs_test.go

+
+

| --- /test +| --- go.mod +| --- go.sum

+

Presented a demo about that!

+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/General/2024-05-30/index.html b/docs/2024/scheduler/updates/General/2024-05-30/index.html new file mode 100644 index 0000000000..d434546898 --- /dev/null +++ b/docs/2024/scheduler/updates/General/2024-05-30/index.html @@ -0,0 +1,65 @@ + + + + + +week-04 | GSoC projects at FOSSology + + + + + +

Meeting 5

+

(May 30, 2024)

+

Attendees

+ +

Discussion

+

Mentors

+
    +
  • Shaheem Azmal M MD: Provided general updates regarding the project. Reminded contributors to update the GSoC Documentation tool before the Thursday call.
  • +
  • Gaurav Mishra: Explained the rules and use of the GSoC Documentation tool, including how to contribute code and documentation.
  • +
+

Contributors

+
    +
  • +

    Abdelrahman Jamal: Presented basic code to parse file text from FOSSology and prompt it to different LLMs. The LLMs provide license names and handle multiple licenses or return empty if no license is found. Currently assessing which LLM performs best.

    +
  • +
  • +

    Shreya Gautam: Absent.

    +
  • +
  • +

    Aaditya Singh: Completed FOSSology installation and created a pull request to enhance cross-platform compatibility and line encoding issues. Discussed with the mentor how to resolve an issue with the mimetype agent.

    +
  • +
  • +

    Abhishek Kumar: Exploring SPDX 3.0 JSON format and plans to open a pull request soon.

    +
  • +
  • +

    Akash Sah: Investigated storing license expressions and proposed using Abstract Syntax. Has shared a document with mentors for decision-making.

    +
  • +
  • +

    Divij Sharma: Reported no major updates; currently exploring OAuth implementation via API.

    +
  • +
  • +

    Rajul Jha: Discussed general milestones for the CI/CD project during a call with mentors. Working on line number extraction and differential scans.

    +
  • +
  • +

    Valens Niyonsenga: Limited updates, reviewed the concept regarding Monk-based text scanning and needs to discuss further how to start.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/General/2024-06-13/index.html b/docs/2024/scheduler/updates/General/2024-06-13/index.html new file mode 100644 index 0000000000..62f947fd19 --- /dev/null +++ b/docs/2024/scheduler/updates/General/2024-06-13/index.html @@ -0,0 +1,152 @@ + + + + + +week-06 | GSoC projects at FOSSology + + + + + +

Meeting 09

+

(June 13, 2024)

+

Attendees:

+ +

Absentees:

+ +

General Discussion

+

Mentor:

+ +

Contributors:

+
    +
  • +

    Abdelrahman Jamal

    +
      +
    • +

      Conducted tests with different models using Semantic Search for similarity matches.

      +
    • +
    • +

      Tested semantic transformers and worked on a basic license identifier.

      +
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Was absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • +

      Following my last conversation with mentors, began rewriting scheduler code from C to Go. Submitted a pull request for the same.

      +
    • +
    • +

      Focused on implementing a queue and working on CLI code.

      +
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Developed SPDX 3.0 JSON format, exploring validation of generated reports. Plans to start on RDF report soon.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • +

      Per discussions with mentors, utilized JSON format to convert license expressions and store them in a database (successful).

      +
    • +
    • +

      Developed a user interface for the same and is now adding comments, acknowledgments, and text for license expressions.

      +
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • Completed OAUTH implementation via API. Currently transitioning API from V1 to V2.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Focused on adding line number support for repo scans. Next, will work on nomos and ojo components.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Implemented unit test cases for APIs such as License, Group, and Upload. Submitted a pull request for the same.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/General/2024-06-20/index.html b/docs/2024/scheduler/updates/General/2024-06-20/index.html new file mode 100644 index 0000000000..74732ea3f6 --- /dev/null +++ b/docs/2024/scheduler/updates/General/2024-06-20/index.html @@ -0,0 +1,99 @@ + + + + + +week-07 | GSoC projects at FOSSology + + + + + +

Meeting 11

+

(June 20, 2024)

+

Participants:

+ +

Not Present:

+ +

Overview

+

Mentor:

+ +

Contributors:

+
    +
  • +

    Abdelrahman Jamal

    +
      +
    • Focused on Semantic Search to find closely related results.
    • +
    • Evaluated a semantic transformer and developed a basic license identifier (Demo of current work).
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Was absent.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • Following discussions with mentors, conducted a gap analysis and worked on the system architecture (Demo of current structure).
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Developed SPDX 3.0 JSON format, noting that the validation tool does not support this format (Discussion with Linux community needed by Gaurav).
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • Completed a UI for license expression including comment acknowledgements and related texts (Demo of current implementation).
    • +
    +
  • +
  • +

    Divij Sharma

    +
      +
    • Implemented OAUTH through an API and is now working on copyright endpoints for user copyrights (Demo of OAUTH).
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Modified the nomos scanner to include byte information, initiated work on custom keyword functionality, and revised GH Action workflow (Significant time reduction).
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Added unit tests for APIs related to License, Group, and Upload, and is now focusing on completing license API tests.
    • +
    • Exploring FOSSology through YouTube tutorials.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/General/2024-06-27/index.html b/docs/2024/scheduler/updates/General/2024-06-27/index.html new file mode 100644 index 0000000000..ed59fdc736 --- /dev/null +++ b/docs/2024/scheduler/updates/General/2024-06-27/index.html @@ -0,0 +1,128 @@ + + + + + +Week-08 | GSoC projects at FOSSology + + + + + +

Meeting 15

+

(June 27,2024)

+

Attendees:

+ +

Missed:

+ +

General

+
    +
  • +

    Shaheem Azmal M MD: Addressed general updates, reviewed pull requests, and resolved issues. Focused on developing the License Database UI and backend REST API.

    +
  • +
  • +

    Akash Sah: Completed the report generation for SPDX, handling tag values and License expressions. Currently enhancing the main license codebase, delving into the codebase, and clarifying aspects in the application report.

    +
  • +
  • +

    Rajul Jha: Concluded work on custom keywords functionality, which aids in directing scanner operations to specified locations and keys as requested by the user. +Continued development on the differential scan design, utilizing the GitHub API and GitLab API to implement distinct tagging strategies discussed in the previous meeting, which assist in distinguishing scan types.

    +
  • +
  • +

    Gaurav Mishra: Discussed the architecture of differential scanning, which requires two inputs per your suggestions. Several methods were considered, inspired by Git's differential scanning mechanisms in pull requests and merging capabilities. Identified four modes of execution:

    +
      +
    1. Based on Pull Request
    2. +
    3. Scanning of a repo
    4. +
    5. User-defined Tags
    6. +
    7. Current release vs. Pre-release
    8. +
    +
  • +
  • +

    Abhishek Kumar: Spent the past week working on the validation of JSON Schema. Successfully generated a tag value report.

    +
  • +
  • +

    Shaheem Azmal M MD: Inquired about the validation of the JSON report.

    +
  • +
  • +

    Aaditya Singh: Based on discussions from the previous week, proposed solutions to encountered problems, including:

    +
      +
    1. Deadlock Handling
    2. +
    3. Heartbeat Mechanism
    4. +
    5. Load based on User
    6. +
    7. Synchronization between Semaphores. +Explained how the Golang Scheduler functions.
    8. +
    +
  • +
  • +

    Gaurav Mishra: Advised on organizing PRs based on commits to track weekly progress rather than batching all commits into one PR.

    +
  • +
  • +

    Divij Sharma:

    +
  • +
  • +

    Abdelrahman Jamal: Worked on integrating semantic search with LLM models.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/General/2024-07-04/index.html b/docs/2024/scheduler/updates/General/2024-07-04/index.html new file mode 100644 index 0000000000..b887b92a34 --- /dev/null +++ b/docs/2024/scheduler/updates/General/2024-07-04/index.html @@ -0,0 +1,101 @@ + + + + + +week-09 | GSoC projects at FOSSology + + + + + +

Meeting 15

+

(July 04, 2024)

+

Attendees:

+ +

Absent:

+ +

Discussions:

+

Mentors:

+
    +
  • +

    Gaurav Mishra: Provided general project updates.

    +
  • +
  • +

    Avinal Kumar: Advised Aaditya Singh to continue using the existing cmake build system, explaining that bazel, while efficient, does not meet the current needs of Fossology. Changing the build system now is not advisable.

    +
  • +
  • +

    Gaurav Mishra: Suggested Akash Sah to open an issue on the SPDX tool.

    +
  • +
+

Contributors:

+
    +
  • +

    Divij Sharma

    +
      +
    • Developed endpoints supporting standard copyright agents for URLs, emails, and authors.
    • +
    • Updated details in a previously mentioned PR and completed unit tests for Job endpoints.
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Conducted validations of JSON RDF & LDA formats and completed work on GitHub workflows & tag value report generation.
    • +
    +
  • +
  • +

    Rajul Jha

    +
      +
    • Completed differential scans and revised PR accordingly. Plans to test the allow-list functionality next week and explore GitHub actions and Docker Compose.
    • +
    +
  • +
  • +

    Abdelrahman Jamal

    +
      +
    • Achieved approximately 70% accuracy in semantic searches, effectively identifying correct licenses. Aims to increase accuracy to 90% next week and will require integration with LLM and some prompt engineering.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • Began coding the scheduler through database connectivity. Facing decisions about the build system cmake, which does not support Go. Created documentation on the general coding structure in Go, following the hexagonal architectural pattern.
    • +
    +
  • +
  • +

    Akash Sah

    +
      +
    • Addressed bugs in the tag value report. Focused on improving the RDF report and integrating it into the database's license table to eliminate duplicates.
    • +
    +
  • +
  • +

    Shreya Gautam

    +
      +
    • Written a Python script to fetch copyright content from the database and modified the copyright. Will tackle a GitHub action issue next.
    • +
    +
  • +
  • +

    Valens Niyonsenga

    +
      +
    • Finalized the addition of controllers and models concerning permission licenses on agents. Plans to work on test cases.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/scheduler/updates/General/2024-07-11/index.html b/docs/2024/scheduler/updates/General/2024-07-11/index.html new file mode 100644 index 0000000000..ce92621034 --- /dev/null +++ b/docs/2024/scheduler/updates/General/2024-07-11/index.html @@ -0,0 +1,89 @@ + + + + + +week-10 | GSoC projects at FOSSology + + + + + +

Meeting 17

+

(July 11, 2024)

+

Attendees:

+ +

Absent:

+ +

Discussions:

+

Mentors:

+ +

Contributors:

+
    +
  • +

    Rajul Jha:

    +
      +
    • Completed the Nomos Output, including passing flags in JSON and handling the allowance portion.
    • +
    • Paused work on the License part to focus on actions, addressing edge cases.
    • +
    +
  • +
  • +

    Akash Sah:

    +
      +
    • Developed a mechanism for storing license expressions and worked on parts of the Cyclonex license.
    • +
    • Completed the clearing portion and stored it in the clearing event.
    • +
    • Began working on user decisions for license expressions, exploring both frontend and backend code.
    • +
    • Discovered previous report generation code used for scanning-related expressions and decided to use the clearing license for report generation instead.
    • +
    +
  • +
  • +

    Divij Sharma:

    +
      +
    • Worked on endpoints for the upload job, including populating agent names for each child job.
    • +
    • Wrote test cases for this functionality and fixed existing issues.
    • +
    +
  • +
  • +

    Abhishek Kumar

    +
      +
    • Completed the SPDX version 03 report for RDX, LDA, and JSON format for the software profile.
    • +
    • Integrated versions 02 and 03.
    • +
    • Started working on the licensing profile.
    • +
    +
  • +
  • +

    Aaditya Singh

    +
      +
    • Implemented database connections using Go packages, utilizing interface concepts to build notification functionality as an abstraction to encapsulate SQL query statements.
    • +
    • Working on handling the queue and integrating a load balancer.
    • +
    +
  • +
  • +

    Abdelrahman Jamal

    +
      +
    • Worked on Semantic Search, using a truncating approach to achieve up to 95% matching accuracy.
    • +
    • Need to construct test cases for obligation and acknowledgment functionalities.
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/index.html b/docs/2024/spdx-expression/index.html new file mode 100644 index 0000000000..34450014c4 --- /dev/null +++ b/docs/2024/spdx-expression/index.html @@ -0,0 +1,54 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Akash Sah

+

Contact info

+ +

Project title

+

SPDX License Expression Support

+

What's the project about?

+

This project aims to support the detection and reporting of SPDX License Expressions. Currently, FOSSology uses regular expressions, full-text match, and fuzzy match to scan licenses, stores all types of license expressions as a list of licenses, and wrongly classifies them as conjunctive licenses or disjunctive licenses. It also stores license exceptions as licenses and does not differentiate exceptions from licenses.

+

In the project, I will be working on scanning license expressions using regular expressions with Ojo, storing them in the database, creating UI components to see license expressions in the file clearing page, and finally updating reports to export the expressions in the correct format.

+

What should be done?

+
    +
  1. +

    Detect and validate license expressions

    +
      +
    • Develop algorithms for accurately detecting SPDX license expressions and validating them.
    • +
    +
  2. +
  3. +

    Store license expressions and metadata in database

    +
      +
    • Design and implement a database schema to store complete license expressions and associated metadata.
    • +
    • Develop mechanisms for efficient retrieval and manipulation of license expression data.
    • +
    +
  4. +
  5. +

    Improve User Interface

    +
      +
    • Create intuitive UI components to visualize and manage license expressions.
    • +
    • Allow users to interactively create and edit license expressions.
    • +
    +
  6. +
  7. +

    Update Report Generation:

    +
      +
    • Enhance and correct SPDX report generation functionality to accurately represent license expressions.
    • +
    +
  8. +
+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/updates/2024-05-07/index.html b/docs/2024/spdx-expression/updates/2024-05-07/index.html new file mode 100644 index 0000000000..e01556726e --- /dev/null +++ b/docs/2024/spdx-expression/updates/2024-05-07/index.html @@ -0,0 +1,56 @@ + + + + + +Community Bonding Report | GSoC projects at FOSSology + + + + + +

Community Bonding Report

+

Meeting 1

+

(May 7, 2024)

+

Discussion:

+
    +
  • Mentors and contributors introduced themselves.
  • +
  • Agreed on the time and platform for general weekly meetings.
  • +
+

Meeting 2

+

(May 9, 2024)

+

Discussion:

+
    +
  • Mentors emphasized the importance of communication in open source.
  • +
  • Held a general Q&A session.
  • +
+

Week 1 Activities

+

(May 9, 2024 - May 15, 2024)

+
    +
  • Explored parts of the codebase related to the project and UI.
  • +
  • Resolved a bug found in the user interface.
  • +
+

Meeting 3

+

(May 16, 2024)

+

Discussion:

+
    +
  • Contributors provided updates on their progress.
  • +
  • Mentors checked if everyone was able to set up their local development environment.
  • +
+

Week 2 Activities

+

(May 16, 2024 - May 22, 2024)

+
    +
  • Began working on the prototype and furthered my understanding of FOSSology.
  • +
  • Engaged with the community and resolved a query in the discussions.
  • +
+

Meeting 4

+

(May 23, 2024)

+

Discussion:

+
    +
  • Contributors shared their progress.
  • +
  • Mentors encouraged making small contributions to gain a better understanding of the project.
  • +
  • Finalized timings for project-specific weekly meetings.
  • +
+

This report summarizes my activities and interactions during the GSoC community bonding period.

+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/updates/2024-05-28/index.html b/docs/2024/spdx-expression/updates/2024-05-28/index.html new file mode 100644 index 0000000000..5f399d3ec9 --- /dev/null +++ b/docs/2024/spdx-expression/updates/2024-05-28/index.html @@ -0,0 +1,43 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1 meeting and activities

+

(May 28,2024)

+

Attendees:

+ +

Discussions

+

Prototype Presentation

+
    +
  • Presented a prototype for scanning expressions with OJO.
  • +
  • Initially, I was storing expressions directly as strings.
  • +
  • Received feedback that storing expressions as strings could not allow modifications.
  • +
  • Recieved suggestion to store license names as their references (licenseId) and the relationships between them (operators).
  • +
+

Schema Proposal

+
    +
  • Was asked to propose a schema for storing license expressions.
  • +
  • Inquired if using a graph database like Neo4j would be suitable.
  • +
  • It was considered a good idea but mentors suggested not to use it as mixing two databases (PostgreSQL and Neo4j) would complicate things.
  • +
+

Activities

+
    +
  • Researched various methods to store license expressions.
  • +
  • Found that an Abstract Syntax Tree (AST) is a good way to store expressions.
  • +
  • Proposed two types of schema for storing license expressions.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/updates/2024-06-04/index.html b/docs/2024/spdx-expression/updates/2024-06-04/index.html new file mode 100644 index 0000000000..30ad2b3c4e --- /dev/null +++ b/docs/2024/spdx-expression/updates/2024-06-04/index.html @@ -0,0 +1,41 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2 Meeting and Activities

+

(June 4, 2024)

+

Attendees:

+ +

Discussions

+

Schema Presentation

+
    +
  • Presented the two schemas for storing license expressions.
  • +
  • Mentors suggested that storing AST in JSONB was the better idea and to move forward with it.
  • +
+

Activities

+
    +
  • Modified the OJO code base to scan expressions using regex and store expressions as AST in the database.
  • +
  • Worked on creating UI components to display and edit expressions.
  • +
+

ScreenShots

+

License Expression Table

+

License Expression Table

+

License Expression Schema

+

License Expression Schema

+

Edit Expression Modal

+

Edit Expression Modal

+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/updates/2024-06-11/index.html b/docs/2024/spdx-expression/updates/2024-06-11/index.html new file mode 100644 index 0000000000..7de158c1fa --- /dev/null +++ b/docs/2024/spdx-expression/updates/2024-06-11/index.html @@ -0,0 +1,54 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3 Meeting and Activities

+

(June 11, 2024)

+

Attendees:

+ +

Discussions

+

Presentation of Work

+
    +
  • Presented my work on storing and displaying expressions.
  • +
  • Initially, expressions were displayed as a separate table in the UI.
  • +
  • Feedback: Expressions should be displayed in the same table as licenses.
  • +
  • When changing the license of a license expression, only detected licenses should be shown as options, rather than showing all licenses.
  • +
  • Inquired about how to store License Text, Acknowledgement, and Comments for licenses that are part of a license expression.
  • +
  • I proposed storing these in the AST as properties of the node.
  • +
  • Currently, they are stored in the clearing_event table.
  • +
  • Suggestion: Storing them in clearing_event is a good idea as it can serve as an audit log to track changes.
  • +
  • There should be a way for users to create an expression for a particular file with no existing expression.
  • +
+

Activities

+
    +
  • +

    Displayed license expressions in the same table as licenses.

    +

    License Expressions in the Same Table

    +

    License Expressions in the Same Table

    +
  • +
  • +

    Allowed users to create an expression for a file with no detected expression.

    +

    Create Expression for File with No Detected Expression

    +

    Create Expression for File with No Detected Expression

    +
  • +
  • +

    Allowed users to change the License Text, Acknowledgement, and Comment for licenses that are part of a license expression.

    +

    Change License Text, Acknowledgement, and Comment

    +

    Change License Text, Acknowledgement, and Comment

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/updates/2024-06-18/index.html b/docs/2024/spdx-expression/updates/2024-06-18/index.html new file mode 100644 index 0000000000..a0dab098d4 --- /dev/null +++ b/docs/2024/spdx-expression/updates/2024-06-18/index.html @@ -0,0 +1,44 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4 Meeting and Activities

+

(June 18, 2024)

+

Attendees:

+ +

Discussions

+

Presentation of UI Changes

+
    +
  • Presented the changes made in the UI.
  • +
  • Received feedback: Currently, it is not possible to add more than two licenses in a group within the license expression.
  • +
  • Recieved suggestion: The button for creating a license expression (if it does not exist) should be beside the user decision.
  • +
  • Informed the mentors that I will start working on the report generation part of the project.
  • +
+

Activities

+
    +
  • +

    Created functionality to allow licenses and groups to be added anywhere and option to remove license. Now, more than two licenses can be added to a group.

    +

    Adding More Than Two Licenses in a Group

    +

    Adding More Than Two Licenses in a Group

    +

    Removing a License in License Expression

    +

    Removing a License in License Expression

    +
  • +
  • +

    Started working on report generation for SPDX Tag Value and SPDX CSV.

    +
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx-expression/updates/2024-06-25/index.html b/docs/2024/spdx-expression/updates/2024-06-25/index.html new file mode 100644 index 0000000000..453c621ef5 --- /dev/null +++ b/docs/2024/spdx-expression/updates/2024-06-25/index.html @@ -0,0 +1,45 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5 Meeting and Activities

+

(June 25, 2024)

+

Attendees:

+ +

Discussions

+

Presentation of Report Generation

+
    +
  • Presented my work on SPDX Tag Value and CSV reports, including license expression results in the reports.
  • +
  • Feedback: There should be functionality for adding license expressions and main licenses.
  • +
  • I have validated SPDX Tag Value reports using SPDX online tools.
  • +
  • Inquired about how to validate CSV formats.
  • +
  • Next steps: Work on different formats.
  • +
+

Activities

+
    +
  • Opened a WIP PR feat(spdx-expression): License Expression Support.
  • +
  • Solved some bugs found during the generation of SPDX Tag Value reports.
  • +
  • Worked on SPDX RDF reports and successfully included license expression results in the reports and validated the reports.
  • +
  • Added license exception support in the reports.
  • +
  • Added an option to make a license expression the main license in the UI.
  • +
+

Sample Reports

+
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/index.html b/docs/2024/spdx30/index.html new file mode 100644 index 0000000000..01bd69e55d --- /dev/null +++ b/docs/2024/spdx30/index.html @@ -0,0 +1,53 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Abhishek Kumar

+

Contact info

+ +

Project title

+

Support SPDX 3.0 Reports

+

What's the project about?

+

This project aims to support the generation, parsing, and interpreting of SPDX 3.0 reports. Currently, FOSSology uses SPDX 2.3 for report generation and ingestion, but with the introduction of SPDX 3.0, it has become the industry standard. Upgrading to SPDX 3.0 will address the limitations of the older version, such as compatibility issues and difficulties in integrating with other tools.

+

In this project, I will be working on the generation of SPDX 3.0 reports in multiple formats, implementing SPDX 3.0 profiles, and then the ingestion of these reports.

+

What should be done?

+
    +
  1. +

    Support generation of SPDX 3.0 reports in multiple formats

    +
      +
    • Include support for JSON-LD, plain JSON, tag:value, RDF, and CSV formats to meet diverse needs and use cases.
    • +
    +
  2. +
  3. +

    Support of SPDX 3.0 profiles

    +
      +
    • Begin with Core, Software, and Licensing profiles.
    • +
    • Expand to additional profiles such as Lite if possible.
    • +
    +
  4. +
  5. +

    Support ingestion of SPDX 3.0 reports

    +
      +
    • Ensure FOSSology can read and process SPDX 3.0 reports for seamless integration and compliance.
    • +
    +
  6. +
  7. +

    Improve compatibility and standardization

    +
      +
    • Ensure smoother integration and compliance with industry standards.
    • +
    +
  8. +
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/updates/2024-05-07/index.html b/docs/2024/spdx30/updates/2024-05-07/index.html new file mode 100644 index 0000000000..1321d24947 --- /dev/null +++ b/docs/2024/spdx30/updates/2024-05-07/index.html @@ -0,0 +1,51 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community bonding

Meeting 1

+

(May 7, 2024)

+

Discussion:

+

This was the first meeting with mentors and other fellow contributors. In this meeting, mentors and contributors introduced themselves. We agreed on the time and platform for general weekly meetings.

+

Meeting 2

+

(May 9, 2024)

+

Discussion:

+
    +
  • In this meeting, mentors talked about what we can do in community bonding period and emphasized the importance of communication in open source community.
  • +
  • Q&A session was held to address the general issues.
  • +
+

Week 1 Activities

+

(May 9, 2024 - May 15, 2024)

+
    +
  • Revised the basics of PHP and Template Engine- TWIG and other skills required for the project.
  • +
  • Gone through the documentation and codebase to get clear idea how SPDX v2.3 was implemented and what are the changes that are needed to be related to the project.
  • +
+

Meeting 3

+

(May 16, 2024)

+

Discussion:

+
    +
  • Contributors provided updates on their progress.
  • +
  • Mentors checked if everyone was able to set up their local development environment.
  • +
+

Week 2 Activities

+

(May 16, 2024 - May 22, 2024)

+
    +
  • I had some issues while setting up the local environment as I was working on ARM architecture machine having Ubuntu 22.04 installed on my virtual machine.
  • +
  • So, I rectified the issue by commenting out the installation of python dependencies in fo-postinstall.in file, as it was creating conflicts with other installed dependencies.
  • +
+

Meeting 4

+

(May 23, 2024)

+

Discussion:

+
    +
  • Contributors shared their updates.
  • +
  • Mentors urged contributors to address some of the issues to enhance their understanding of the project.
  • +
  • Timing for the specific-project weekly meetings were finalized.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/updates/2024-05-28/index.html b/docs/2024/spdx30/updates/2024-05-28/index.html new file mode 100644 index 0000000000..595cd99709 --- /dev/null +++ b/docs/2024/spdx30/updates/2024-05-28/index.html @@ -0,0 +1,63 @@ + + + + + +Week 1 | GSoC projects at FOSSology + + + + + +

Week 1 meeting and activities

+

(May 28,2024)

+

Attendees:

+ +

Discussions

+
    +
  • I presented the basic SPDX v3.0 JSON-ld format report to the mentors.
  • +
  • Got a feedback for the implementation of the required fields and profiles in the reports .
  • +
  • Also was asked to validate the reports generated using the SPDX python tool.
  • +
  • Next Step: Work on Licensing profile in JSON-ld reports.
  • +
+

Core and software profile use cases

+
    +
  • +

    Core profile

    +
      +
    • The Core profile describes the foundational classes and properties that are used by all profiles of the SPDX model.
    • +
    +
  • +
  • +

    Software profile

    +
      +
    • The Software profile contains information about files, packages, SBOMs, snippets, and artifacts of the software application.
    • +
    +
  • +
+

The model image for the Core+Software profile. +I have implemented the following use cases as required by the organization for this profile:

+
    +
  • Person
  • +
  • Agent
  • +
  • Tool
  • +
  • File
  • +
  • Package
  • +
  • Person with full CreationInfo
  • +
  • Package with ExternalIdentifier
  • +
  • Relationship with Package containing Files
  • +
  • SpdxDocument with Files
  • +
+

Updates

+
    +
  • Started working on SPDX v3.0 JSON-ld format report generation.
  • +
  • In this week, I targeted to implement Core and Software profiles in this format.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/updates/2024-06-04/index.html b/docs/2024/spdx30/updates/2024-06-04/index.html new file mode 100644 index 0000000000..24e8a2c933 --- /dev/null +++ b/docs/2024/spdx30/updates/2024-06-04/index.html @@ -0,0 +1,38 @@ + + + + + +Week 2 | GSoC projects at FOSSology + + + + + +

Week 2 Meeting and Activities

+

(June 4, 2024)

+

Attendees:

+ +

Discussions

+
    +
  • I presented the changes after implementing the Core and Software Profiles made in the SPDX v3.0 report in JSON-ld format to the mentor.
  • +
  • I discussed with the mentors about the SPDX python tool for validation of v3.0 reports as it was not optimised for v3.0 reports. So, it was decided to look for it later or will perform the validation manually.
  • +
  • Next Step: Work on JSON report generation.
  • +
+

Licensing profile use cases

+

The Licensing profile describes the aspects of licensing for the software application under three categories (sub-directories) - Licensing, SimpleLicensing, and ExpandedLicensing.

+

The Licensing category describes information about declared licenses and concluded (detected) licenses. The SimpleLicensing category describes information about text-formatted licenses. The ExpandedLicensing category describes information about parseable and machine-readable licenses.

+

The model image for the Licensing profile.

+

Activities

+
    +
  • In this week, I continued to work on the SPDX v3.0 JSON-ld format report generation for Licensing profile.
  • +
  • Made a PR#2750 for Generation of SPDX v3.0 report in JSON format.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/updates/2024-06-11/index.html b/docs/2024/spdx30/updates/2024-06-11/index.html new file mode 100644 index 0000000000..a463c09711 --- /dev/null +++ b/docs/2024/spdx30/updates/2024-06-11/index.html @@ -0,0 +1,34 @@ + + + + + +Week 3 | GSoC projects at FOSSology + + + + + +

Week 3 Meeting and Activities

+

(June 11, 2024)

+

Attendees:

+ +

Discussions

+
    +
  • Presented the JSON-ld report.
  • +
  • There was a build issue in my latest PR. I started to look into it as well.
  • +
  • Next Step: Work on RDF report generation.
  • +
+

Activities

+
    +
  • In this week, I worked upon SPDX v3.0 report in JSON format.
  • +
  • Followed the JSON Serialization for report generation in JSON format.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/updates/2024-06-18/index.html b/docs/2024/spdx30/updates/2024-06-18/index.html new file mode 100644 index 0000000000..d4537fdf3b --- /dev/null +++ b/docs/2024/spdx30/updates/2024-06-18/index.html @@ -0,0 +1,36 @@ + + + + + +Week 4 | GSoC projects at FOSSology + + + + + +

Week 4 Meeting and Activities

+

(June 18, 2024)

+

Attendees:

+ +

Discussions

+
    +
  • Have completed generation of SPDX v3.0 report in JSON format.
  • +
  • Also discussed to the mentor about validation of JSON-ld using JSON Schema, and SHACL Model.
  • +
  • We decided to follow the JSON Schema and SHACL Model for initial phase of validation.
  • +
  • Next Step: Work on the validation of JSON-ld documents.
  • +
+

Activities

+
    +
  • In this week, I worked upon the RDF report generation.
  • +
  • I followed the ontology present in the SPDX-3 model github repository.
  • +
  • I also started looking into the fields which were absent in the previous formats and have rectified them using the JSON schema.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/spdx30/updates/2024-06-25/index.html b/docs/2024/spdx30/updates/2024-06-25/index.html new file mode 100644 index 0000000000..be515107ff --- /dev/null +++ b/docs/2024/spdx30/updates/2024-06-25/index.html @@ -0,0 +1,35 @@ + + + + + +Week 5 | GSoC projects at FOSSology + + + + + +

Week 5 Meeting and Activities

+

(June 25, 2024)

+

Attendees:

+ +

Discussions

+
    +
  • Presented my work SPDX v3.0 report in JSON and RDF format and also validated the reports using.
  • +
  • Started resolving the issue while building the package in GitHub workflow.
  • +
  • Next Step: Resolve the build issue and work on tag:value and CSV report generation.
  • +
+

Activities

+
    +
  • In this week, I have validated the SPDX v3.0 report in JSON-ld, JSON and RDF format.
  • +
  • Also add the various fields which were required in Core, Software and Licensing profiles by the organization.
  • +
  • I have started working for the SPDX v3.0 report generation in tag:value format.
  • +
+ + \ No newline at end of file diff --git a/docs/2024/text-phrases/index.html b/docs/2024/text-phrases/index.html new file mode 100644 index 0000000000..093cb78cf4 --- /dev/null +++ b/docs/2024/text-phrases/index.html @@ -0,0 +1,63 @@ + + + + + +Introduction | GSoC projects at FOSSology + + + + + +

Introduction

Author

+

Valens NIYONSENGA

+

Contact info

+ +

Project title

+

Text Phrases Scanning

+

What's the project about?

+

The Monk license scanner within FOSSology is a license scanner designed to detect and differentiate license texts within files. It operates in two modes: Scheduler Mode, which integrates with the FOSSology repository to log results into the database accessible via the web interface, and CLI Mode, which directly matches files against the license database from the command line. Despite its robust functionality, there is a need to enhance its capabilities, particularly in handling text phrases and bulk phrases, to improve user experience and efficiency.

+

This project aims to enhance the Monk agent capabilities by adding support for text phrases and bulk phrases scanning. This includes the development of a user interface to facilitate the addition and management of text phrases, as well as enabling the Monk agent to scan these phrases effectively.

+

What should be done?

+

This project involves the following tasks:

+
    +
  1. +

    Creating a User Interface for Text and Bulk Phrases Management:

    +
      +
    • Develop a UI that allows users to add multiple text phrases associated with licenses to the database..
    • +
    • Implement options for users to choose between scanning with bulk license texts or selected phrases.
    • +
    +
  2. +
  3. +

    Supporting Text Phrases Scanning:

    +
      +
    • Enable the Monk agent to scan files using the text phrases stored in the database.
    • +
    • Ensure that users can add comments for license texts through the UI.
    • +
    +
  4. +
  5. +

    Implementing Bulk Phrases Scanning:

    +
      +
    • Provide a UI tab where users can select bulk phrases for scanning.
    • +
    • Implement options to scan using phrases from the whole user base or selected user.
    • +
    +
  6. +
  7. +

    Enhancing Monk Agent Functionality:

    +
      +
    • Update the Monk agent or create a new similar agent to scan from the phrases tables.
    • +
    • Ensure clear integration with the existing FOSSology database and web interface.
    • +
    +
  8. +
  9. +

    Documentation:

    +
      +
    • Update the documentation to reflect the new functionalities and usage guidelines.
    • +
    +
  10. +
+ + \ No newline at end of file diff --git a/docs/2024/text-phrases/updates/2024-05-7/index.html b/docs/2024/text-phrases/updates/2024-05-7/index.html new file mode 100644 index 0000000000..660dc3007b --- /dev/null +++ b/docs/2024/text-phrases/updates/2024-05-7/index.html @@ -0,0 +1,39 @@ + + + + + +Community bonding | GSoC projects at FOSSology + + + + + +

Community Bonding

+

Introduction meeting

+

(May 7,2024)

+

We had the introductory meeting opening the community bonding for GSoC'24. All members, including mentors and contributors, introduced themselves and discussed more about the general meeting time and platform decision.

+

Meeting 2

+

(May 9,2024)

+

After the introductory meeting, we had the first general meeting where mentors emphasized the significance of maintaining communication and providing updates. Contributors were encouraged to ask any questions they had.

+

During community bonding week 1

+

(May 12,2024- May 18,2024)

+

Activities

+
    +
  • Discussed with mentors more about the project and the tasks that need to be completed.
  • +
  • Got in touch with fellow contributors, sharing ideas on how we were going to approach our respective projects.
  • +
+

Work done

+
    +
  • I set up the project's development environment.
  • +
  • Cleared some doubts and asked questions to understand the project better..
  • +
+

Meeting 3

+

(May 30,2024)

+
    +
  • Mentors asked for any updates from contributors.
  • +
  • Mentors asked to update the documentation tool before joining the next call.
  • +
  • Mentors explained about the GSoC tool documentation tool, different rules for the code, and documentation.
  • +
+ + \ No newline at end of file diff --git a/docs/guidelines/index.html b/docs/guidelines/index.html new file mode 100644 index 0000000000..5ac5381b65 --- /dev/null +++ b/docs/guidelines/index.html @@ -0,0 +1,151 @@ + + + + + +GSoC Contributor Guideline | GSoC projects at FOSSology + + + + + +

Hi contributor!

+

Thanks for your interest in our project, FOSSology.

+

FOSSology

+

Welcome to the FOSSology GSoC program.

+

This page contains information for aspiring interested in participating and helping with the GSoC program.

+

Note:

+
+

Fosslogy is participating in Google Summer Of Code 2023! You might be interested in our GSoC info pages from previous years: 2022

+
+
+

Also, please note that acceptance into GSoC isn't a prerequisite for becoming a FOSSology contributor. Our community is always open to new contributors, so if you're eager to dive in and make a difference, there's no time like the present.

+
+

This page is your entry point to the FOSSology GSoC program.

+

GSoC-FOSSology

+

Keep an eye on this page for updates on our participation in GSoC, and let's make some great things happen together!

+

Attention all students! 👨‍💻

+

Are you ready to take on the challenge of Google Summer of Code with FOSSology?

+
    +
  • +

    Start by immersing yourself in the Google Summer of Code Guide, and keep the timeline handy as a daily reminder of your goals.

    +
  • +
  • +

    Get some valuable tips and tricks by reading the Advice for Students.

    +
  • +
  • +

    Take a few minutes to watch the GSoC video presentation for students, and get a feel for the program.

    +
  • +
  • +

    Watch FOSSology Using: End-to-end workflow.

    +
  • +
  • +

    Browse the FOSSology GSoC 2023 project ideas and find something that ignites your passion.

    +
  • +
  • +

    If you don't see a project that speaks to you, don't be shy! Reach out to the FOSSology community in the slack channel and propose a new idea.

    +
  • +
  • +

    Keep in mind that the Ideas list is updated by GSoC admins, so if you don't see any recent updates, don't hesitate to ping a mentor for more information. Let's make this a summer to remember!

    +
  • +
+

Begin communication in Slack

+

To get started, join our Slack channel and introduce yourself.

+

In the first communication, we would be interested to see the following information:

+
    +
  • A short self-introduction: your area of study, interests, background
  • +
  • Why are you interested in the FOSSology project? Which projects ideas do you want to work on?
  • +
  • If you participated in open-source projects, please reference them
  • +
  • If you have a GitHub, Twitter account, blog, or any technical/scientific publications, don't hesitate to share those as well..
  • +
+

As you dive into the codebase, use the Slack channel to ask for feedback on your project ideas and for help as you navigate the code.

+

Remember, the more specific and clear your questions are, the more likely you are to get a helpful response. So don't be afraid to get specific, like: I'm interested in Project X, and I've noticed issues Y and Z. It looks like a, b, and c are already implemented. Can I pitch a project that would complete d, e, and f?" We're here to help you make the most of your time with us, so don't hesitate to reach out!

+

First contribution

+

Looking to make your mark in the world of open-source and increase your chances of being selected for Google Summer of Code? The key is to dive in and get your hands dirty with the software.

+

What better way to learn about a tool than by contributing to its development? Whether fixing bugs or adding new features, your contributions can make a real difference.

+

Here's a general roadmap to follow:

+
    +
  • Find an issue, bug, or proposed feature that catches your interest. Also you can have look at good first issues.
  • +
  • Make a copy of the repository (known as "forking").
  • +
  • Roll up your sleeves and make your improvements.
  • +
  • Submit a well-documented pull request, including all the relevant details about your changes. Also, be sure to follow the Git commit conventios.
  • +
  • Be patient and wait for feedback and discussion on Github (reviews can take some time).
  • +
+

We can't stress enough the importance of making some contributions to the project before you submit your GSoC application. Not only will it help you fine-tune your proposal, but it will also show the mentors that you're invested in the community and are dedicated to making a difference.

+ +

Here is a list of links to help you get started on participating in Fosslogy and in coding for the FOSSology project.

+

Install from Source

+

Using FOSSology

+

Contribute to FOSSology

+

Get Started with Development

+

FOSSology Agents

+

There is also a list of newbie-friendly issues.

+
+

Feel free to contact potential mentors and org admins if you need help with choosing a newbie-friendly issue to tackle.

+
+

GSoC Contributor Proposals

+

As a GSoC contributor, your proposal is the key to unlocking the doors of opportunity.

+

We expect your proposal to be a shining example of all the elements discussed in the Google Summer of Code Guide, particularly the "Elements of a Quality Proposal."

+

Don't wait until the last minute to submit your proposal. Connect with the mentors as early as possible. The earlier you start, the more time you'll have to fine-tune your proposal and receive valuable feedback. If you wait until the last few days, there may not be enough time for mentors to give your proposal the attention it deserves.

+

In your proposal, be sure to disclose all known commitments that may overlap with any of the program phases(community bonding, coding periods, evaluation periods, etc.):

+
    +
  • Disclose your vacations periods, part-time or full-time job, school, classes, tests, exams, periods of non-availability, etc.
  • +
  • Unexpected events: we understand there can be unexpected events in life, and those cannot be planned. Please inform us as soon as possible if you need time away from the program. You can use private messaging for sensitive information.
  • +
+

GSoC Contributor Selection Process

+

Once the application period is over, administrators and mentors make a decision on which proposal to accept based on the proposal submitted to the Google Summer of Code website.

+

Congratulations, you have been selected…​ or not.

+

We thank all GSoC contributors who reach out to us during the application period. If you have not been selected, read this, there could be many reasons, and some are even outside of our control. Do not feel bad, we encourage you to stay with the community and apply again next year.

+

If you have been selected, we extend our warmest congratulations! The community bonding period starts within two days after the official announcement, so get ready to dive into the exciting world of open-source development with FOSSology.

+

Community Bonding

+

As soon as the GSoC contributors are accepted, the community bonding period starts. During this period, contributors are not expected to be coding immediately. Instead, they are expected to prepare to code. +A thriving community bonding period leads to successful coding, so make the most of it!

+

Use the community bonding to:

+
    +
  • Define the communication channels with your mentors.
  • +
  • Schedule weekly meetings with your mentors.
  • +
  • Continue to discuss and plan the project with the community and the mentors.
  • +
  • Set up your computer and development environment to work on the project (see Useful links).
  • +
+

Coding Periods

+

During the coding periods, GSoC contributors are expected to:

+
    +
  • Work on the GSoC project.
  • +
  • Follow the Code Style Best Practices.
  • +
  • Write a short summary of the work done each week, published to FOSSolgy GSoC tracker. It is also advisable to publish in a personal blog as well. As an example, you can check out the weekly progress updates for the Adopting REUSE standards in FOSSology project during GSoC 2022. +
      +
    • It’s okay to say things like <this> and <that> were challenging because of <reason>.
    • +
    +
  • +
  • Say something when you are stuck, lost in the code, confused about the objectives, etc.
  • +
  • Notify in advance when taking time off and make use of weekends to rest and avoid burnout.
  • +
  • Be present online and proactively reach out to the community if required.
  • +
+

Evaluations

+

At the end of each coding period, GSoC contributors are expected to:

+
    +
  • Publish a blog post summarizing your status on your blog or on Medium.
  • +
  • Announce the blog post on the Slack channel.
  • +
+

Past years' blog posts may inspire you. Here are some links:

+

https://medium.com/@rohit-pandey/gsoc-2022-final-report-bf1e34440bce

+

https://medium.com/@shruti-ag/gsoc21-with-fossology-fd97cd2a3924

+

Post-GSoC

+

Congratulations on reaching the end of GSoC! You've accomplished so much, and the journey has only just begun. Once the final results are announced by Google, it's not the end of the road for you. Here are a few options for you to consider:

+
    +
  • Keep the momentum going and continue to develop your project within the FOSSology community.
  • +
  • Help us in keeping the documentations updated.
  • +
  • Give presentations/talks about your work during GSoC.
  • +
  • Apply again next year and take on another exciting challenge.
  • +
  • Share your knowledge and experience by becoming a mentor in Google Summer of Code for the next year.
  • +
+

So, don't put away your development tools just yet, and keep in touch with the community; there are more opportunities waiting for you.

+

FAQs

+

Q. How can I improve my chances of getting selected for GSoC?

+

A: There are a few key things you can do to increase your chances of getting selected. These include writing a compelling project proposal, engaging with the community, successfully contributing to the project, and demonstrating that you can work independently.

+

Q. How early should I start working on my proposal?

+

A: The earlier, the better! Make sure to get feedback from mentors before submitting your proposal. This will help you to refine the details and make it as strong as possible. Keep in mind that mentors will need some time to review your proposal, so starting early will give you the best chance of success.

+

Q. I don't have any experience in the skill XYZ. What should I do?

+

A: Not necessarily. One way to gain experience is by working on good first issues. In software development, it's common to develop experience and expertise as you take on and complete projects successfully.

+ + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000000..e27f99f21d --- /dev/null +++ b/docs/index.html @@ -0,0 +1,27 @@ + + + + + +Documents | GSoC projects at FOSSology + + + + + +

Documents

The pages on the top navigation will be containing the progress reports from +the students as well as any related technical documentations about the projects +done during this GSoC period.

+

Each project contains the technical documentations (if any) labeled with +appropriate title. The progress report is contained under folder called +"Updates" arranged by week number.

+

Technical documents can range from things like

+
    +
  • How to setup development environment
  • +
  • How to run a script
  • +
  • Major changes in tools being used
  • +
  • Deploying new features
  • +
  • Etc
  • +
+ + \ No newline at end of file diff --git a/docs/tags/api/index.html b/docs/tags/api/index.html new file mode 100644 index 0000000000..354348e5c8 --- /dev/null +++ b/docs/tags/api/index.html @@ -0,0 +1,14 @@ + + + + + +10 docs tagged with "api" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/atarashi/index.html b/docs/tags/atarashi/index.html new file mode 100644 index 0000000000..9763529800 --- /dev/null +++ b/docs/tags/atarashi/index.html @@ -0,0 +1,14 @@ + + + + + +13 docs tagged with "atarashi" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/buildsystem/index.html b/docs/tags/buildsystem/index.html new file mode 100644 index 0000000000..6f55416c7e --- /dev/null +++ b/docs/tags/buildsystem/index.html @@ -0,0 +1,14 @@ + + + + + +10 docs tagged with "buildsystem" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/ci-cd/index.html b/docs/tags/ci-cd/index.html new file mode 100644 index 0000000000..7346d32724 --- /dev/null +++ b/docs/tags/ci-cd/index.html @@ -0,0 +1,14 @@ + + + + + +10 docs tagged with "ci/cd" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/ci/index.html b/docs/tags/ci/index.html new file mode 100644 index 0000000000..e25869fbc4 --- /dev/null +++ b/docs/tags/ci/index.html @@ -0,0 +1,14 @@ + + + + + +8 docs tagged with "CI" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/clearlydefined/index.html b/docs/tags/clearlydefined/index.html new file mode 100644 index 0000000000..992b2e6426 --- /dev/null +++ b/docs/tags/clearlydefined/index.html @@ -0,0 +1,14 @@ + + + + + +6 docs tagged with "clearlydefined" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/cmake/index.html b/docs/tags/cmake/index.html new file mode 100644 index 0000000000..5dc204a4ae --- /dev/null +++ b/docs/tags/cmake/index.html @@ -0,0 +1,14 @@ + + + + + +10 docs tagged with "cmake" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/community-bonding/index.html b/docs/tags/community-bonding/index.html new file mode 100644 index 0000000000..475624245f --- /dev/null +++ b/docs/tags/community-bonding/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "community bonding" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/gsoc-21/index.html b/docs/tags/gsoc-21/index.html new file mode 100644 index 0000000000..1451d9f7f4 --- /dev/null +++ b/docs/tags/gsoc-21/index.html @@ -0,0 +1,14 @@ + + + + + +10 docs tagged with "gsoc21" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/gsoc-22/index.html b/docs/tags/gsoc-22/index.html new file mode 100644 index 0000000000..088f044bed --- /dev/null +++ b/docs/tags/gsoc-22/index.html @@ -0,0 +1,14 @@ + + + + + +83 docs tagged with "gsoc22" | GSoC projects at FOSSology + + + + + +
+ + \ No newline at end of file diff --git a/docs/tags/gsoc-23/index.html b/docs/tags/gsoc-23/index.html new file mode 100644 index 0000000000..bc4f474506 --- /dev/null +++ b/docs/tags/gsoc-23/index.html @@ -0,0 +1,14 @@ + + + + + +19 docs tagged with "gsoc23" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/gsoc-24/index.html b/docs/tags/gsoc-24/index.html new file mode 100644 index 0000000000..7dd1d4dc82 --- /dev/null +++ b/docs/tags/gsoc-24/index.html @@ -0,0 +1,14 @@ + + + + + +38 docs tagged with "gsoc24" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/index.html b/docs/tags/index.html new file mode 100644 index 0000000000..27dc1b1fe3 --- /dev/null +++ b/docs/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Tags | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/license-as-a-service/index.html b/docs/tags/license-as-a-service/index.html new file mode 100644 index 0000000000..ba907818b2 --- /dev/null +++ b/docs/tags/license-as-a-service/index.html @@ -0,0 +1,14 @@ + + + + + +12 docs tagged with "license as a service" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/open-source-licensing/index.html b/docs/tags/open-source-licensing/index.html new file mode 100644 index 0000000000..bb9e48bae1 --- /dev/null +++ b/docs/tags/open-source-licensing/index.html @@ -0,0 +1,14 @@ + + + + + +12 docs tagged with "open source licensing" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/pipeline/index.html b/docs/tags/pipeline/index.html new file mode 100644 index 0000000000..eb3ede6952 --- /dev/null +++ b/docs/tags/pipeline/index.html @@ -0,0 +1,14 @@ + + + + + +5 docs tagged with "pipeline" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/project/index.html b/docs/tags/project/index.html new file mode 100644 index 0000000000..ff6965f1d3 --- /dev/null +++ b/docs/tags/project/index.html @@ -0,0 +1,14 @@ + + + + + +15 docs tagged with "project" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/react/index.html b/docs/tags/react/index.html new file mode 100644 index 0000000000..ab03700c87 --- /dev/null +++ b/docs/tags/react/index.html @@ -0,0 +1,14 @@ + + + + + +35 docs tagged with "react" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/rest/index.html b/docs/tags/rest/index.html new file mode 100644 index 0000000000..dbd04c52ab --- /dev/null +++ b/docs/tags/rest/index.html @@ -0,0 +1,14 @@ + + + + + +33 docs tagged with "rest" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/reuse/index.html b/docs/tags/reuse/index.html new file mode 100644 index 0000000000..f125656bae --- /dev/null +++ b/docs/tags/reuse/index.html @@ -0,0 +1,14 @@ + + + + + +14 docs tagged with "reuse" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/spasht/index.html b/docs/tags/spasht/index.html new file mode 100644 index 0000000000..de1b4b0de5 --- /dev/null +++ b/docs/tags/spasht/index.html @@ -0,0 +1,14 @@ + + + + + +6 docs tagged with "spasht" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/spdx-30/index.html b/docs/tags/spdx-30/index.html new file mode 100644 index 0000000000..fc3ee16f98 --- /dev/null +++ b/docs/tags/spdx-30/index.html @@ -0,0 +1,14 @@ + + + + + +6 docs tagged with "spdx30" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/spdx-expression/index.html b/docs/tags/spdx-expression/index.html new file mode 100644 index 0000000000..a96699da66 --- /dev/null +++ b/docs/tags/spdx-expression/index.html @@ -0,0 +1,14 @@ + + + + + +5 docs tagged with "spdx-expression" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/ui/index.html b/docs/tags/ui/index.html new file mode 100644 index 0000000000..9ce13b36e1 --- /dev/null +++ b/docs/tags/ui/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "ui" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-1/index.html b/docs/tags/week-1/index.html new file mode 100644 index 0000000000..0317cddeb6 --- /dev/null +++ b/docs/tags/week-1/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 1" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-10/index.html b/docs/tags/week-10/index.html new file mode 100644 index 0000000000..520e8f2715 --- /dev/null +++ b/docs/tags/week-10/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 10" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-11/index.html b/docs/tags/week-11/index.html new file mode 100644 index 0000000000..115d492f08 --- /dev/null +++ b/docs/tags/week-11/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 11" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-12/index.html b/docs/tags/week-12/index.html new file mode 100644 index 0000000000..3bd6cb7069 --- /dev/null +++ b/docs/tags/week-12/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 12" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-2/index.html b/docs/tags/week-2/index.html new file mode 100644 index 0000000000..5c2c870237 --- /dev/null +++ b/docs/tags/week-2/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 2" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-3/index.html b/docs/tags/week-3/index.html new file mode 100644 index 0000000000..49fc5585b6 --- /dev/null +++ b/docs/tags/week-3/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 3" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-4/index.html b/docs/tags/week-4/index.html new file mode 100644 index 0000000000..d4a3e99d60 --- /dev/null +++ b/docs/tags/week-4/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 4" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-5/index.html b/docs/tags/week-5/index.html new file mode 100644 index 0000000000..fad452a3f4 --- /dev/null +++ b/docs/tags/week-5/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 5" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-6/index.html b/docs/tags/week-6/index.html new file mode 100644 index 0000000000..a2f06a65a2 --- /dev/null +++ b/docs/tags/week-6/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 6" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-7/index.html b/docs/tags/week-7/index.html new file mode 100644 index 0000000000..a55342de9f --- /dev/null +++ b/docs/tags/week-7/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 7" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-8/index.html b/docs/tags/week-8/index.html new file mode 100644 index 0000000000..14093d5fb1 --- /dev/null +++ b/docs/tags/week-8/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 8" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/docs/tags/week-9/index.html b/docs/tags/week-9/index.html new file mode 100644 index 0000000000..75d6df84e9 --- /dev/null +++ b/docs/tags/week-9/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Week 9" | GSoC projects at FOSSology + + + + + + + + \ No newline at end of file diff --git a/ics/gsoc_2022_atarashi.ics b/ics/gsoc_2022_atarashi.ics new file mode 100644 index 0000000000..e40387e893 --- /dev/null +++ b/ics/gsoc_2022_atarashi.ics @@ -0,0 +1,135 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN=sushantmishra02102002@gmail.com;RSVP=TRUE:mailto:sushantmishra0 + 2102002@gmail.com +ATTENDEE;CN=vasudevmaduri2@gmail.com;RSVP=TRUE:mailto:vasudevmaduri2@gmail. + com +ATTENDEE;CN=classicayush@gmail.com;RSVP=TRUE:mailto:classicayush@gmail.com +ATTENDEE;CN=mcj@mcj.de;RSVP=TRUE:mailto:mcj@mcj.de +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";ROLE=OPT-PARTICIPANT;RSVP=TRUE: + mailto:mishra.gaurav@siemens.com +CLASS:PUBLIC +CREATED:20220720T051739Z +DESCRIPTION:Setting up this meeting for everyone to have our weekly discuss + ions over Atarashi Project\n \n \nBR\nKaushlendra Pratap Singh\n\n\n\n____ + __________________________________________________________________________ + __ \nMicrosoft Teams meeting \nJoin on your computer or mobile app \nClick + here to join the meeting \nOr call in (audio onl + y) \n+91 22 6259 0317\,\,\,\,547042649# India\, Mumbai \nPhone Conference ID: 547 042 649# \nFind a local n + umber | Reset PIN \nLearn More | Meeting + options \n_____________________________________ + ___________________________________________ \n +DTEND;TZID="India Standard Time":20220608T103000 +DTSTAMP:20220720T051337Z +DTSTART;TZID="India Standard Time":20220608T100000 +LAST-MODIFIED:20220720T051739Z +ORGANIZER;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)":mailto:kaushlendra- + pratap.singh@siemens.com +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=WE +SEQUENCE:1 +SUMMARY:GSoC 2022 Discussions- Atarashi-Minerva +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000ADAB280CF97AD801000000000000000 + 0100000006F821D4B7E01DB4A8E087A88069695AC +X-ALT-DESC;FMTTYPE=text/html:\n\n\n
Setting up + this meeting for everyone to have our weekly discussions over Atarashi Pr + oject
\n
 \;
\n
 \;
\n
BR
\n
K + aushlendra Pratap Singh
\n

\n
\n
\n
__________________________________________________________________ + ______________\n
\n
\n
Microsoft Teams meeting + \n
\n
\n
Join on your computer or mobile app\n
\nClick\n here to j + oin the meeting
\n
\n
Or call in (audio only)\n
\n\n
\nPhone Conference ID: 547 042 649#\n\n\n\n
\ + n
\n
\n
\n
\n
________________ + ________________________________________________________________\n< + /div>\n
\n\n\n +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTSEQTIME:20220720T051337Z +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2022_project.ics b/ics/gsoc_2022_project.ics new file mode 100644 index 0000000000..2d55bd262e --- /dev/null +++ b/ics/gsoc_2022_project.ics @@ -0,0 +1,149 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN=fwhdzh@gmail.com;RSVP=TRUE:mailto:fwhdzh@gmail.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN=avinal.xlvii@gmail.com;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN=nicolas1.toussaint@orange.com;RSVP=TRUE:mailto:nicolas1.toussai + nt@orange.com +CLASS:PUBLIC +CREATED:20220606T045457Z +DESCRIPTION:Hello all\,\n\n \n\nLet’s use this meeting to have discussion + s on introducing project concept.\n\n \n\nWith best regards\,\n\nGaurav Mi + shra\n\n__________________________________________________________________ + ______________ \n\nMicrosoft Teams meeting \n\nJoin on your computer or mo + bile app \n\nClick here to join the meeting \n\nO + r call in (audio only) \n\n+91 22 6259 0317\,\,\,\,785164572# India\, Mumbai \n\nPhone Conference ID: 785 1 + 64 572# \n\nFind a local number | Reset PIN \n\nLearn More | Meeting options \n\n_______ + _________________________________________________________________________ + \n\n \n\n +DTEND;TZID="India Standard Time":20220609T150000 +DTSTAMP:20220606T045435Z +DTSTART;TZID="India Standard Time":20220609T143000 +LAST-MODIFIED:20220606T045457Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=TH +SEQUENCE:1 +SUMMARY;LANGUAGE=en-in:GSoC 2022 Discussions - Project concept +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000104C81C38D79D801000000000000000 + 0100000008488202A23E695458A4906E7E1EB8210 +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Let’\;s use this meeting to have discussions + on introducing project concept.

&nbs + p\;

With best regards\,

Gaurav Mishra

_________________________________________________________ + _______________________

+ Microsoft Teams meeting

Join on + your computer or mobile app

Click here to join the meeting

+

Or call in (audio only)

+91 22 6259 0317\,\,\,\,785164572# +  \; India\, Mumbai

Phone Conference I + D: 785 164 572#

Find a local + number | + Reset PIN

________________________________________ + ________________________________________

 \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTLASTSEQUENCE:1 +X-MS-OLK-APPTSEQTIME:20220606T045435Z +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR +diff --git a/docs/2022/index.md b/docs/2022/index.md diff --git a/ics/gsoc_2022_reuse.ics b/ics/gsoc_2022_reuse.ics new file mode 100644 index 0000000000..f3c4b73afd --- /dev/null +++ b/ics/gsoc_2022_reuse.ics @@ -0,0 +1,151 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN=rohit.pandey4900@gmail.com;RSVP=TRUE:mailto:rohit.pandey4900@gm + ail.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN=vvksindia@gmail.com;RSVP=TRUE:mailto:vvksindia@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +ATTENDEE;CN=nicolas1.toussaint@orange.com;RSVP=TRUE:mailto:nicolas1.toussai + nt@orange.com +CLASS:PUBLIC +CREATED:20220606T045057Z +DESCRIPTION:Hello all\,\n\n \n\nLet’s use this meeting to have discussion + about the REUSE project.\n\n \n\nWith best regards\,\n\nGaurav Mishra\n\n + __________________________________________________________________________ + ______ \n\nMicrosoft Teams meeting \n\nJoin on your computer or mobile app + \n\nClick here to join the meeting \n\nOr call i + n (audio only) \n\n+91 22 6259 0317\,\,\,\,9143012# India\, Mumbai \n\nPhone Conference ID: 914 301 2# \n\nFi + nd a local number | Reset PIN \n\nLearn More | Meeting options \n\n_______________________ + _________________________________________________________ \n\n \n\n +DTEND;TZID="India Standard Time":20220607T180000 +DTSTAMP:20220606T044059Z +DTSTART;TZID="India Standard Time":20220607T173000 +LAST-MODIFIED:20220606T045057Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2022 Discussions - REUSE +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E0080000000090112B708D79D801000000000000000 + 010000000151CF261C8A9FB4FA0EFD19A9419EA76 +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Le + t’\;s use this meeting to have discussion about the REUSE project.

 \;

Wi + th best regards\,

Gaurav Mishra

_________________ + _______________________________________________________________

Microsoft Teams meeting

Join on your computer or mobile app +

Click here to join the + meeting

Or call in (audio only)

+91 22 + 6259 0317\,\,\,\,9143012#  \; Ind + ia\, Mumbai

< + span lang=EN-US style='font-size:10.5pt\;font-family:"Segoe UI"\,sans-seri + f\;color:#252424'>Phone Conference ID: 914 301 2 + #

________ + ________________________________________________________________________

 \;

+ +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTSEQTIME:20220606T044059Z +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR +diff --git a/static/ics/gsoc_2022_spasht.ics b/static/ics/gsoc_2022_spasht.ics diff --git a/ics/gsoc_2022_ui.ics b/ics/gsoc_2022_ui.ics new file mode 100644 index 0000000000..a798bfeca4 --- /dev/null +++ b/ics/gsoc_2022_ui.ics @@ -0,0 +1,162 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:India Standard Time +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0530 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";RSVP=TRUE:mailto:katharina + .ettinger@siemens.com +ATTENDEE;CN="Michael C. Jaeger";RSVP=TRUE:mailto:mcj@mcj.de +ATTENDEE;CN=sjha200000@gmail.com;RSVP=TRUE:mailto:sjha200000@gmail.com +ATTENDEE;CN=mail2shruti.ag@gmail.com;RSVP=TRUE:mailto:mail2shruti.ag@gmail. + com +ATTENDEE;CN=vvksindia@gmail.com;RSVP=TRUE:mailto:vvksindia@gmail.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";RSVP=TRUE:mailto:mishra.gaurav@ + siemens.com +ATTENDEE;CN=sohambanerjee4abc@gmail.com;RSVP=TRUE:mailto:sohambanerjee4abc@ + gmail.com +ATTENDEE;CN=ayushknj3@gmail.com;RSVP=TRUE:mailto:ayushknj3@gmail.com +ATTENDEE;CN=dushsam100@gmail.com;RSVP=TRUE:mailto:dushsam100@gmail.com +ATTENDEE;CN=krishhtrishh9304@gmail.com;RSVP=TRUE:mailto:krishhtrishh9304@gm + ail.com +CATEGORIES:Shaheem,Fossology +CLASS:PUBLIC +CREATED:20220608T060343Z +DESCRIPTION:Hello all\,\n\n \n\nLet’s use this meeting discuss updates an + d clarifications about the UI project.\n\n \n\nBest Regards\n\nShaheem Azm + al M MD\n\n \n\n__________________________________________________________ + ______________________ \n\nMicrosoft Teams meeting \n\nJoin on your comput + er or mobile app \n\nClick here to join the meeting \n\nOr call in (audio only) \n\n+91 22 6259 0317\,\,\,\,574632763# India\, Mumbai \n\nPhone Conference I + D: 574 632 763# \n\nFind a local number | Reset PIN \n\nLearn More | Meeting options \n\ + n_________________________________________________________________________ + _______ \n\n \n\n +DTEND;TZID="India Standard Time":20220607T210000 +DTSTAMP:20220607T122115Z +DTSTART;TZID="India Standard Time":20220607T200000 +LAST-MODIFIED:20220608T060343Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto:shaheem.azmal@siem + ens.com +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=25;BYDAY=TU +SEQUENCE:0 +SUMMARY:GSoC 2022 Discussions - UI +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000809AE069967AD801000000000000000 + 010000000A6F5C909E32CCC4897EA2281F8A7CB12 +X-ALT-DESC;FMTTYPE=text/html:\n

Hello all\,

 \;

Extending the meeting by 15 minutes as requested.< + o:p>

 \;

+ With best regards\,

Gaurav Mishra

 \;

 \;

Hello all\,

 \;

Let us meet here f + or the project specific discussions.

 \;

With best regards\,

Gaurav Mishra

____________________________________________________ + ____________________________

Microsoft Teams meeting

Joi + n on your computer\, mobile app or room device < + /span>

Click here to join the meeting < + o:p>

Meeting ID: 352 030 350 990
Passcode: 3XxBGh

Or + call in (audio only)

Phone Conference ID: 808 070 547# < + /span>

_________ + _______________________________________________________________________

 \;

< + /body> +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-APPTLASTSEQUENCE:1 +X-MS-OLK-APPTSEQTIME:20230824T054804Z +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2023_cyclonedx.ics b/ics/gsoc_2023_cyclonedx.ics new file mode 100644 index 0000000000..66a37b5c22 --- /dev/null +++ b/ics/gsoc_2023_cyclonedx.ics @@ -0,0 +1,683 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Sushant Kumar";RSVP=TRUE:mailto:sushantmishra02102002@gmail.co + m +ATTENDEE;CN=Avinal;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Ayush Bhardwaj";RSVP=TRUE:mailto:classicayush@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +CLASS:PUBLIC +CREATED:20230511T153048Z +DESCRIPTION:Hello all\,\n \nLet us meet here for the project specific discu + ssions.\n \nWith best regards\,\nGaurav Mishra\n__________________________ + ______________________________________________________ \nMicrosoft Teams m + eeting \nJoin on your computer\, mobile app or room device \nClick here to + join the meeting \nMeeting ID: 325 765 387 938 \ + nPasscode: 2PPxkE \nDownload Teams | Join on the web \nOr call in (audio only) \n+91 22 6259 0317\, + \,\,\,848694533# India\, Mumbai \ + nPhone Conference ID: 848 694 533# \nFind a local number | R + eset PIN \nLear + n More | Meeting options \n____________________________________________________________ + ____________________ \n \n +DTEND;TZID=UTC:20230530T110000 +DTSTAMP:20230511T153049Z +DTSTART;TZID=UTC:20230530T103000 +LAST-MODIFIED:20230511T153048Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=TU +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - CycloneDX +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000904AF93A4B84D901000000000000000 + 010000000D537C41F6948ED4B9C06815F05C415DC +X-ALT-DESC;FMTTYPE=text/html:< + /head>

H + ello all\,

 \;

Let us meet here for the project specific discussions.

 \;

With bes + t regards\,

Gaurav Mishra

< + div>

______________________________________________________ + __________________________

Microsoft Teams meeting

Join on your co + mputer\, mobile app or room device< + span lang=EN-US style='font-family:"Segoe UI"\,sans-serif\;mso-fareast-fon + t-family:"Times New Roman"\;color:#252424\;mso-ansi-language:EN-US'> +

Click here to join the meeting +

Me + eting ID: 325 765 387 938 < + span lang=EN-US style='font-family:"Segoe UI"\,sans-serif\;mso-fareast-fon + t-family:"Times New Roman"\;color:#252424\;mso-ansi-language:EN-US'>
Passcode: 2PPxkE

Or call in (audio only)

Phone Conference ID: 848 694 533#

_________________________________________________________________________ + _______

 \;

< + /div> +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2023_laas.ics b/ics/gsoc_2023_laas.ics new file mode 100644 index 0000000000..8df7f4778f --- /dev/null +++ b/ics/gsoc_2023_laas.ics @@ -0,0 +1,685 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Kavya Shukla";RSVP=TRUE:mailto:kavyuushukla59@gmail.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Sahil Jha";RSVP=TRUE:mailto:sjha200000@gmail.com +ATTENDEE;CN=Avinal;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +CLASS:PUBLIC +CREATED:20230511T152720Z +DESCRIPTION:Hello all\,\n \nLet us meet here for the project specific discu + ssions.\n \nWith best regards\,\nGaurav Mishra\n__________________________ + ______________________________________________________ \nMicrosoft Teams m + eeting \nJoin on your computer\, mobile app or room device \nClick here to + join the meeting \nMeeting ID: 347 490 353 952 \ + nPasscode: oXKNGQ \nDownload Teams | Join on the web \nOr call in (audio only) \n+91 22 6259 0317\, + \,\,\,232050869# India\, Mumbai \ + nPhone Conference ID: 232 050 869# \nFind a local number | R + eset PIN \nLear + n More | Meeting options \n____________________________________________________________ + ____________________ \n \n +DTEND;TZID=UTC:20230602T110000 +DTSTAMP:20230511T152720Z +DTSTART;TZID=UTC:20230602T103000 +LAST-MODIFIED:20230511T152720Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=FR +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - License as a Service +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E0080000000030B30BBC4A84D901000000000000000 + 01000000049006192A034B14A91C64E941A874DD0 +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Let us m + eet here for the project specific discussions.

 \;

With best regards\,

Gaurav Mishra

_________________________________________________________________________ + _______

Microsoft Team + s meeting

+

Join on your computer\, mobile app + or room device

Click here to join the meeting < + /p>

Meeting ID: 347 490 353 952
P + asscode: oXKNGQ

Or call in (audio only)

< + p class=MsoNormal>Phone Conference ID: 23 + 2 050 869#

< + a href="https://aka.ms/JoinTeamsMeeting" target="_blank">Learn More | Meeting options

______________________________________________ + __________________________________

 \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2023_rest.ics b/ics/gsoc_2023_rest.ics new file mode 100644 index 0000000000..b96ce23252 --- /dev/null +++ b/ics/gsoc_2023_rest.ics @@ -0,0 +1,688 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Soham Banerjee";RSVP=TRUE:mailto:sohambanerjee4abc@gmail.com +ATTENDEE;CN="DUSHIMIMANA Samuel";RSVP=TRUE:mailto:dushsam100@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Rohit Pandey";RSVP=TRUE:mailto:rohit.pandey4900@gmail.com +ATTENDEE;CN="Vivek Kumar";RSVP=TRUE:mailto:vvksindia@gmail.com +CLASS:PUBLIC +CREATED:20230511T151817Z +DESCRIPTION:Hello all\,\n \nLet us meet here for the REST API specific proj + ect discussions.\n \nWith best regards\,\nGaurav Mishra\n_________________ + _______________________________________________________________ \nMicrosof + t Teams meeting \nJoin on your computer\, mobile app or room device \nClic + k here to join the meeting \nMeeting ID: 397 902 + 744 922 \nPasscode: sfHsAY \nDownload Teams | Join on the web \nOr call in (audio only) \n+91 22 62 + 59 0317\,\,\,\,614020409# India\, + Mumbai \nPhone Conference ID: 614 020 409# \nFind a local number | Reset PIN \nLearn More | Meeting options \n___________________________________________________ + _____________________________ \n \n +DTEND;TZID=UTC:20230531T130000 +DTSTAMP:20230511T151817Z +DTSTART;TZID=UTC:20230531T120000 +LAST-MODIFIED:20230511T151817Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=WE +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - REST API +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E00800000000909B27094984D901000000000000000 + 01000000003C80CE3F1B284448FEB189E4826634E +X-ALT-DESC;FMTTYPE=text/html:

Hello all\,

 \;

Let us m + eet here for the REST API specific project discussions.

 \;

With best regards\ + ,

Gaurav Mishra

________________________________________________________________ + ________________

Micro + soft Teams meeting

Join on your computer\, m + obile app or room device

Click here to join the meeting

Meeting ID: + 397 902 744 922
Passcode: sfHsAY

Download Teams | < + a href="https://www.microsoft.com/microsoft-teams/join-a-meeting" target=" + _blank">Join on the web< + /span>

_____________________________________ + ___________________________________________

 \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2023_weekly.ics b/ics/gsoc_2023_weekly.ics new file mode 100644 index 0000000000..40414d01ee --- /dev/null +++ b/ics/gsoc_2023_weekly.ics @@ -0,0 +1,702 @@ +BEGIN:VCALENDAR +PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN +VERSION:2.0 +METHOD:REQUEST +X-MS-OLK-FORCEINSPECTOROPEN:TRUE +BEGIN:VTIMEZONE +TZID:UTC +BEGIN:STANDARD +DTSTART:16010101T000000 +TZOFFSETFROM:-0000 +TZOFFSETTO:-0000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ATTENDEE;CN="Vivek Kumar";RSVP=TRUE:mailto:vvksindia@gmail.com +ATTENDEE;CN="Shruti Agarwal";RSVP=TRUE:mailto:mail2shruti.ag@gmail.com +ATTENDEE;CN=Sahil;RSVP=TRUE:mailto:sjha200000@gmail.com +ATTENDEE;CN="Rohit Pandey";RSVP=TRUE:mailto:rohit.pandey4900@gmail.com +ATTENDEE;CN=Avinal;RSVP=TRUE:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Ayush Bhardwaj";RSVP=TRUE:mailto:classicayush@gmail.com +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";RSVP=TRUE:mailto:shaheem.a + zmal@siemens.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";RSVP=TRUE:mailto:anupam.ghosh@si + emens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";RSVP=TRUE:mailto:katharina + .ettinger@siemens.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";RSVP=TRUE:mailto:kau + shlendra-pratap.singh@siemens.com +ATTENDEE;CN="DUSHIMIMANA Samuel";RSVP=TRUE:mailto:dushsam100@gmail.com +ATTENDEE;CN="Sushant Kumar";RSVP=TRUE:mailto:sushantmishra02102002@gmail.co + m +ATTENDEE;CN="Soham Banerjee";RSVP=TRUE:mailto:sohambanerjee4abc@gmail.com +ATTENDEE;CN="Abdelrahman Jamal";RSVP=TRUE:mailto:abdelrahmanjamal5565@gmail + .com +ATTENDEE;CN="Kavya Shukla";RSVP=TRUE:mailto:kavyuushukla59@gmail.com +CLASS:PUBLIC +CREATED:20230511T151419Z +DESCRIPTION:Hello all\,\n \nLet us meet here every week to have general dis + cussion on all projects.\n \nYou can find details about other calls at htt + ps://fossology.github.io/gsoc/docs/2023/#meetings-table\n \nWith best rega + rds\,\nGaurav Mishra\n____________________________________________________ + ____________________________ \nMicrosoft Teams meeting \nJoin on your comp + uter\, mobile app or room device \nClick here to join the meeting \nMeeting ID: 346 509 982 936 \nPasscode: 2ARDRQ \nDownlo + ad Teams | + Join on the web \nOr call in (audio only) \n+91 22 6259 0317\,\,\,\,121388062# India\, Mumbai \nPhone Conference ID: 121 + 388 062# \nFind a local number | Reset PIN \nLearn More | Meeting options \n____________ + ____________________________________________________________________ \n \n +DTEND;TZID=UTC:20230511T140000 +DTSTAMP:20230511T151419Z +DTSTART;TZID=UTC:20230511T130000 +LAST-MODIFIED:20230511T151419Z +LOCATION:Microsoft Teams Meeting +ORGANIZER;CN="Mishra, Gaurav (T SSP ASI-IN)":mailto:mishra.gaurav@siemens.c + om +PRIORITY:5 +RRULE:FREQ=WEEKLY;COUNT=16;BYDAY=TH +SEQUENCE:0 +SUMMARY;LANGUAGE=en-in:GSoC 2023 - FOSSology - General Meeting +TRANSP:OPAQUE +UID:040000008200E00074C5B7101A82E0080000000010F9A28E4784D901000000000000000 + 010000000F8962B5254044844962C780DBE433B82 +X-ALT-DESC;FMTTYPE=text/html:\n\n\n

Hello all\,

+

 \;

Let us meet he + re every week to have general discussion on all projects.

 \;

You can find det + ails about other calls at https://fossology.github.io/gsoc/docs/2023/#meetings- + table

 \;

With best regards\,

Gaurav Mish + ra

____________________________________ + ____________________________________________

Microsoft Teams meeting

Join on your computer\, mobile app or room device

Click here to join the m + eeting

Meeting ID: 346 509 982 936
Passcode: 2ARDRQ < + /span>

Or call in (audio only)

< + span lang=EN-US style='font-family:"Segoe UI"\,sans-serif\;mso-fareast-fon + t-family:"Times New Roman"\;color:#252424\;mso-ansi-language:EN-US'>+91 22 6259 0317\,\,\,\,121388062#  \; India\, Mumbai

Phone Conference ID: 121 388 062 + #

Learn More | Meeting options

_______________________________________________________ + _________________________

+  \;

+X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MS-OLK-AUTOFILLLOCATION:FALSE +X-MS-OLK-CONFTYPE:0 +BEGIN:VALARM +TRIGGER:-PT15M +ACTION:DISPLAY +DESCRIPTION:Reminder +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2024_ai.ics b/ics/gsoc_2024_ai.ics new file mode 100644 index 0000000000..774c71bfd7 --- /dev/null +++ b/ics/gsoc_2024_ai.ics @@ -0,0 +1,149 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +UID: + 040000008200E00074C5B7101A82E00800000000E0F110CACDADDA01000000000000000010 + 000000ED6299C77DA5DE46950419D14B5BAE12 +RECURRENCE-ID:20240530T103000Z +SUMMARY:Updates on Data pipelining and AI-powered license identification +DTSTART;TZID=Asia/Kolkata:20240530T160000 +DTEND;TZID=Asia/Kolkata:20240530T165000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240530T095515Z +TRANSP:TRANSPARENT +STATUS:CONFIRMED +LOCATION:https: + //moderated.jitsi.net/15ee0bf46cb345e4accc817ed2967b55db216bf57c894c30bd15 + 50ecf3ec3ace +X-MICROSOFT-CDO-OWNERAPPTID:1268275176 +X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=Abdelrahman Jamal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:abdelrahmanjamal5565@gmail.com +ATTENDEE;CN=Shreya Gautam;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:gautamm.shreya@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + anupam.ghosh@siemens.com +ATTENDEE;CN=Shreya Singh;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=ACCEPTED:mailto:shreya.out@gmail.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN=vasudevmaduri2@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + vasudevmaduri2@gmail.com +ATTENDEE;CN=classicayush@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:classicayush@gmail.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=DECLINED:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3IA7cvdAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGdT4FfgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZxXmxt +CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpVSUQ6DQogMDQw + MDAwMDA4MjAwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMEUwRjExMENBQ0RBRERBMDEwMD + AwMDAwMDAwMDAwMDAwMTANCiAwMDAwMDBFRDYyOTlDNzdEQTVERTQ2OTUwNDE5RDE0QjVCQUUx + Mg0KUkVDVVJSRU5DRS1JRDoyMDI0MDUzMFQxMDMwMDBaDQpTVU1NQVJZOlVwZGF0ZXMgb24gRG + F0YSBwaXBlbGluaW5nIGFuZCBBSS1wb3dlcmVkIGxpY2Vuc2UgaWRlbnRpZmljYXRpb24NCkRU + U1RBUlQ7VFpJRD1Bc2lhL0tvbGthdGE6MjAyNDA1MzBUMTYwMDAwDQpEVEVORDtUWklEPUFzaW + EvS29sa2F0YToyMDI0MDUzMFQxNjUwMDANCkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0KRFRT + VEFNUDoyMDI0MDUzMFQwOTU1MTVaDQpUUkFOU1A6VFJBTlNQQVJFTlQNClNUQVRVUzpDT05GSV + JNRUQNCkxPQ0FUSU9OOmh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC8xNWVlMGJmNDZj + YjM0NWU0YWNjYzgxN2VkMjk2N2I1NWRiMjE2YmY1N2M4OTRjMzBiZDE1DQogNTBlY2YzZWMzYW + NlDQpYLU1JQ1JPU09GVC1DRE8tT1dORVJBUFBUSUQ6MTI2ODI3NTE3Ng0KWC1NSUNST1NPRlQt + Q0RPLUJVU1lTVEFUVVM6VEVOVEFUSVZFDQpYLU1JQ1JPU09GVC1DRE8tSU5URU5ERURTVEFUVV + M6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLUFMTERBWUVWRU5UOkZBTFNFDQpYLU1JQ1JPU09GVC1D + RE8tSU1QT1JUQU5DRToxDQpYLU1JQ1JPU09GVC1DRE8tSU5TVFRZUEU6Mw0KWC1MSUMtRVJST1 + I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3Bl + cnR5LiANCiBSZW1vdmluZyBlbnRpcmUgcHJvcGVydHk6DQpYLUxJQy1FUlJPUjtYLUxJQy1FUl + JPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHkuIA0KIFJl + bW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVFlQRT1WQU + xVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQogUmVtb3ZpbmcgZW50 + aXJlIHByb3BlcnR5Og0KWC1NSUNST1NPRlQtRE9OT1RGT1JXQVJETUVFVElORzpGQUxTRQ0KWC + 1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC1NSUNST1NPRlQtUkVRVUVTVEVE + QVRURU5EQU5DRU1PREU6REVGQVVMVA0KWC1NSUNST1NPRlQtSVNSRVNQT05TRVJFUVVFU1RFRD + pUUlVFDQpBVFRFTkRFRTtDTj0iQXptYWwgTSBNRCwgU2hhaGVlbSAoVCBTU1AgQVNJLUlOKSI7 + Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUl + RTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogc2hhaGVlbS5hem1hbEBzaWVtZW5zLmNvbQ0K + QVRURU5ERUU7Q049QWJkZWxyYWhtYW4gSmFtYWw7Q1VUWVBFPUlORElWSURVQUw7Uk9MRT1SRV + EtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1haWx0bzphYmRl + bHJhaG1hbmphbWFsNTU2NUBnbWFpbC5jb20NCkFUVEVOREVFO0NOPVNocmV5YSBHYXV0YW07Q1 + VUWVBFPUlORElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRT + VEFUPUFDQ0VQVEVEOm1haWx0bzpnYXV0YW1tLnNocmV5YUBnbWFpbC5jb20NCkFUVEVOREVFO0 + NOPSJTaW5naCwgS2F1c2hsZW5kcmEgUHJhdGFwIChUIFNTUCBBU0ktSU4pIjtDVVRZUEU9SU5E + SVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUEFOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRV + BURUQ6bWFpbHRvOg0KIGthdXNobGVuZHJhLXByYXRhcC5zaW5naEBzaWVtZW5zLmNvbQ0KQVRU + RU5ERUU7Q049Ikdob3NoLCBBbnVwYW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVU + FMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJ + T046bWFpbHRvOg0KIGFudXBhbS5naG9zaEBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049U2hyZX + lhIFNpbmdoO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJV + RTsNCiBQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86c2hyZXlhLm91dEBnbWFpbC5jb20NCkFUVE + VOREVFO0NOPWF2aW5hbC54bHZpaUBnbWFpbC5jb207Q1VUWVBFPUlORElWSURVQUw7Uk9MRT1S + RVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG + 86YXZpbmFsLnhsdmlpQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049dmFzdWRldm1hZHVyaTJAZ21h + aWwuY29tO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VF + JVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHZhc3VkZXZtYWR1cmkyQGdtYWls + LmNvbQ0KQVRURU5ERUU7Q049Y2xhc3NpY2F5dXNoQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRF + VBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNU + SU9OOm1haWx0bzpjbGFzc2ljYXl1c2hAZ21haWwuY29tDQpBVFRFTkRFRTtDTj0iTWlzaHJhLC + BHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBB + UlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIG1pc2 + hyYS5nYXVyYXZAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPSJFdHRpbmdlciwgS2F0aGFyaW5h + IChUIFNTUCBET1MtREUpIjtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPU9QVC1QQVJUSUNJUE + FOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9REVDTElORUQ6bWFpbHRvOg0KIGthdGhhcmluYS5ldHRp + bmdlckBzaWVtZW5zLmNvbQ0KWC1FVk9MVVRJT04tSVRFTUlEOg0KIEFBTWtBR1E0T1RZeVpEYz + VMV1poWlRrdE5EWTBaUzFoWTJVeUxUZzFPRFZqWkdGbU5UVTVaQUZSQUFnSTNJQTdjdmRBQUVZ + QUFBDQogQUFUdjNMbzF3K0hrbUR0M1U1UlFOVmJ3Y0FicVVQKzh6VjBVYURucDk1dHNKbzlBQU + FBQUFCRFFBQWJxVVArOHpWMFVhRG5wOTUNCiB0c0pvOUFBR2RUNEZmZ0FBRUE9PQ0KWC1FVk9M + VVRJT04tQ0hBTkdFS0VZOkR3QUFBQllBQUFCdXBRLzd6TlhSUm9PZW4zbTJ3bWowQUFaeFhteH + QNCkNBVEVHT1JJRVM6Rm9zc29sb2d5DQpFTkQ6VkVWRU5UDQoA +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2024_ci.ics b/ics/gsoc_2024_ci.ics new file mode 100644 index 0000000000..d4c4abd709 --- /dev/null +++ b/ics/gsoc_2024_ci.ics @@ -0,0 +1,299 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello Everyone\,\n\nLet’s meet here and discuss updates + regarding improving fossology CI scanner.\n\n\nBest Regards\nShaheem + Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/39896aad61bc4a27b9418ee6b78689348c65790e889046069dbe + 9c8c34110c9a\n\n_______________________________________________________ + _________________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000D0F9146B14B1DA01000000000000000010 + 0000002D45257FF6936049A9681A6858126ABC +RECURRENCE-ID:20240529T103000Z +SUMMARY:Updates on CI/CD Project +DTSTART;TZID=Asia/Kolkata:20240529T160000 +DTEND;TZID=Asia/Kolkata:20240529T163000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240528T100904Z +TRANSP:OPAQUE +STATUS:CONFIRMED +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION + property. Removing entire property: +X-MICROSOFT-CDO-OWNERAPPTID:964450280 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=rajuljha49@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:rajuljha49@gmail.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3H9ySI2AAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGc/y9XgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZxXg1l +X-ALT-DESC;FMTTYPE=text/html:\n

Hello Everyone\,

 \;

Let’s meet here and discuss + updates regarding improving fossology CI scanner.

 \;

 \; +

Best Regards

Shaheem Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/39896aad61bc4a27b9418ee6b78689348c65790e889046069dbe + 9c8c34110c9a

 \;

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBFdmVyeW9uZVwsXG5cbkxldOKAmXMgbWVldCBoZXJlIGFuZCBkaXNjdXNzIHVwZG + F0ZXMgDQogcmVnYXJkaW5nIGltcHJvdmluZyBmb3Nzb2xvZ3kgQ0kgc2Nhbm5lci5cblxuXG5C + ZXN0IFJlZ2FyZHNcblNoYWhlZW0gDQogQXptYWwgTSANCiBNRFxuX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K + IF9fX19fX19fX19cbkppdHNpIExpbms6IGh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC + 8zOTg5NmFhZDYxYmM0YTI3Yjk0MThlZTZiNzg2ODkzNDhjNjU3OTBlODg5MDQ2MDY5ZGJlDQog + OWM4YzM0MTEwYzlhPGh0dHBzOg0KIC8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG + 9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRm1vZGVyYXRlZC5qaXRzDQogaS5uZXQlMkYzOTg5 + NmFhZDYxYmM0YTI3Yjk0MThlZTZiNzg2ODkzNDhjNjU3OTBlODg5MDQ2MDY5ZGJlOWM4YzM0MT + EwYzlhJmQNCiBhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5zLmNvbSU3QzRm + YmRjYThhYjljYjRlNTAwNzAzMDhkYzdlZmUzNQ0KIDllJTdDMzhhZTNiY2Q5NTc5NGZkNGFkZG + FiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUyNDg3NzQ4NTY5NjE3MSU3Q1Vua25vDQogd24l + N0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVG + lJNklrMWhhV3dpTENKWFYNCiBDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPWkwbHBLaHVy + Mlc4R1VlSjRrZTRiOER5NzU1dEpNc2Q4Vm55bVlpek8lMkJjWQ0KICUzRCZyZXNlcnZlZD0wPl + xuXG5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fDQogX19fX19fX19fX19fX19fX19fX19fX19fX1xuXG4NClVJRDoNCiAwNDAwMDAwMDgyMD + BFMDAwNzRDNUI3MTAxQTgyRTAwODAwMDAwMDAwRDBGOTE0NkIxNEIxREEwMTAwMDAwMDAwMDAw + MDAwMDAxMA0KIDAwMDAwMDJENDUyNTdGRjY5MzYwNDlBOTY4MUE2ODU4MTI2QUJDDQpSRUNVUl + JFTkNFLUlEOjIwMjQwNTI5VDEwMzAwMFoNClNVTU1BUlk6VXBkYXRlcyBvbiBDSS9DRCBQcm9q + ZWN0DQpEVFNUQVJUO1RaSUQ9QXNpYS9Lb2xrYXRhOjIwMjQwNTI5VDE2MDAwMA0KRFRFTkQ7VF + pJRD1Bc2lhL0tvbGthdGE6MjAyNDA1MjlUMTYzMDAwDQpDTEFTUzpQVUJMSUMNClBSSU9SSVRZ + OjUNCkRUU1RBTVA6MjAyNDA1MjhUMTAwOTA0Wg0KVFJBTlNQOk9QQVFVRQ0KU1RBVFVTOkNPTk + ZJUk1FRA0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5v + IHZhbHVlIGZvciBMT0NBVElPTiANCiBwcm9wZXJ0eS4gUmVtb3ZpbmcgZW50aXJlIHByb3Blcn + R5Og0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjk2NDQ1MDI4MA0KWC1NSUNST1NPRlQt + Q0RPLUJVU1lTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLUlOVEVOREVEU1RBVFVTOkJVU1 + kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0KWC1NSUNST1NPRlQtQ0RPLUlN + UE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOjMNClgtTElDLUVSUk9SO1gtTE + lDLUVSUk9SVFlQRT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4g + DQogUmVtb3ZpbmcgZW50aXJlIHByb3BlcnR5Og0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWV + BFPVZBTFVFLVBBUlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmlu + ZyBlbnRpcmUgcHJvcGVydHk6DQpYLUxJQy1FUlJPUjtYLUxJQy1FUlJPUlRZUEU9VkFMVUUtUE + FSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHkuIA0KIFJlbW92aW5nIGVudGlyZSBw + cm9wZXJ0eToNClgtTUlDUk9TT0ZULURPTk9URk9SV0FSRE1FRVRJTkc6RkFMU0UNClgtTUlDUk + 9TT0ZULURJU0FMTE9XLUNPVU5URVI6RkFMU0UNClgtTUlDUk9TT0ZULVJFUVVFU1RFREFUVEVO + REFOQ0VNT0RFOkRFRkFVTFQNClgtTUlDUk9TT0ZULUlTUkVTUE9OU0VSRVFVRVNURUQ6VFJVRQ + 0KQVRURU5ERUU7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQ + RT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD + 1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHNoYWhlZW0uYXptYWxAc2llbWVucy5jb20NCkFUVEVO + REVFO0NOPXJhanVsamhhNDlAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLV + BBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86cmFqdWxq + aGE0OUBnbWFpbC5jb20NCkFUVEVOREVFO0NOPWF2aW5hbC54bHZpaUBnbWFpbC5jb207Q1VUWV + BFPUlORElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFU + PU5FRURTLUFDVElPTjptYWlsdG86YXZpbmFsLnhsdmlpQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q0 + 49IlNpbmdoLCBLYXVzaGxlbmRyYSBQcmF0YXAgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJ + VklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUF + RFRDptYWlsdG86DQoga2F1c2hsZW5kcmEtcHJhdGFwLnNpbmdoQHNpZW1lbnMuY29tDQpBVFRF + TkRFRTtDTj0iTWlzaHJhLCBHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVU + FMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDpt + YWlsdG86DQogbWlzaHJhLmdhdXJhdkBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049IkV0dGluZ2 + VyLCBLYXRoYXJpbmEgKFQgU1NQIERPUy1ERSkiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9 + T1BULVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg + 0KIGthdGhhcmluYS5ldHRpbmdlckBzaWVtZW5zLmNvbQ0KWC1FVk9MVVRJT04tSVRFTUlEOg0K + IEFBTWtBR1E0T1RZeVpEYzVMV1poWlRrdE5EWTBaUzFoWTJVeUxUZzFPRFZqWkdGbU5UVTVaQU + ZSQUFnSTNIOXlTSTJBQUVZQUFBDQogQUFUdjNMbzF3K0hrbUR0M1U1UlFOVmJ3Y0FicVVQKzh6 + VjBVYURucDk1dHNKbzlBQUFBQUFCRFFBQWJxVVArOHpWMFVhRG5wOTUNCiB0c0pvOUFBR2MveT + lYZ0FBRUE9PQ0KWC1FVk9MVVRJT04tQ0hBTkdFS0VZOkR3QUFBQllBQUFCdXBRLzd6TlhSUm9P + ZW4zbTJ3bWowQUFaeFhnMWwNClgtQUxULURFU0M7Rk1UVFlQRT10ZXh0L2h0bWw6PGh0bWwgeG + 1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbToNCiB2bWwiIHhtbG5zOm89InVybjpz + Y2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOg0KIHNjaG + VtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDoNCiAvL3NjaGVt + YXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDoNCiAvL3 + d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+XG48bWV0YSBodHRwLWVxdWl2PSJDb250 + ZW50LVR5cGUiIA0KIGNvbnRlbnQ9InRleHQvaHRtbFw7IGNoYXJzZXQ9dXRmLTgiPjxtZXRhIG + 5hbWU9IkdlbmVyYXRvciIgDQogY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVk + IG1lZGl1bSkiPjxzdHlsZT48IS0tXG4vKiBGb250IA0KIERlZmluaXRpb25zICovXG5AZm9udC + 1mYWNlXG4Je2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiXDtcbglwYW5vc2UtMToyIDQgDQog + NSAzIDUgNCA2IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5OkNhbGlicmlcO1 + xuCXBhbm9zZS0xOjIgMTUgNSANCiAyIDIgMiA0IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2Zv + bnQtZmFtaWx5OiJTZWdvZSBVSSJcO1xuCXBhbm9zZS0xOjIgMTEgDQogNSAyIDQgMiA0IDIgMi + AzXDt9XG4vKiBTdHlsZSBEZWZpbml0aW9ucyAqL1xucC5Nc29Ob3JtYWxcLCBsaS5Nc29Ob3Jt + YWxcLCANCiBkaXYuTXNvTm9ybWFsXG4Je21hcmdpbjowaW5cO1xuCWZvbnQtc2l6ZToxMS4wcH + RcO1xuCWZvbnQtZmFtaWx5Og0KICJDYWxpYnJpIlwsc2Fucy1zZXJpZlw7XG4JbXNvLWxpZ2F0 + dXJlczpzdGFuZGFyZGNvbnRleHR1YWxcO31cbmE6bGlua1wsIA0KIHNwYW4uTXNvSHlwZXJsaW + 5rXG4Je21zby1zdHlsZS1wcmlvcml0eTo5OVw7XG4JY29sb3I6IzA1NjNDMVw7DQogXG4JdGV4 + dC1kZWNvcmF0aW9uOnVuZGVybGluZVw7DQogfVxuc3Bhbi5tZS1lbWFpbC10ZXh0LXNlY29uZG + FyeVxuCXttc28tc3R5bGUtbmFtZToNCiBtZS1lbWFpbC10ZXh0LXNlY29uZGFyeVw7fVxuc3Bh + bi5FbWFpbFN0eWxlMTlcbgl7bXNvLXN0eWxlLXR5cGU6DQogcGVyc29uYWwtY29tcG9zZVw7fV + xuLk1zb0NocERlZmF1bHRcbgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHlcOw0KIFxuCWZv + bnQtc2l6ZToxMC4wcHRcO1xuCW1zby1saWdhdHVyZXM6bm9uZVw7fVxuQHBhZ2UgV29yZFNlY3 + Rpb24xXG4Je3NpemU6DQogOC41aW4gMTEuMGluXDtcbgltYXJnaW46MS4waW4gMS4waW4gMS4w + aW4gMS4waW5cOw0KIH1cbmRpdi5Xb3JkU2VjdGlvbjFcbgl7cGFnZTpXb3JkU2VjdGlvbjFcO3 + 1cbi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIA0KIDldPjx4bWw+XG48bzpzaGFwZWRlZmF1 + bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiANCiAvPlxuPC94bWw+PCFbZW5kaWZdLS + 0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+XG48bzpzaGFwZWxheW91dCB2Og0KIGV4dD0iZWRp + dCI+XG48bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz5cbjwvbzoNCiBzaGFwZWxheW + 91dD48L3htbD48IVtlbmRpZl0tLT48L2hlYWQ+PGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9IiMw + NTYzQzEiIA0KIHZsaW5rPSIjOTU0RjcyIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPj + xkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8g + RXZlcnlvbmVcLDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOg0KIHA+Jm + 5ic3BcOzwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5MZXTigJlzIG1lZXQgaGVyZSBh + bmQgZGlzY3VzcyANCiB1cGRhdGVzIHJlZ2FyZGluZyBpbXByb3ZpbmcgZm9zc29sb2d5IENJIH + NjYW5uZXIuPG86cD48L286cD48L3A+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz + cFw7PC9vOnA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3BcOw0KIDwvbzpwPj + wvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5CZXN0IFJlZ2FyZHM8bzpwPjwvbzpwPjwvcD48cCAN + CiBjbGFzcz0iTXNvTm9ybWFsIj5TaGFoZWVtIEF6bWFsIE0gTUQgPG86cD48L286cD48L3A+PG + Rpdj48ZGl2IA0KIHN0eWxlPSJtYXJnaW4tYm90dG9tOi4yNWluXDtvdmVyZmxvdzpoaWRkZW4i + PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIA0KIHN0eWxlPSJmb250LWZhbWlseTomcXVvdF + w7U2Vnb2UgVUkmcXVvdFw7XCxzYW5zLXNlcmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19f + X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 + b3RcO1NlZ29lIFVJJnF1b3RcOw0KIFwsc2Fucy1zZXJpZlw7Y29sb3I6IzI0MjQyNFw7bXNvLW + xpZ2F0dXJlczpub25lIj48bzpwPjwvbzoNCiBwPjwvc3Bhbj48L3A+PC9kaXY+PGRpdiBzdHls + ZT0ibWFyZ2luLWJvdHRvbTouMjVpblw7b3ZlcmZsb3c6aGlkZGVuIj48cCANCiBjbGFzcz0iTX + NvTm9ybWFsIj48c3BhbiBjbGFzcz0ibWUtZW1haWwtdGV4dC1zZWNvbmRhcnkiPjxzcGFuIA0K + IHN0eWxlPSJmb250LXNpemU6MTAuNXB0XDtmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcX + VvdFw7XCxzYW5zLXNlcmlmXDsNCiBjb2xvcjojNjE2MTYxIj5KaXRzaSBMaW5rOiA8YSBocmVm + PSJodHRwczoNCiAvL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cm + w9aHR0cHMlM0ElMkYlMkZtb2RlcmF0ZWQuaml0cw0KIGkubmV0JTJGMzk4OTZhYWQ2MWJjNGEy + N2I5NDE4ZWU2Yjc4Njg5MzQ4YzY1NzkwZTg4OTA0NjA2OWRiZTljOGMzNDExMGM5YSZhDQogbX + BcOw0KIGRhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5zLmNvbSU3QzRmYmRj + YThhYjljYjRlNTAwNzAzMDhkYzdlZmUzDQogNTllJTdDMzhhZTNiY2Q5NTc5NGZkNGFkZGFiND + JlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUyNDg3NzQ4NTY5NjE3MSU3Q1Vua24NCiBvd24lN0NU + V0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNk + lrMWhhV3dpTENKWA0KIFZDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJmFtcFw7DQogc2RhdGE9aTBs + cEtodXIyVzhHVWVKNGtlNGI4RHk3NTV0Sk1zZDhWbnltWWl6TyUyQmNZJTNEJmFtcFw7cmVzZX + J2ZWQ9MCIgDQogb3JpZ2luYWxzcmM9Imh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC8z + OTg5NmFhZDYxYmM0YTI3Yjk0MThlZTZiNzg2ODkzNDhjNjU3OTBlODg5MDQ2MDY5ZGJlDQogOW + M4YzM0MTEwYzlhIiANCiBzaGFzaD0iYk5mQVhPVk5Db3NFRUp0ejlNbGxrcXF5R2hKY2U0Q3BI + NVRLeVFXY0FRV0dvdUozNTJvWkNZTWtld1ExNzdRU2tibw0KIExLNFkxRk8vSVdDWTVDQ3Iydm + ZKS3hvUVZFTk9KMy9mK0xTMXVWZ2J4eTdRSUNQM2hLVDhwSlRkZ1hIYURDOXlGSHVmWjR6ZXNW + DQogcDdSdWh2UmZTVEQ0WXUwR0YrN1lDajA1VUt6Y0NzPSI+aHR0cHM6DQogLy9tb2RlcmF0ZW + Quaml0c2kubmV0LzM5ODk2YWFkNjFiYzRhMjdiOTQxOGVlNmI3ODY4OTM0OGM2NTc5MGU4ODkw + NDYwNjlkYmUNCiA5YzhjMzQxMTBjOWE8L2E+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW + UtZW1haWwtdGV4dC1zZWNvbmRhcnkiPjxzcGFuIA0KIHN0eWxlPSJmb250LXNpemU6MTAuNXB0 + XDtjb2xvcjojNjE2MTYxIj48bzpwPjwvbzpwPjwvc3Bhbj48L3NwYW4+PC9wPjxwIA0KIGNsYX + NzPSJNc29Ob3JtYWwiPjxzcGFuIGNsYXNzPSJtZS1lbWFpbC10ZXh0LXNlY29uZGFyeSI+PHNw + YW4gDQogc3R5bGU9ImZvbnQtc2l6ZToxMC41cHRcO2ZvbnQtZmFtaWx5OiZxdW90XDtTZWdvZS + BVSSZxdW90XDtcLHNhbnMtc2VyaWZcOw0KIGNvbG9yOiM2MTYxNjEiPjxvOnA+Jm5ic3BcOzwv + bzpwPjwvc3Bhbj48L3NwYW4+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eW + xlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlmXDtj + b2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48c3Bh + biBzdHlsZT0iY29sb3I6IzI0MjQyNCI+PG86cD48L286DQogcD48L3NwYW4+PC9wPjwvZGl2Pj + wvZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3BcOzwvbzoNCiBwPjwvcD48L2Rp + dj48L2JvZHk+PC9odG1sPg0KQ0FURUdPUklFUzpGb3Nzb2xvZ3kNCkVORDpWRVZFTlQNCgA= +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2024_rest.ics b/ics/gsoc_2024_rest.ics new file mode 100644 index 0000000000..3d5869f555 --- /dev/null +++ b/ics/gsoc_2024_rest.ics @@ -0,0 +1,330 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello All\,\n\nLet’s meet here and discuss regarding the + updates REST API project.\n\nNOTE: Sharing the same link as SPDX + projects\, So that there is no confusion and also we can save some time + 😊\n\n\nBest Regards\nShaheem Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6\n_______________________________________________________ + _________________________\n\n +UID: + 040000008200E00074C5B7101A82E008000000009074EA90D3B6DA01000000000000000010 + 000000CD6D624BCB9E5A43ADC3EB07CA353E18 +RECURRENCE-ID:20240611T110000Z +SUMMARY:Updates on REST API PROJECT +DTSTART;TZID=Asia/Kolkata:20240611T163000 +DTEND;TZID=Asia/Kolkata:20240611T172000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240604T174738Z +TRANSP:OPAQUE +STATUS:CONFIRMED +SEQUENCE:1 +LOCATION:Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6 +X-MICROSOFT-CDO-APPT-SEQUENCE:1 +X-MICROSOFT-CDO-OWNERAPPTID:1585735656 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +X-MICROSOFT-LOCATIONS:[ { "DisplayName" : "Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6"\, "LocationAnnotation" : ""\, "LocationSource" : 0\, + "Unresolved" : true\, "LocationUri" : "" } ] +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=divijs75@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:divijs75@gmail.com +ATTENDEE;CN=valensniyonsenga2003@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + valensniyonsenga2003@gmail.com +ATTENDEE;CN=sohambanerjee4abc@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + sohambanerjee4abc@gmail.com +ATTENDEE;CN=dushsam100@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:dushsam100@gmail.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3Impb+xAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGdUCTvwAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZxYJ8s +X-ALT-DESC;FMTTYPE=text/html:\n

Hello All\,

 \;

Let’s meet + here and discuss regarding the updates REST API project.

 \;

NOTE: + Sharing the same link as SPDX projects\, So that there is no confusion + and also we can save some time 😊\;

 \;

 \; +

Best Regards

Shaheem Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBBbGxcLFxuXG5MZXTigJlzIG1lZXQgaGVyZSBhbmQgZGlzY3VzcyByZWdhcmRpbm + cgdGhlIA0KIHVwZGF0ZXMgUkVTVCBBUEkgcHJvamVjdC5cblxuTk9URTogU2hhcmluZyB0aGUg + c2FtZSBsaW5rIGFzIFNQRFggDQogcHJvamVjdHNcLCBTbyB0aGF0IHRoZXJlIGlzIG5vIGNvbm + Z1c2lvbiBhbmQgYWxzbyB3ZSBjYW4gc2F2ZSBzb21lIHRpbWUgDQog8J+YilxuXG5cbkJlc3Qg + UmVnYXJkc1xuU2hhaGVlbSBBem1hbCBNIA0KIE1EXG5fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogX19fX19f + X19fX1xuSml0c2kgTGluazogaHR0cHM6DQogLy9tb2RlcmF0ZWQuaml0c2kubmV0L2Q2MjNiYj + EyODRhNTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDANCiBkNTk2M2Y0 + ZTE4YjY8aHR0cHM6DQogLy9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS + 8/dXJsPWh0dHBzJTNBJTJGJTJGbW9kZXJhdGVkLmppdHMNCiBpLm5ldCUyRmQ2MjNiYjEyODRh + NTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDBkNTk2M2Y0ZTE4YjYmZA + 0KIGF0YT0wNSU3QzAyJTdDbWlzaHJhLmdhdXJhdiU0MHNpZW1lbnMuY29tJTdDNDRmOTI0MzRi + ODY5NDM0MjUyZTEwOGRjODRiZTRiDQogZTklN0MzOGFlM2JjZDk1Nzk0ZmQ0YWRkYWI0MmUxND + k1ZDU1YSU3QzElN0MwJTdDNjM4NTMxMjAwMDYzODc2OTcwJTdDVW5rbm8NCiB3biU3Q1RXRnBi + R1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaG + FXd2lMQ0pYVg0KIENJNk1uMCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9V3F1ZUNNZHRZcmx5YmtG + YkFZZWpCYSUyRmR6VCUyQkFUa1F0QWk4OGsybFJRDQogSjglM0QmcmVzZXJ2ZWQ9MD5cbl9fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBf + X19fX19fX19fX19fX19fX19fX19fX19fXG5cbg0KVUlEOg0KIDA0MDAwMDAwODIwMEUwMDA3NE + M1QjcxMDFBODJFMDA4MDAwMDAwMDA5MDc0RUE5MEQzQjZEQTAxMDAwMDAwMDAwMDAwMDAwMDEw + DQogMDAwMDAwQ0Q2RDYyNEJDQjlFNUE0M0FEQzNFQjA3Q0EzNTNFMTgNClJFQ1VSUkVOQ0UtSU + Q6MjAyNDA2MTFUMTEwMDAwWg0KU1VNTUFSWTpVcGRhdGVzIG9uIFJFU1QgQVBJIFBST0pFQ1QN + CkRUU1RBUlQ7VFpJRD1Bc2lhL0tvbGthdGE6MjAyNDA2MTFUMTYzMDAwDQpEVEVORDtUWklEPU + FzaWEvS29sa2F0YToyMDI0MDYxMVQxNzIwMDANCkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0K + RFRTVEFNUDoyMDI0MDYwNFQxNzQ3MzhaDQpUUkFOU1A6T1BBUVVFDQpTVEFUVVM6Q09ORklSTU + VEDQpTRVFVRU5DRToxDQpMT0NBVElPTjpKaXRzaSBMaW5rOiBodHRwczoNCiAvL21vZGVyYXRl + ZC5qaXRzaS5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2NlOWVkNmI4OTQzMTJlZG + E0ZWQ5YjQwMA0KIGQ1OTYzZjRlMThiNg0KWC1NSUNST1NPRlQtQ0RPLUFQUFQtU0VRVUVOQ0U6 + MQ0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjE1ODU3MzU2NTYNClgtTUlDUk9TT0ZULU + NETy1CVVNZU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1JTlRFTkRFRFNUQVRVUzpCVVNZ + DQpYLU1JQ1JPU09GVC1DRE8tQUxMREFZRVZFTlQ6RkFMU0UNClgtTUlDUk9TT0ZULUNETy1JTV + BPUlRBTkNFOjENClgtTUlDUk9TT0ZULUNETy1JTlNUVFlQRTozDQpYLUxJQy1FUlJPUjtYLUxJ + Qy1FUlJPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHkuIA + 0KIFJlbW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVFlQ + RT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQogUmVtb3Zpbm + cgZW50aXJlIHByb3BlcnR5Og0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBB + UlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmluZyBlbnRpcmUgcH + JvcGVydHk6DQpYLU1JQ1JPU09GVC1ET05PVEZPUldBUkRNRUVUSU5HOkZBTFNFDQpYLU1JQ1JP + U09GVC1ESVNBTExPVy1DT1VOVEVSOkZBTFNFDQpYLU1JQ1JPU09GVC1SRVFVRVNURURBVFRFTk + RBTkNFTU9ERTpERUZBVUxUDQpYLU1JQ1JPU09GVC1JU1JFU1BPTlNFUkVRVUVTVEVEOlRSVUUN + ClgtTUlDUk9TT0ZULUxPQ0FUSU9OUzpbIHsgIkRpc3BsYXlOYW1lIiA6ICJKaXRzaSBMaW5rOi + BodHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMx + ZDJlY2NlOWVkNmI4OTQzMTJlZGE0ZWQ5YjQwMA0KIGQ1OTYzZjRlMThiNiJcLCAiTG9jYXRpb2 + 5Bbm5vdGF0aW9uIiA6ICIiXCwgIkxvY2F0aW9uU291cmNlIiA6IDBcLCANCiAiVW5yZXNvbHZl + ZCIgOiB0cnVlXCwgIkxvY2F0aW9uVXJpIiA6ICIiIH0gXQ0KQVRURU5ERUU7Q049IkF6bWFsIE + 0gTUQsIFNoYWhlZW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9 + UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg + 0KIHNoYWhlZW0uYXptYWxAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPWRpdmlqczc1QGdtYWls + LmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVU + U7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOmRpdmlqczc1QGdtYWlsLmNvbQ0KQVRURU5ERUU7 + Q049dmFsZW5zbml5b25zZW5nYTIwMDNAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMOw0KIF + JPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86 + DQogdmFsZW5zbml5b25zZW5nYTIwMDNAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1zb2hhbWJhbm + VyamVlNGFiY0BnbWFpbC5jb207Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElD + SVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogc29oYW1iYW + 5lcmplZTRhYmNAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1kdXNoc2FtMTAwQGdtYWlsLmNvbTtD + VVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVUU7UEFSVF + NUQVQ9QUNDRVBURUQ6bWFpbHRvOmR1c2hzYW0xMDBAZ21haWwuY29tDQpBVFRFTkRFRTtDTj0i + TWlzaHJhLCBHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTE + U9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86DQog + bWlzaHJhLmdhdXJhdkBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049IkV0dGluZ2VyLCBLYXRoYX + JpbmEgKFQgU1NQIERPUy1ERSkiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9T1BULVBBUlRJ + Q0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIGthdGhhcm + luYS5ldHRpbmdlckBzaWVtZW5zLmNvbQ0KWC1FVk9MVVRJT04tSVRFTUlEOg0KIEFBTWtBR1E0 + T1RZeVpEYzVMV1poWlRrdE5EWTBaUzFoWTJVeUxUZzFPRFZqWkdGbU5UVTVaQUZSQUFnSTNJbX + BiK3hBQUVZQUFBDQogQUFUdjNMbzF3K0hrbUR0M1U1UlFOVmJ3Y0FicVVQKzh6VjBVYURucDk1 + dHNKbzlBQUFBQUFCRFFBQWJxVVArOHpWMFVhRG5wOTUNCiB0c0pvOUFBR2RVQ1R2d0FBRUE9PQ + 0KWC1FVk9MVVRJT04tQ0hBTkdFS0VZOkR3QUFBQllBQUFCdXBRLzd6TlhSUm9PZW4zbTJ3bWow + QUFaeFlKOHMNClgtQUxULURFU0M7Rk1UVFlQRT10ZXh0L2h0bWw6PGh0bWwgeG1sbnM6dj0idX + JuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbToNCiB2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1p + Y3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOg0KIHNjaGVtYXMtbWljcm + 9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDoNCiAvL3NjaGVtYXMubWljcm9z + b2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDoNCiAvL3d3dy53My5vcm + cvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+XG48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi + IA0KIGNvbnRlbnQ9InRleHQvaHRtbFw7IGNoYXJzZXQ9dXRmLTgiPjxtZXRhIG5hbWU9Ikdlbm + VyYXRvciIgDQogY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSki + PjxzdHlsZT48IS0tXG4vKiBGb250IA0KIERlZmluaXRpb25zICovXG5AZm9udC1mYWNlXG4Je2 + ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiXDtcbglwYW5vc2UtMToyIDQgDQogNSAzIDUgNCA2 + IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5OkNhbGlicmlcO1xuCXBhbm9zZS + 0xOjIgMTUgNSANCiAyIDIgMiA0IDMgMiA0XDt9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5 + OkFwdG9zXDsNCiB9XG5AZm9udC1mYWNlXG4Je2ZvbnQtZmFtaWx5OiJTZWdvZSBVSSBFbW9qaS + JcO1xuCXBhbm9zZS0xOjIgMTEgNSAyIDQgMiA0IA0KIDIgMiAzXDt9XG5AZm9udC1mYWNlXG4J + e2ZvbnQtZmFtaWx5OiJTZWdvZSBVSSJcO1xuCXBhbm9zZS0xOjIgMTEgNSAyIDQgMiANCiA0ID + IgMiAzXDt9XG4vKiBTdHlsZSBEZWZpbml0aW9ucyAqL1xucC5Nc29Ob3JtYWxcLCBsaS5Nc29O + b3JtYWxcLCANCiBkaXYuTXNvTm9ybWFsXG4Je21hcmdpbjowaW5cO1xuCWZvbnQtc2l6ZToxMS + 4wcHRcO1xuCWZvbnQtZmFtaWx5Og0KICJDYWxpYnJpIlwsc2Fucy1zZXJpZlw7XG4JbXNvLWxp + Z2F0dXJlczpzdGFuZGFyZGNvbnRleHR1YWxcO31cbmE6bGlua1wsIA0KIHNwYW4uTXNvSHlwZX + JsaW5rXG4Je21zby1zdHlsZS1wcmlvcml0eTo5OVw7XG4JY29sb3I6IzQ2Nzg4Nlw7DQogXG4J + dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZVw7fVxuc3Bhbi5tZS1lbWFpbC10ZXh0XG4Je21zby + 1zdHlsZS1uYW1lOg0KIG1lLWVtYWlsLXRleHRcO31cbnNwYW4uRW1haWxTdHlsZTE5XG4Je21z + by1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBvc2VcOw0KIH1cbi5Nc29DaHBEZWZhdWx0XG4Je2 + 1zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5XDtcbglmb250LXNpemU6MTAuMHB0XDsNCiBcbglt + c28tbGlnYXR1cmVzOm5vbmVcO31cbkBwYWdlIFdvcmRTZWN0aW9uMVxuCXtzaXplOjguNWluID + ExLjBpblw7DQogXG4JbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluXDt9XG5kaXYuV29y + ZFNlY3Rpb24xXG4Je3BhZ2U6DQogV29yZFNlY3Rpb24xXDt9XG4tLT48L3N0eWxlPjwhLS1baW + YgZ3RlIG1zbyA5XT48eG1sPlxuPG86c2hhcGVkZWZhdWx0cyB2Og0KIGV4dD0iZWRpdCIgc3Bp + ZG1heD0iMTAyNiIgLz5cbjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyANCiA5XT + 48eG1sPlxuPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPlxuPG86aWRtYXAgdjpleHQ9ImVk + aXQiIGRhdGE9IjEiIA0KIC8+XG48L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+PC + 9oZWFkPjxib2R5IGxhbmc9IkVOLVVTIiANCiBsaW5rPSIjNDY3ODg2IiB2bGluaz0iIzk2NjA3 + RCIgc3R5bGU9IndvcmQtd3JhcDpicmVhay13b3JkIj48ZGl2IA0KIGNsYXNzPSJXb3JkU2VjdG + lvbjEiPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhlbGxvIEFsbFwsPG86cD48L286cD48L3A+PHAg + DQogY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPjxwIGNsYXNzPSJNc2 + 9Ob3JtYWwiPkxldOKAmXMgbWVldCANCiBoZXJlIGFuZCBkaXNjdXNzIHJlZ2FyZGluZyB0aGUg + dXBkYXRlcyBSRVNUIEFQSSBwcm9qZWN0LjxvOnA+PC9vOnA+PC9wPjxwIA0KIGNsYXNzPSJNc2 + 9Ob3JtYWwiPjxvOnA+Jm5ic3BcOzwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5OT1RF + OiANCiBTaGFyaW5nIHRoZSBzYW1lIGxpbmsgYXMgU1BEWCBwcm9qZWN0c1wsIFNvIHRoYXQgdG + hlcmUgaXMgbm8gY29uZnVzaW9uIA0KIGFuZCBhbHNvIHdlIGNhbiBzYXZlIHNvbWUgdGltZSA8 + c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJIA0KIEVtb2ppJnF1b3RcO1 + wsc2Fucy1zZXJpZiI+JiMxMjg1MjJcOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCANCiBjbGFz + cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwXDs8L286cD48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbC + I+PG86cD4mbmJzcFw7DQogPC9vOnA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkJlc3QgUmVn + YXJkczxvOnA+PC9vOnA+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPlNoYWhlZW0gQXptYW + wgTSBNRDxvOnA+PC9vOnA+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl + PSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlmXDtjb2 + xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48c3Bhbi + BzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcOw0KIFwsc2Fucy1zZXJp + Zlw7Y29sb3I6IzI0MjQyNFw7bXNvLWxpZ2F0dXJlczpub25lIj48bzpwPjwvbzpwPjwvc3Bhbj + 48L3A+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gY2xhc3M9Im1lLWVtYWlsLXRleHQi + PjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6DQogMTguMHB0XDtmb250LWZhbWlseTomcXVvdF + w7U2Vnb2UgVUkmcXVvdFw7XCxzYW5zLXNlcmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5KaXRzaSBM + aW5rOiA8YSBocmVmPSJodHRwczoNCiAvL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dG + xvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZtb2RlcmF0ZWQuaml0cw0KIGkubmV0JTJGZDYy + M2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2NlOWVkNmI4OTQzMTJlZGE0ZWQ5YjQwMGQ1OTYzZj + RlMThiNiZhDQogbXBcOw0KIGRhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5z + LmNvbSU3QzQ0ZjkyNDM0Yjg2OTQzNDI1MmUxMDhkYzg0YmU0DQogYmU5JTdDMzhhZTNiY2Q5NT + c5NGZkNGFkZGFiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUzMTIwMDA2Mzg3Njk3MCU3Q1Vu + a24NCiBvd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU + 16SWlMQ0pCVGlJNklrMWhhV3dpTENKWA0KIFZDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJmFtcFw7 + DQogc2RhdGE9V3F1ZUNNZHRZcmx5YmtGYkFZZWpCYSUyRmR6VCUyQkFUa1F0QWk4OGsybFJRSj + glM0QmYW1wXDtyZXNlcnZlZD0wIiANCiBvcmlnaW5hbHNyYz0iaHR0cHM6DQogLy9tb2RlcmF0 + ZWQuaml0c2kubmV0L2Q2MjNiYjEyODRhNTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZW + RhNGVkOWI0MDANCiBkNTk2M2Y0ZTE4YjYiIA0KIHNoYXNoPSJvK0k0cG9oaTBxU3NORlpOR3pw + VVVPT3VDL0tMT1JPUzZ5b2ZBTUtuZ21rV3puRmU0aHNJYlludEl2T2x6LzFEbzBrDQogRklVVW + lLbDlWbUFZK1VpZk1yWGJCbDhJbEZyYi9VcS94MmZNOHdOK21vT2xzajd2N0NXTTZDbVFYL3Az + b2p2aWcxcXY0djR0ZE4NCiBUaFpnMXJoVVYzNTVDUlhpcjhMbzEzUXlnV1BtbjQ9Ij5odHRwcz + oNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2Nl + OWVkNmI4OTQzMTJlZGE0ZWQ5YjQwMA0KIGQ1OTYzZjRlMThiNjwvYT48L3NwYW4+PC9iPjwvc3 + Bhbj48c3BhbiBjbGFzcz0ibWUtZW1haWwtdGV4dCI+PGI+PHNwYW4gDQogc3R5bGU9ImZvbnQt + c2l6ZToxOC4wcHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvYj48L3NwYW4+PC9wPjxwIA0KIGNsYX + NzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkm + cXVvdFw7DQogXCxzYW5zLXNlcmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9f + X19fX19fX19fX19fXzwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj + 48c3BhbiANCiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO0FwdG9zJnF1b3RcO1wsc2Fucy1z + ZXJpZiI+PG86cD4mbmJzcFw7PC9vOg0KIHA+PC9zcGFuPjwvcD48L2Rpdj48L2JvZHk+PC9odG + 1sPg0KQ0FURUdPUklFUzpGb3Nzb2xvZ3kNCkJFR0lOOlZBTEFSTQ0KWC1FVk9MVVRJT04tQUxB + Uk0tVUlEOjJmZTg5MWJmNzM1YzRkNmQ1MjBiY2Y5OTVkNmM5NjQyMjE5N2YyNjANCkFDVElPTj + pESVNQTEFZDQpERVNDUklQVElPTjpVcGRhdGVzIG9uIFJFU1QgQVBJIFBST0pFQ1QNClRSSUdH + RVI7UkVMQVRFRD1TVEFSVDotUFQxNU0NCkVORDpWQUxBUk0NCkVORDpWRVZFTlQNCgA= +BEGIN:VALARM +X-EVOLUTION-ALARM-UID:2fe891bf735c4d6d520bcf995d6c96422197f260 +ACTION:DISPLAY +DESCRIPTION:Updates on REST API PROJECT +TRIGGER;RELATED=START:-PT15M +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2024_scheduler.ics b/ics/gsoc_2024_scheduler.ics new file mode 100644 index 0000000000..9e5bec442a --- /dev/null +++ b/ics/gsoc_2024_scheduler.ics @@ -0,0 +1,298 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Dear All\,\n\nLet’s meet here and discuss the updates + regarding Scheduler Design Project.\n\n\nBest Regards\nShaheem Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/5444f675f5ce47c788fa4238a6a958c53d3e62804e9243d5b807 + fbaa81f3120f\n_______________________________________________________ + _________________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000B0F8D00AC9ADDA01000000000000000010 + 0000006BCFB3D7BC8D0C4FAA37F7326AED6C23 +RECURRENCE-ID:20240531T103000Z +SUMMARY:Updates on Scheduler Design Project +DTSTART;TZID=Asia/Kolkata:20240531T160000 +DTEND;TZID=Asia/Kolkata:20240531T163000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240524T053419Z +TRANSP:OPAQUE +STATUS:CONFIRMED +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION + property. Removing entire property: +X-MICROSOFT-CDO-OWNERAPPTID:1192777704 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN=singh.aaditya889@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + singh.aaditya889@gmail.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=DECLINED:mailto: + katharina.ettinger@siemens.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3IEEnWEAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGcUm8FgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZtbdgT +X-ALT-DESC;FMTTYPE=text/html:\n

Dear All\,

 \;

Let’s meet + here and discuss the updates regarding Scheduler Design Project.

 \;

 \;

Best Regards

Shaheem Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/5444f675f5ce47c788fa4238a6a958c53d3e62804e9243d5b807 + fbaa81f3120f

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpEZWFyIEFsbFwsXG5cbkxldOKAmXMgbWVldCBoZXJlIGFuZCBkaXNjdXNzIHRoZSB1cGRhdG + VzIA0KIHJlZ2FyZGluZyBTY2hlZHVsZXIgRGVzaWduIFByb2plY3QuXG5cblxuQmVzdCBSZWdh + cmRzXG5TaGFoZWVtIEF6bWFsIE0gDQogTURcbl9fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBfX19fX19fX19f + XG5KaXRzaSBMaW5rOiBodHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvNTQ0NGY2NzVmNW + NlNDdjNzg4ZmE0MjM4YTZhOTU4YzUzZDNlNjI4MDRlOTI0M2Q1YjgwNw0KIGZiYWE4MWYzMTIw + ZjxodHRwczoNCiAvL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cm + w9aHR0cHMlM0ElMkYlMkZtb2RlcmF0ZWQuaml0cw0KIGkubmV0JTJGNTQ0NGY2NzVmNWNlNDdj + Nzg4ZmE0MjM4YTZhOTU4YzUzZDNlNjI4MDRlOTI0M2Q1YjgwN2ZiYWE4MWYzMTIwZiZkDQogYX + RhPTA1JTdDMDIlN0NtaXNocmEuZ2F1cmF2JTQwc2llbWVucy5jb20lN0MwZmRlN2E0ZmIwYzA0 + ZmJhYjUzNjA4ZGM3YmIzMmENCiBjYyU3QzM4YWUzYmNkOTU3OTRmZDRhZGRhYjQyZTE0OTVkNT + VhJTdDMSU3QzAlN0M2Mzg1MjEyNTY2NTQwMDUyMzklN0NVbmtubw0KIHduJTdDVFdGcGJHWnNi + M2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aU + xDSlhWDQogQ0k2TW4wJTNEJTdDMCU3QyU3QyU3QyZzZGF0YT0lMkZJa2hVOGxkV0xTbkI0SDhy + TWhNMThaalY5aWtOV2N5Q1k3TXolMkJtdk4NCiBGVSUzRCZyZXNlcnZlZD0wPlxuX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19f + X19fX19fX19fX19fX19fX19fX19cblxuDQpVSUQ6DQogMDQwMDAwMDA4MjAwRTAwMDc0QzVCNz + EwMUE4MkUwMDgwMDAwMDAwMEIwRjhEMDBBQzlBRERBMDEwMDAwMDAwMDAwMDAwMDAwMTANCiAw + MDAwMDA2QkNGQjNEN0JDOEQwQzRGQUEzN0Y3MzI2QUVENkMyMw0KUkVDVVJSRU5DRS1JRDoyMD + I0MDUzMVQxMDMwMDBaDQpTVU1NQVJZOlVwZGF0ZXMgb24gU2NoZWR1bGVyIERlc2lnbiBQcm9q + ZWN0DQpEVFNUQVJUO1RaSUQ9QXNpYS9Lb2xrYXRhOjIwMjQwNTMxVDE2MDAwMA0KRFRFTkQ7VF + pJRD1Bc2lhL0tvbGthdGE6MjAyNDA1MzFUMTYzMDAwDQpDTEFTUzpQVUJMSUMNClBSSU9SSVRZ + OjUNCkRUU1RBTVA6MjAyNDA1MjRUMDUzNDE5Wg0KVFJBTlNQOk9QQVFVRQ0KU1RBVFVTOkNPTk + ZJUk1FRA0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5v + IHZhbHVlIGZvciBMT0NBVElPTiANCiBwcm9wZXJ0eS4gUmVtb3ZpbmcgZW50aXJlIHByb3Blcn + R5Og0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjExOTI3Nzc3MDQNClgtTUlDUk9TT0ZU + LUNETy1CVVNZU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1JTlRFTkRFRFNUQVRVUzpCVV + NZDQpYLU1JQ1JPU09GVC1DRE8tQUxMREFZRVZFTlQ6RkFMU0UNClgtTUlDUk9TT0ZULUNETy1J + TVBPUlRBTkNFOjENClgtTUlDUk9TT0ZULUNETy1JTlNUVFlQRTozDQpYLUxJQy1FUlJPUjtYLU + xJQy1FUlJPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJvcGVydHku + IA0KIFJlbW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVF + lQRT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQogUmVtb3Zp + bmcgZW50aXJlIHByb3BlcnR5Og0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLV + BBUlNFLUVSUk9SOk5vIHZhbHVlIGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmluZyBlbnRpcmUg + cHJvcGVydHk6DQpYLU1JQ1JPU09GVC1ET05PVEZPUldBUkRNRUVUSU5HOkZBTFNFDQpYLU1JQ1 + JPU09GVC1ESVNBTExPVy1DT1VOVEVSOkZBTFNFDQpYLU1JQ1JPU09GVC1SRVFVRVNURURBVFRF + TkRBTkNFTU9ERTpERUZBVUxUDQpYLU1JQ1JPU09GVC1JU1JFU1BPTlNFUkVRVUVTVEVEOlRSVU + UNCkFUVEVOREVFO0NOPSJBem1hbCBNIE1ELCBTaGFoZWVtIChUIFNTUCBBU0ktSU4pIjtDVVRZ + UEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUEFOVDtSU1ZQPVRSVUU7UEFSVFNUQV + Q9TkVFRFMtQUNUSU9OOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpBVFRF + TkRFRTtDTj0iTWlzaHJhLCBHYXVyYXYgKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVU + FMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDpt + YWlsdG86DQogbWlzaHJhLmdhdXJhdkBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049YXZpbmFsLn + hsdmlpQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsN + CiBSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzphdmluYWwueGx2aWlAZ2 + 1haWwuY29tDQpBVFRFTkRFRTtDTj0iU2luZ2gsIEthdXNobGVuZHJhIFByYXRhcCAoVCBTU1Ag + QVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD + 1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1haWx0bzoNCiBrYXVzaGxlbmRyYS1wcmF0YXAuc2lu + Z2hAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPXNpbmdoLmFhZGl0eWE4ODlAZ21haWwuY29tO0 + NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJU + U1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHNpbmdoLmFhZGl0eWE4ODlAZ21haWwuY29tDQ + pBVFRFTkRFRTtDTj0iRXR0aW5nZXIsIEthdGhhcmluYSAoVCBTU1AgRE9TLURFKSI7Q1VUWVBF + PUlORElWSURVQUw7DQogUk9MRT1PUFQtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU + RFQ0xJTkVEOm1haWx0bzoNCiBrYXRoYXJpbmEuZXR0aW5nZXJAc2llbWVucy5jb20NClgtRVZP + TFVUSU9OLUlURU1JRDoNCiBBQU1rQUdRNE9UWXlaRGM1TFdaaFpUa3RORFkwWlMxaFkyVXlMVG + cxT0RWalpHRm1OVFU1WkFGUkFBZ0kzSUVFbldFQUFFWUFBQQ0KIEFBVHYzTG8xdytIa21EdDNV + NVJRTlZid2NBYnFVUCs4elYwVWFEbnA5NXRzSm85QUFBQUFBQkRRQUFicVVQKzh6VjBVYURucD + k1DQogdHNKbzlBQUdjVW04RmdBQUVBPT0NClgtRVZPTFVUSU9OLUNIQU5HRUtFWTpEd0FBQUJZ + QUFBQnVwUS83ek5YUlJvT2VuM20yd21qMEFBWnRiZGdUDQpYLUFMVC1ERVNDO0ZNVFRZUEU9dG + V4dC9odG1sOjxodG1sIHhtbG5zOnY9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206DQogdm1s + IiB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiIHhtbG + 5zOnc9InVybjoNCiBzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOndvcmQiIHhtbG5zOm09 + Imh0dHA6DQogLy9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG + 1sbnM9Imh0dHA6DQogLy93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPjxoZWFkPlxuPG1ldGEg + aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiANCiBjb250ZW50PSJ0ZXh0L2h0bWxcOyBjaGFyc2 + V0PXV0Zi04Ij48bWV0YSBuYW1lPSJHZW5lcmF0b3IiIA0KIGNvbnRlbnQ9Ik1pY3Jvc29mdCBX + b3JkIDE1IChmaWx0ZXJlZCBtZWRpdW0pIj48c3R5bGU+PCEtLVxuLyogRm9udCANCiBEZWZpbm + l0aW9ucyAqL1xuQGZvbnQtZmFjZVxuCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIlw7XG4J + cGFub3NlLTE6MiA0IA0KIDUgMyA1IDQgNiAzIDIgNFw7fVxuQGZvbnQtZmFjZVxuCXtmb250LW + ZhbWlseTpDYWxpYnJpXDtcbglwYW5vc2UtMToyIDE1IDUgDQogMiAyIDIgNCAzIDIgNFw7fVxu + QGZvbnQtZmFjZVxuCXtmb250LWZhbWlseToiU2Vnb2UgVUkiXDtcbglwYW5vc2UtMToyIDExIA + 0KIDUgMiA0IDIgNCAyIDIgM1w7fVxuLyogU3R5bGUgRGVmaW5pdGlvbnMgKi9cbnAuTXNvTm9y + bWFsXCwgbGkuTXNvTm9ybWFsXCwgDQogZGl2Lk1zb05vcm1hbFxuCXttYXJnaW46MGluXDtcbg + lmb250LXNpemU6MTEuMHB0XDtcbglmb250LWZhbWlseToNCiAiQ2FsaWJyaSJcLHNhbnMtc2Vy + aWZcO1xuCW1zby1saWdhdHVyZXM6c3RhbmRhcmRjb250ZXh0dWFsXDt9XG5hOmxpbmtcLCANCi + BzcGFuLk1zb0h5cGVybGlua1xuCXttc28tc3R5bGUtcHJpb3JpdHk6OTlcO1xuCWNvbG9yOiMw + NTYzQzFcOw0KIFxuCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmVcO31cbnNwYW4ubWUtZW1haW + wtdGV4dFxuCXttc28tc3R5bGUtbmFtZToNCiBtZS1lbWFpbC10ZXh0XDt9XG5zcGFuLkVtYWls + U3R5bGUxOVxuCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlXDsNCiB9XG4uTXNvQ2 + hwRGVmYXVsdFxuCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seVw7XG4JZm9udC1zaXplOjEw + LjBwdFw7DQogXG4JbXNvLWxpZ2F0dXJlczpub25lXDt9XG5AcGFnZSBXb3JkU2VjdGlvbjFcbg + l7c2l6ZTo4LjVpbiAxMS4waW5cOw0KIFxuCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBp + blw7fVxuZGl2LldvcmRTZWN0aW9uMVxuCXtwYWdlOg0KIFdvcmRTZWN0aW9uMVw7fVxuLS0+PC + 9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD5cbjxvOnNoYXBlZGVmYXVsdHMgdjoNCiBl + eHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+XG48L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIG + d0ZSBtc28gDQogOV0+PHhtbD5cbjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij5cbjxvOmlk + bWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiANCiAvPlxuPC9vOnNoYXBlbGF5b3V0PjwveG1sPj + whW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPSJFTi1VUyIgDQogbGluaz0iIzA1NjNDMSIg + dmxpbms9IiM5NTRGNzIiIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCI+PGRpdiANCiBjbG + Fzcz0iV29yZFNlY3Rpb24xIj48cCBjbGFzcz0iTXNvTm9ybWFsIj5EZWFyIEFsbFwsPG86cD48 + L286cD48L3A+PHAgDQogY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPj + xwIGNsYXNzPSJNc29Ob3JtYWwiPkxldOKAmXMgbWVldCANCiBoZXJlIGFuZCBkaXNjdXNzIHRo + ZSB1cGRhdGVzIHJlZ2FyZGluZyBTY2hlZHVsZXIgRGVzaWduIFByb2plY3QuPG86cD48L286DQ + ogcD48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPjxwIGNs + YXNzPSJNc29Ob3JtYWwiPjxvOg0KIHA+Jm5ic3BcOzwvbzpwPjwvcD48cCBjbGFzcz0iTXNvTm + 9ybWFsIj5CZXN0IFJlZ2FyZHM8bzpwPjwvbzpwPjwvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFs + Ij5TaGFoZWVtIEF6bWFsIE0gTUQ8bzpwPjwvbzpwPjwvcD48ZGl2PjxkaXYgDQogc3R5bGU9Im + 1hcmdpbi1ib3R0b206LjI1aW5cO292ZXJmbG93OmhpZGRlbiI+PHAgY2xhc3M9Ik1zb05vcm1h + bCI+PHNwYW4gDQogc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90XDtTZWdvZSBVSSZxdW90XDtcLH + NhbnMtc2VyaWZcO2NvbG9yOg0KICMyNDI0MjQiPl9fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogX19fX19fX19fX19fX1 + 9fPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7 + DQogXCxzYW5zLXNlcmlmXDtjb2xvcjojMjQyNDI0XDttc28tbGlnYXR1cmVzOm5vbmUiPjxvOn + A+PC9vOg0KIHA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOi4y + NWluXDtvdmVyZmxvdzpoaWRkZW4iPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGNsYX + NzPSJtZS1lbWFpbC10ZXh0Ij48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOg0KIDE4LjBwdFw7 + Zm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcO1wsc2Fucy1zZXJpZiI+Sml0c2kgTG + luazogPHNwYW4gDQogc3R5bGU9ImNvbG9yOiMyNDI0MjQiPjxhIGhyZWY9Imh0dHBzOg0KIC8v + ZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRi + UyRm1vZGVyYXRlZC5qaXRzDQogaS5uZXQlMkY1NDQ0ZjY3NWY1Y2U0N2M3ODhmYTQyMzhhNmE5 + NThjNTNkM2U2MjgwNGU5MjQzZDViODA3ZmJhYTgxZjMxMjBmJmENCiBtcFw7DQogZGF0YT0wNS + U3QzAyJTdDbWlzaHJhLmdhdXJhdiU0MHNpZW1lbnMuY29tJTdDMGZkZTdhNGZiMGMwNGZiYWI1 + MzYwOGRjN2JiMzINCiBhY2MlN0MzOGFlM2JjZDk1Nzk0ZmQ0YWRkYWI0MmUxNDk1ZDU1YSU3Qz + ElN0MwJTdDNjM4NTIxMjU2NjU0MDA1MjM5JTdDVW5rbg0KIG93biU3Q1RXRnBiR1pzYjNkOGV5 + SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYDQ + ogVkNJNk1uMCUzRCU3QzAlN0MlN0MlN0MmYW1wXDsNCiBzZGF0YT0lMkZJa2hVOGxkV0xTbkI0 + SDhyTWhNMThaalY5aWtOV2N5Q1k3TXolMkJtdk5GVSUzRCZhbXBcO3Jlc2VydmVkPTAiIA0KIG + 9yaWdpbmFsc3JjPSJodHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS5uZXQvNTQ0NGY2NzVmNWNl + NDdjNzg4ZmE0MjM4YTZhOTU4YzUzZDNlNjI4MDRlOTI0M2Q1YjgwNw0KIGZiYWE4MWYzMTIwZi + IgDQogc2hhc2g9InBleEdjTG93NFd5WkNReGs1c0huTlZjVUJUYTdmWDFqOTc1Z2t4OUh2d1o1 + dmR3ZzhXRGhwcng3SEg1eEwxeFJxd3ANCiBSSzhqak5lcU1jOUdFc2VNNkQyWnVaNXhIVDdvaW + RSdmtHek85elp0bTIrOEg3ZkN6OGdiWDBQUW5KaGxBbXErRFJSbFhpd3NtNQ0KIFgrbG5icTJz + UHNoQ1ZWSFJ1U3dPdHQxMlpjMStmcz0iPmh0dHBzOg0KIC8vbW9kZXJhdGVkLmppdHNpLm5ldC + 81NDQ0ZjY3NWY1Y2U0N2M3ODhmYTQyMzhhNmE5NThjNTNkM2U2MjgwNGU5MjQzZDViODA3DQog + ZmJhYTgxZjMxMjBmPC9hPjwvc3Bhbj48L3NwYW4+PC9iPjwvc3Bhbj48c3BhbiANCiBjbGFzcz + 0ibWUtZW1haWwtdGV4dCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxOC4wcHQiPjxvOnA+ + PC9vOg0KIHA+PC9zcGFuPjwvYj48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcG + FuIHN0eWxlPSJmb250LWZhbWlseToNCiAmcXVvdFw7U2Vnb2UgVUkmcXVvdFw7XCxzYW5zLXNl + cmlmXDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bh + bj48bzpwPjwvbzpwPjwvcD48L2Rpdj48L2Rpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48bzoNCi + BwPiZuYnNwXDs8L286cD48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4NCkNBVEVHT1JJRVM6Rm9z + c29sb2d5DQpCRUdJTjpWQUxBUk0NClgtRVZPTFVUSU9OLUFMQVJNLVVJRDo3M2VmN2I3OGIwOW + ZlMzg0ZGI5MmQ2NzI2ODI2MTMxOGYwYjg2NjgxDQpBQ1RJT046RElTUExBWQ0KREVTQ1JJUFRJ + T046VXBkYXRlcyBvbiBTY2hlZHVsZXIgRGVzaWduIFByb2plY3QNClRSSUdHRVI7UkVMQVRFRD + 1TVEFSVDotUFQxNU0NCkVORDpWQUxBUk0NCkVORDpWRVZFTlQNCgA= +BEGIN:VALARM +X-EVOLUTION-ALARM-UID:73ef7b78b09fe384db92d67268261318f0b86681 +ACTION:DISPLAY +DESCRIPTION:Updates on Scheduler Design Project +TRIGGER;RELATED=START:-PT15M +END:VALARM +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2024_spdx.ics b/ics/gsoc_2024_spdx.ics new file mode 100644 index 0000000000..9cc8e3eb89 --- /dev/null +++ b/ics/gsoc_2024_spdx.ics @@ -0,0 +1,334 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello All\,\n\nLet’s meet here and discuss regarding the + updates of SPDX 3.0 and SPDX License Expressions projects.\n\n\nBest + Regards\nShaheem Azmal M + MD\n______________________________________________________________________ + __________\nJitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6\n___________________________________________________________ + _____________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000A0473660CAADDA01000000000000000010 + 000000455697047DEB694DB83D09BA90CC5EF6 +RECURRENCE-ID:20240528T103000Z +SUMMARY:Updates on SPDX 3.0 and SPDX License Expression projects +DTSTART;TZID=Asia/Kolkata:20240528T160000 +DTEND;TZID=Asia/Kolkata:20240528T165000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240524T080901Z +TRANSP:OPAQUE +STATUS:CONFIRMED +SEQUENCE:1 +LOCATION:Microsoft Teams Meeting +X-MICROSOFT-CDO-APPT-SEQUENCE:1 +X-MICROSOFT-CDO-OWNERAPPTID:1245206504 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-MICROSOFT-ONLINEMEETINGINFORMATION:{"OnlineMeetingChannelId": + null\,"OnlineMeetingProvider":3} +X-MICROSOFT-SKYPETEAMSMEETINGURL:https: + //teams.microsoft.com/l/meetup-join/19%3ameeting_NWRhNmJiN2MtMDc1OC00ZThmL + TlhZTctMTUyNTU3NWFiOWE5%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9 + 579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%227f1979f2-e3e3-40d0-8a77-bce + f842abf7e%22%7d +X-MICROSOFT-SCHEDULINGSERVICEUPDATEURL:https: + //api.scheduler.teams.microsoft.com/teams/38ae3bcd-9579-4fd4-adda-b42e1495 + d55a/7f1979f2-e3e3-40d0-8a77-bcef842abf7e/19_meeting_NWRhNmJiN2MtMDc1OC00Z + ThmLTlhZTctMTUyNTU3NWFiOWE5@thread.v2/0 +X-MICROSOFT-SKYPETEAMSPROPERTIES:{"cid":"19: + meeting_NWRhNmJiN2MtMDc1OC00ZThmLTlhZTctMTUyNTU3NWFiOWE5@thread.v2"\,"priv + ate":true\,"type":0\,"mid":0\,"rid":0\,"uid":null} +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +X-MICROSOFT-LOCATIONDISPLAYNAME:Microsoft Teams Meeting +X-MICROSOFT-LOCATIONSOURCE:None +X-MICROSOFT-LOCATIONS:[{"DisplayName":"Microsoft Teams + Meeting"\,"LocationAnnotation":""\,"LocationUri":""\,"LocationStreet": + ""\,"LocationCity":""\,"LocationState":""\,"LocationCountry": + ""\,"LocationPostalCode":""\,"LocationFullAddress":""}] +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN=Sahil;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=ACCEPTED:mailto:sjha200000@gmail.com +ATTENDEE;CN="Oberoi, Dearsh (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + dearsh.oberoi@siemens.com +ATTENDEE;CN=akumar17871@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:akumar17871@gmail.com +ATTENDEE;CN=akashsah2003@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:akashsah2003@gmail.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=OPT-PARTICIPANT;RSVP=TRUE;PARTSTAT=TENTATIVE:mailto: + katharina.ettinger@siemens.com +URL:https: + //teams.microsoft.com/l/meetup-join/19%3ameeting_NWRhNmJiN2MtMDc1OC00ZThmL + TlhZTctMTUyNTU3NWFiOWE5%40thread.v2/0?context=%7b%22Tid%22%3a%2238ae3bcd-9 + 579-4fd4-adda-b42e1495d55a%22%2c%22Oid%22%3a%227f1979f2-e3e3-40d0-8a77-bce + f842abf7e%22%7d +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3H6pHiPAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGcUm9RAAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZwHp5b +X-ALT-DESC;FMTTYPE=text/html:\n

Hello All\,

 \;

Let’s meet + here and discuss regarding the updates of SPDX 3.0 and SPDX License + Expressions projects.

 \;

 \;

Best Regards

Shaheem + Azmal M MD

_________________________________________________________________ + _______________

Jitsi Link: https: + //moderated.jitsi.net/d623bb1284a54c83958eff31d2ecce9ed6b894312eda4ed9b400 + d5963f4e18b6

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBBbGxcLFxuXG5MZXTigJlzIG1lZXQgaGVyZSBhbmQgZGlzY3VzcyByZWdhcmRpbm + cgdGhlIA0KIHVwZGF0ZXMgb2YgU1BEWCAzLjAgYW5kIFNQRFggTGljZW5zZSBFeHByZXNzaW9u + cyBwcm9qZWN0cy5cblxuXG5CZXN0IA0KIFJlZ2FyZHNcblNoYWhlZW0gQXptYWwgTSANCiBNRF + xuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19cbkppdHNpIExpbms6IGh0dHBzOg0KIC8vbW + 9kZXJhdGVkLmppdHNpLm5ldC9kNjIzYmIxMjg0YTU0YzgzOTU4ZWZmMzFkMmVjY2U5ZWQ2Yjg5 + NDMxMmVkYTRlZDliNDAwDQogZDU5NjNmNGUxOGI2PGh0dHBzOg0KIC8vZXVyMDEuc2FmZWxpbm + tzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRm1vZGVyYXRlZC5q + aXRzDQogaS5uZXQlMkZkNjIzYmIxMjg0YTU0YzgzOTU4ZWZmMzFkMmVjY2U5ZWQ2Yjg5NDMxMm + VkYTRlZDliNDAwZDU5NjNmNGUxOGI2JmQNCiBhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYl + NDBzaWVtZW5zLmNvbSU3Q2VlNzUwMThjMjU3ZDQ3MWExNjY1MDhkYzdiYzhjNw0KIDYwJTdDMz + hhZTNiY2Q5NTc5NGZkNGFkZGFiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUyMTM0OTQ2MTk0 + MjcyNiU3Q1Vua25vDQogd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSl + FJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFYNCiBDSTZNbjAlM0QlN0MwJTdDJTdD + JTdDJnNkYXRhPWI0b1piSnNxT3gxSjBvNlVBNVk3ZnJGVVM3S3k5Z2pEWFduU2xHYmpCNjglMw + 0KIEQmcmVzZXJ2ZWQ9MD5cbl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X19fX19fX19fX19fX19fX19fX19fDQogX19fX19fX19fX19fX19fX19fX19fXG5cbg0KVUlEOg + 0KIDA0MDAwMDAwODIwMEUwMDA3NEM1QjcxMDFBODJFMDA4MDAwMDAwMDBBMDQ3MzY2MENBQURE + QTAxMDAwMDAwMDAwMDAwMDAwMDEwDQogMDAwMDAwNDU1Njk3MDQ3REVCNjk0REI4M0QwOUJBOT + BDQzVFRjYNClJFQ1VSUkVOQ0UtSUQ6MjAyNDA1MjhUMTAzMDAwWg0KU1VNTUFSWTpVcGRhdGVz + IG9uIFNQRFggMy4wIGFuZCBTUERYIExpY2Vuc2UgRXhwcmVzc2lvbiBwcm9qZWN0cw0KRFRTVE + FSVDtUWklEPUFzaWEvS29sa2F0YToyMDI0MDUyOFQxNjAwMDANCkRURU5EO1RaSUQ9QXNpYS9L + b2xrYXRhOjIwMjQwNTI4VDE2NTAwMA0KQ0xBU1M6UFVCTElDDQpQUklPUklUWTo1DQpEVFNUQU + 1QOjIwMjQwNTI0VDA4MDkwMVoNClRSQU5TUDpPUEFRVUUNClNUQVRVUzpDT05GSVJNRUQNClNF + UVVFTkNFOjENCkxPQ0FUSU9OOk1pY3Jvc29mdCBUZWFtcyBNZWV0aW5nDQpYLU1JQ1JPU09GVC + 1DRE8tQVBQVC1TRVFVRU5DRToxDQpYLU1JQ1JPU09GVC1DRE8tT1dORVJBUFBUSUQ6MTI0NTIw + NjUwNA0KWC1NSUNST1NPRlQtQ0RPLUJVU1lTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLU + lOVEVOREVEU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0K + WC1NSUNST1NPRlQtQ0RPLUlNUE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOj + MNClgtTUlDUk9TT0ZULU9OTElORU1FRVRJTkdJTkZPUk1BVElPTjp7Ik9ubGluZU1lZXRpbmdD + aGFubmVsSWQiOg0KIG51bGxcLCJPbmxpbmVNZWV0aW5nUHJvdmlkZXIiOjN9DQpYLU1JQ1JPU0 + 9GVC1TS1lQRVRFQU1TTUVFVElOR1VSTDpodHRwczoNCiAvL3RlYW1zLm1pY3Jvc29mdC5jb20v + bC9tZWV0dXAtam9pbi8xOSUzYW1lZXRpbmdfTldSaE5tSmlOMk10TURjMU9DMDBaVGhtTA0KIF + RsaFpUY3RNVFV5TlRVM05XRmlPV0U1JTQwdGhyZWFkLnYyLzA/Y29udGV4dD0lN2IlMjJUaWQl + MjIlM2ElMjIzOGFlM2JjZC05DQogNTc5LTRmZDQtYWRkYS1iNDJlMTQ5NWQ1NWElMjIlMmMlMj + JPaWQlMjIlM2ElMjI3ZjE5NzlmMi1lM2UzLTQwZDAtOGE3Ny1iY2UNCiBmODQyYWJmN2UlMjIl + N2QNClgtTUlDUk9TT0ZULVNDSEVEVUxJTkdTRVJWSUNFVVBEQVRFVVJMOmh0dHBzOg0KIC8vYX + BpLnNjaGVkdWxlci50ZWFtcy5taWNyb3NvZnQuY29tL3RlYW1zLzM4YWUzYmNkLTk1NzktNGZk + NC1hZGRhLWI0MmUxNDk1DQogZDU1YS83ZjE5NzlmMi1lM2UzLTQwZDAtOGE3Ny1iY2VmODQyYW + JmN2UvMTlfbWVldGluZ19OV1JoTm1KaU4yTXRNRGMxT0MwMFoNCiBUaG1MVGxoWlRjdE1UVXlO + VFUzTldGaU9XRTVAdGhyZWFkLnYyLzANClgtTUlDUk9TT0ZULVNLWVBFVEVBTVNQUk9QRVJUSU + VTOnsiY2lkIjoiMTk6DQogbWVldGluZ19OV1JoTm1KaU4yTXRNRGMxT0MwMFpUaG1MVGxoWlRj + dE1UVXlOVFUzTldGaU9XRTVAdGhyZWFkLnYyIlwsInByaXYNCiBhdGUiOnRydWVcLCJ0eXBlIj + owXCwibWlkIjowXCwicmlkIjowXCwidWlkIjpudWxsfQ0KWC1NSUNST1NPRlQtRE9OT1RGT1JX + QVJETUVFVElORzpGQUxTRQ0KWC1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC + 1NSUNST1NPRlQtUkVRVUVTVEVEQVRURU5EQU5DRU1PREU6REVGQVVMVA0KWC1NSUNST1NPRlQt + SVNSRVNQT05TRVJFUVVFU1RFRDpUUlVFDQpYLU1JQ1JPU09GVC1MT0NBVElPTkRJU1BMQVlOQU + 1FOk1pY3Jvc29mdCBUZWFtcyBNZWV0aW5nDQpYLU1JQ1JPU09GVC1MT0NBVElPTlNPVVJDRTpO + b25lDQpYLU1JQ1JPU09GVC1MT0NBVElPTlM6W3siRGlzcGxheU5hbWUiOiJNaWNyb3NvZnQgVG + VhbXMgDQogTWVldGluZyJcLCJMb2NhdGlvbkFubm90YXRpb24iOiIiXCwiTG9jYXRpb25Vcmki + OiIiXCwiTG9jYXRpb25TdHJlZXQiOg0KICIiXCwiTG9jYXRpb25DaXR5IjoiIlwsIkxvY2F0aW + 9uU3RhdGUiOiIiXCwiTG9jYXRpb25Db3VudHJ5IjoNCiAiIlwsIkxvY2F0aW9uUG9zdGFsQ29k + ZSI6IiJcLCJMb2NhdGlvbkZ1bGxBZGRyZXNzIjoiIn1dDQpBVFRFTkRFRTtDTj0iQXptYWwgTS + BNRCwgU2hhaGVlbSAoVCBTU1AgQVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1S + RVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQ + ogc2hhaGVlbS5hem1hbEBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049Ik1pc2hyYSwgR2F1cmF2 + IChUIFNTUCBBU0ktSU4pIjtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUE + FOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOg0KIG1pc2hyYS5nYXVyYXZA + c2llbWVucy5jb20NCkFUVEVOREVFO0NOPVNhaGlsO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9Uk + VRLVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTsNCiBQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86c2po + YTIwMDAwMEBnbWFpbC5jb20NCkFUVEVOREVFO0NOPSJPYmVyb2ksIERlYXJzaCAoVCBTU1AgQV + NJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1U + UlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogZGVhcnNoLm9iZXJvaUBzaWVtZW + 5zLmNvbQ0KQVRURU5ERUU7Q049YWt1bWFyMTc4NzFAZ21haWwuY29tO0NVVFlQRT1JTkRJVklE + VUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1 + RJT046bWFpbHRvOmFrdW1hcjE3ODcxQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049YWthc2hzYWgy + MDAzQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCi + BSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzpha2FzaHNhaDIwMDNAZ21h + aWwuY29tDQpBVFRFTkRFRTtDTj0iRXR0aW5nZXIsIEthdGhhcmluYSAoVCBTU1AgRE9TLURFKS + I7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1PUFQtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BB + UlRTVEFUPVRFTlRBVElWRTptYWlsdG86DQoga2F0aGFyaW5hLmV0dGluZ2VyQHNpZW1lbnMuY2 + 9tDQpVUkw6aHR0cHM6DQogLy90ZWFtcy5taWNyb3NvZnQuY29tL2wvbWVldHVwLWpvaW4vMTkl + M2FtZWV0aW5nX05XUmhObUppTjJNdE1EYzFPQzAwWlRobUwNCiBUbGhaVGN0TVRVeU5UVTNOV0 + ZpT1dFNSU0MHRocmVhZC52Mi8wP2NvbnRleHQ9JTdiJTIyVGlkJTIyJTNhJTIyMzhhZTNiY2Qt + OQ0KIDU3OS00ZmQ0LWFkZGEtYjQyZTE0OTVkNTVhJTIyJTJjJTIyT2lkJTIyJTNhJTIyN2YxOT + c5ZjItZTNlMy00MGQwLThhNzctYmNlDQogZjg0MmFiZjdlJTIyJTdkDQpYLUVWT0xVVElPTi1J + VEVNSUQ6DQogQUFNa0FHUTRPVFl5WkRjNUxXWmhaVGt0TkRZMFpTMWhZMlV5TFRnMU9EVmpaR0 + ZtTlRVNVpBRlJBQWdJM0g2cEhpUEFBRVlBQUENCiBBQVR2M0xvMXcrSGttRHQzVTVSUU5WYndj + QWJxVVArOHpWMFVhRG5wOTV0c0pvOUFBQUFBQUJEUUFBYnFVUCs4elYwVWFEbnA5NQ0KIHRzSm + 85QUFHY1VtOVJBQUFFQT09DQpYLUVWT0xVVElPTi1DSEFOR0VLRVk6RHdBQUFCWUFBQUJ1cFEv + N3pOWFJSb09lbjNtMndtajBBQVp3SHA1Yg0KWC1BTFQtREVTQztGTVRUWVBFPXRleHQvaHRtbD + o8aHRtbCB4bWxuczp2PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOg0KIHZtbCIgeG1sbnM6 + bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4bWxuczp3PSJ1cm + 46DQogc2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJodHRwOg0K + IC8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJodH + RwOg0KIC8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj48aGVhZD5cbjxtZXRhIGh0dHAtZXF1 + aXY9IkNvbnRlbnQtVHlwZSIgDQogY29udGVudD0idGV4dC9odG1sXDsgY2hhcnNldD11dGYtOC + I+PG1ldGEgbmFtZT0iR2VuZXJhdG9yIiANCiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAo + ZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS1cbi8qIEZvbnQgDQogRGVmaW5pdGlvbnMgKi + 9cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCJcO1xuCXBhbm9zZS0x + OjIgNCANCiA1IDMgNSA0IDYgMyAyIDRcO31cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6Q2 + FsaWJyaVw7XG4JcGFub3NlLTE6MiAxNSA1IA0KIDIgMiAyIDQgMyAyIDRcO31cbkBmb250LWZh + Y2Vcbgl7Zm9udC1mYW1pbHk6IlNlZ29lIFVJIlw7XG4JcGFub3NlLTE6MiAxMSANCiA1IDIgNC + AyIDQgMiAyIDNcO31cbi8qIFN0eWxlIERlZmluaXRpb25zICovXG5wLk1zb05vcm1hbFwsIGxp + Lk1zb05vcm1hbFwsIA0KIGRpdi5Nc29Ob3JtYWxcbgl7bWFyZ2luOjBpblw7XG4JZm9udC1zaX + plOjExLjBwdFw7XG4JZm9udC1mYW1pbHk6DQogIkNhbGlicmkiXCxzYW5zLXNlcmlmXDtcbglt + c28tbGlnYXR1cmVzOnN0YW5kYXJkY29udGV4dHVhbFw7fVxuYTpsaW5rXCwgDQogc3Bhbi5Nc2 + 9IeXBlcmxpbmtcbgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5XDtcbgljb2xvcjojMDU2M0MxXDsN + CiBcbgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lXDt9XG5zcGFuLm1lLWVtYWlsLXRleHRcbg + l7bXNvLXN0eWxlLW5hbWU6DQogbWUtZW1haWwtdGV4dFw7fVxuc3Bhbi5FbWFpbFN0eWxlMjFc + bgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZVw7DQogfVxuLk1zb0NocERlZmF1bH + Rcbgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHlcO1xuCWZvbnQtc2l6ZToxMC4wcHRcOw0K + IFxuCW1zby1saWdhdHVyZXM6bm9uZVw7fVxuQHBhZ2UgV29yZFNlY3Rpb24xXG4Je3NpemU6OC + 41aW4gMTEuMGluXDsNCiBcbgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW5cO31cbmRp + di5Xb3JkU2VjdGlvbjFcbgl7cGFnZToNCiBXb3JkU2VjdGlvbjFcO31cbi0tPjwvc3R5bGU+PC + EtLVtpZiBndGUgbXNvIDldPjx4bWw+XG48bzpzaGFwZWRlZmF1bHRzIHY6DQogZXh0PSJlZGl0 + IiBzcGlkbWF4PSIxMDI2IiAvPlxuPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIA + 0KIDldPjx4bWw+XG48bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+XG48bzppZG1hcCB2OmV4 + dD0iZWRpdCIgZGF0YT0iMSIgDQogLz5cbjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl + 0tLT48L2hlYWQ+PGJvZHkgbGFuZz0iRU4tVVMiIA0KIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIj + OTU0RjcyIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPjxkaXYgDQogY2xhc3M9Ildvcm + RTZWN0aW9uMSI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8gQWxsXCw8bzpwPjwvbzpwPjwv + cD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwXDs8L286cD48L3A+PHAgY2xhc3 + M9Ik1zb05vcm1hbCI+TGV04oCZcyBtZWV0IA0KIGhlcmUgYW5kIGRpc2N1c3MgcmVnYXJkaW5n + IHRoZSB1cGRhdGVzIG9mIFNQRFggMy4wIGFuZCBTUERYIExpY2Vuc2UgDQogRXhwcmVzc2lvbn + MgcHJvamVjdHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz + cFw7PC9vOg0KIHA+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3BcOzwvbzpwPj + wvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj5CZXN0IFJlZ2FyZHM8bzpwPjwvbzpwPjwvcD48 + cCBjbGFzcz0iTXNvTm9ybWFsIj5TaGFoZWVtIA0KIEF6bWFsIE0gTUQ8bzpwPjwvbzpwPjwvcD + 48ZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206LjI1aW5cO292ZXJmbG93Og0KIGhpZGRl + biI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90XD + tTZWdvZSANCiBVSSZxdW90XDtcLHNhbnMtc2VyaWZcO2NvbG9yOg0KICMyNDI0MjQiPl9fX19f + X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fDQogX19fX19fX19fX19fX19fPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom + cXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlmXDtjb2xvcjojMjQyNDI0XDttc2 + 8tbGlnYXR1cmVzOm5vbmUiPjxvOnA+PC9vOg0KIHA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2IHN0 + eWxlPSJtYXJnaW4tYm90dG9tOi4yNWluXDtvdmVyZmxvdzpoaWRkZW4iPjxwIA0KIGNsYXNzPS + JNc29Ob3JtYWwiPjxzcGFuIGNsYXNzPSJtZS1lbWFpbC10ZXh0Ij48Yj48c3BhbiBzdHlsZT0i + Zm9udC1zaXplOg0KIDE4LjBwdFw7Zm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcO1 + wsc2Fucy1zZXJpZlw7Y29sb3I6DQogIzI0MjQyNCI+Sml0c2kgTGluazogPGEgaHJlZj0iaHR0 + cHM6DQogLy9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dH + BzJTNBJTJGJTJGbW9kZXJhdGVkLmppdHMNCiBpLm5ldCUyRmQ2MjNiYjEyODRhNTRjODM5NThl + ZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDBkNTk2M2Y0ZTE4YjYmYQ0KIG1wXDsNCi + BkYXRhPTA1JTdDMDIlN0NtaXNocmEuZ2F1cmF2JTQwc2llbWVucy5jb20lN0NlZTc1MDE4YzI1 + N2Q0NzFhMTY2NTA4ZGM3YmM4Yw0KIDc2MCU3QzM4YWUzYmNkOTU3OTRmZDRhZGRhYjQyZTE0OT + VkNTVhJTdDMSU3QzAlN0M2Mzg1MjEzNDk0NjE5NDI3MjYlN0NVbmtuDQogb3duJTdDVFdGcGJH + WnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYV + d3aUxDSlgNCiBWQ0k2TW4wJTNEJTdDMCU3QyU3QyU3QyZhbXBcOw0KIHNkYXRhPWI0b1piSnNx + T3gxSjBvNlVBNVk3ZnJGVVM3S3k5Z2pEWFduU2xHYmpCNjglM0QmYW1wXDtyZXNlcnZlZD0wIi + ANCiBvcmlnaW5hbHNyYz0iaHR0cHM6DQogLy9tb2RlcmF0ZWQuaml0c2kubmV0L2Q2MjNiYjEy + ODRhNTRjODM5NThlZmYzMWQyZWNjZTllZDZiODk0MzEyZWRhNGVkOWI0MDANCiBkNTk2M2Y0ZT + E4YjYiIA0KIHNoYXNoPSJZNDNVQzJXR0NYUGJhcTlYUTlRbEpJbXZ3eStPemxaOFl6QVRlelZQ + Mys0MkI5MjJwYkIraFZqVmo5TXBNbzFaVk1lDQogSWVmQWhscFQzaE1WczNQQ0VwUnBHVnRyUV + hLbEJ3NzBlRHp3QUpLV1FXZHlwakdETmxhRW1xVk9WQWpUaTNoQXlsRjhMTFd1dFoNCiBtNWk2 + T20vbmlJTkQ5WHBRc0RnTlc5QWZLR3RsL0E9Ij5odHRwczoNCiAvL21vZGVyYXRlZC5qaXRzaS + 5uZXQvZDYyM2JiMTI4NGE1NGM4Mzk1OGVmZjMxZDJlY2NlOWVkNmI4OTQzMTJlZGE0ZWQ5YjQw + MA0KIGQ1OTYzZjRlMThiNjwvYT48L3NwYW4+PC9iPjwvc3Bhbj48c3BhbiBjbGFzcz0ibWUtZW + 1haWwtdGV4dCI+PGI+PHNwYW4gDQogc3R5bGU9ImZvbnQtc2l6ZToxOC4wcHQiPjxvOnA+PC9v + OnA+PC9zcGFuPjwvYj48L3NwYW4+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIH + N0eWxlPSJmb250LWZhbWlseTomcXVvdFw7U2Vnb2UgVUkmcXVvdFw7DQogXCxzYW5zLXNlcmlm + XDtjb2xvcjoNCiAjMjQyNDI0Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KIF9fX19fX19fX19fX19fXzwvc3Bhbj48 + bzpwPjwvbzpwPjwvcD48L2Rpdj48L2Rpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48bzoNCiBwPi + ZuYnNwXDs8L286cD48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4NCkNBVEVHT1JJRVM6Rm9zc29s + b2d5DQpFTkQ6VkVWRU5UDQoA +END:VEVENT +END:VCALENDAR diff --git a/ics/gsoc_2024_weekly.ics b/ics/gsoc_2024_weekly.ics new file mode 100644 index 0000000000..274c695879 --- /dev/null +++ b/ics/gsoc_2024_weekly.ics @@ -0,0 +1,373 @@ +BEGIN:VCALENDAR +PRODID:-//Ximian//NONSGML Evolution Calendar//EN +VERSION:2.0 +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:Asia/Kolkata +X-LIC-LOCATION:Asia/Kolkata +BEGIN:DAYLIGHT +TZNAME:+0630 +TZOFFSETFROM:+0530 +TZOFFSETTO:+0630 +DTSTART:19420901T000000 +END:DAYLIGHT +BEGIN:STANDARD +TZNAME:IST +TZOFFSETFROM:+0630 +TZOFFSETTO:+0530 +DTSTART:19451015T000000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +ORGANIZER;CN="Azmal M MD, Shaheem (T SSP ASI-IN)":mailto: + shaheem.azmal@siemens.com +DESCRIPTION:Hello all\,\n\nLet’s meet here every week to have general + discussion on all projects.\n\nWith best regards\,\nShaheem Azmal M + MD\n\n____________________________________________________________________ + ____________\n\n\nJITSI LINK : https: + //meet.jit.si/moderated/5a655b3b6f3b4f83cddb13b93ac5408d6de48bf4ce1049f412 + 8aa1c885478d48\n_____________________________________________________ + ___________________________\n\n +UID: + 040000008200E00074C5B7101A82E00800000000B0D0717316A2DA01000000000000000010 + 00000057266A432CBAC0409E1D8A01CF4CD2A7 +RECURRENCE-ID:20240509T133000Z +SUMMARY:GSoC 2024 - FOSSology - General Meeting +DTSTART;TZID=Asia/Kolkata:20240509T190000 +DTEND;TZID=Asia/Kolkata:20240509T200000 +CLASS:PUBLIC +PRIORITY:5 +DTSTAMP:20240509T104413Z +TRANSP:OPAQUE +STATUS:CONFIRMED +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION + property. Removing entire property: +X-MICROSOFT-CDO-OWNERAPPTID:-523675672 +X-MICROSOFT-CDO-BUSYSTATUS:BUSY +X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY +X-MICROSOFT-CDO-ALLDAYEVENT:FALSE +X-MICROSOFT-CDO-IMPORTANCE:1 +X-MICROSOFT-CDO-INSTTYPE:3 +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. + Removing entire property: +X-MICROSOFT-DONOTFORWARDMEETING:FALSE +X-MICROSOFT-DISALLOW-COUNTER:FALSE +X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT +X-MICROSOFT-ISRESPONSEREQUESTED:TRUE +ATTENDEE;CN="Azmal M MD, Shaheem (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + shaheem.azmal@siemens.com +ATTENDEE;CN=singh.aaditya889@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + singh.aaditya889@gmail.com +ATTENDEE;CN=Abdelrahman Jamal;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:abdelrahmanjamal5565@gmail.com +ATTENDEE;CN=akumar17871@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:akumar17871@gmail.com +ATTENDEE;CN=akashsah2003@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=DECLINED:mailto:akashsah2003@gmail.com +ATTENDEE;CN=divijs75@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:divijs75@gmail.com +ATTENDEE;CN=rajuljha49@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:rajuljha49@gmail.com +ATTENDEE;CN=Shreya Gautam;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:gautamm.shreya@gmail.com +ATTENDEE;CN=valensniyonsenga2003@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + valensniyonsenga2003@gmail.com +ATTENDEE;CN=avinal.xlvii@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:avinal.xlvii@gmail.com +ATTENDEE;CN="Ghosh, Anupam (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + anupam.ghosh@siemens.com +ATTENDEE;CN="Mishra, Gaurav (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + mishra.gaurav@siemens.com +ATTENDEE;CN=classicayush@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=ACCEPTED:mailto:classicayush@gmail.com +ATTENDEE;CN="Singh, Kaushlendra Pratap (T SSP ASI-IN)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + kaushlendra-pratap.singh@siemens.com +ATTENDEE;CN="Ettinger, Katharina (T SSP DOS-DE)";CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=ACCEPTED:mailto: + katharina.ettinger@siemens.com +ATTENDEE;CN=sohambanerjee4abc@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + sohambanerjee4abc@gmail.com +ATTENDEE;CN=dushsam100@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:dushsam100@gmail.com +ATTENDEE;CN=Vivek Kumar;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=NEEDS-ACTION:mailto:vvksindia@gmail.com +ATTENDEE;CN=shreya.out@gmail.com;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:shreya.out@gmail.com +ATTENDEE;CN=vasudevmaduri2@gmail.com;CUTYPE=INDIVIDUAL; + ROLE=REQ-PARTICIPANT;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto: + vasudevmaduri2@gmail.com +ATTENDEE;CN=Nicolas Toussaint;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT; + RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:nicolas1.toussaint@orange.com +ATTENDEE;CN=Sahil;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE; + PARTSTAT=NEEDS-ACTION:mailto:sjha200000@gmail.com +X-EVOLUTION-ITEMID: + AAMkAGQ4OTYyZDc5LWZhZTktNDY0ZS1hY2UyLTg1ODVjZGFmNTU5ZAFRAAgI3G+6+EqAAEYAAA + AATv3Lo1w+HkmDt3U5RQNVbwcAbqUP+8zV0UaDnp95tsJo9AAAAAABDQAAbqUP+8zV0UaDnp95 + tsJo9AAGZ+TTlgAAEA== +X-EVOLUTION-CHANGEKEY:DwAAABYAAABupQ/7zNXRRoOen3m2wmj0AAZtbYk4 +X-ALT-DESC;FMTTYPE=text/html:\n

Hello all\,

 \;

Let’s meet here every week to have + general discussion on all projects.

 \;

With best regards\,

Shaheem Azmal M MD

 \;

_________________________________________________________________ + _______________

 \;

 \;

JITSI LINK : https: + //meet.jit.si/moderated/5a655b3b6f3b4f83cddb13b93ac5408d6de48bf4ce1049f412 + 8aa1c885478d48

_________________________________________________________________ + _______________

 \;

+CATEGORIES:Fossology +X-EWS-ORIGINAL-COMP: + QkVHSU46VkVWRU5UDQpPUkdBTklaRVI7Q049IkF6bWFsIE0gTUQsIFNoYWhlZW0gKFQgU1NQIE + FTSS1JTikiOm1haWx0bzoNCiBzaGFoZWVtLmF6bWFsQHNpZW1lbnMuY29tDQpERVNDUklQVElP + TjpIZWxsbyBhbGxcLFxuXG5MZXTigJlzIG1lZXQgaGVyZSBldmVyeSB3ZWVrIHRvIGhhdmUgZ2 + VuZXJhbCANCiBkaXNjdXNzaW9uIG9uIGFsbCBwcm9qZWN0cy5cblxuV2l0aCBiZXN0IHJlZ2Fy + ZHNcLFxuU2hhaGVlbSBBem1hbCBNIA0KIE1EXG5cbl9fX19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogX19fX19fX19f + X19fXG5cblxuSklUU0kgTElOSyA6IGh0dHBzOg0KIC8vbWVldC5qaXQuc2kvbW9kZXJhdGVkLz + VhNjU1YjNiNmYzYjRmODNjZGRiMTNiOTNhYzU0MDhkNmRlNDhiZjRjZTEwNDlmNDEyDQogOGFh + MWM4ODU0NzhkNDg8aHR0cHM6DQogLy9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb2 + 9rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbWVldC5qaXQuc2klMkYNCiBtb2RlcmF0ZWQlMkY1 + YTY1NWIzYjZmM2I0ZjgzY2RkYjEzYjkzYWM1NDA4ZDZkZTQ4YmY0Y2UxMDQ5ZjQxMjhhYTFjOD + g1NDc4ZA0KIDQ4JmRhdGE9MDUlN0MwMiU3Q21pc2hyYS5nYXVyYXYlNDBzaWVtZW5zLmNvbSU3 + QzVhNDU3MGZiZTMyODQ1MWEzNGE5MDhkYzcwDQogMTRmOTE5JTdDMzhhZTNiY2Q5NTc5NGZkNG + FkZGFiNDJlMTQ5NWQ1NWElN0MxJTdDMCU3QzYzODUwODQ4MjU3ODkxNTMxMyU3Q1UNCiBua25v + d24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0 + pCVGlJNklrMWhhV3dpTA0KIENKWFZDSTZNbjAlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPTdFV3hR + VFV2aEE1b2FGNHVuSWRkTmxGendzMHJVZnZzbiUyRjdrNzlQDQogY3Z1byUzRCZyZXNlcnZlZD + 0wPlxuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f + X18NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19cblxuDQpVSUQ6DQogMDQwMDAwMDA4Mj + AwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMEIwRDA3MTczMTZBMkRBMDEwMDAwMDAwMDAw + MDAwMDAwMTANCiAwMDAwMDA1NzI2NkE0MzJDQkFDMDQwOUUxRDhBMDFDRjRDRDJBNw0KUkVDVV + JSRU5DRS1JRDoyMDI0MDUwOVQxMzMwMDBaDQpTVU1NQVJZOkdTb0MgMjAyNCAtIEZPU1NvbG9n + eSAtIEdlbmVyYWwgTWVldGluZw0KRFRTVEFSVDtUWklEPUFzaWEvS29sa2F0YToyMDI0MDUwOV + QxOTAwMDANCkRURU5EO1RaSUQ9QXNpYS9Lb2xrYXRhOjIwMjQwNTA5VDIwMDAwMA0KQ0xBU1M6 + UFVCTElDDQpQUklPUklUWTo1DQpEVFNUQU1QOjIwMjQwNTA5VDEwNDQxM1oNClRSQU5TUDpPUE + FRVUUNClNUQVRVUzpDT05GSVJNRUQNClgtTElDLUVSUk9SO1gtTElDLUVSUk9SVFlQRT1WQUxV + RS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgTE9DQVRJT04gDQogcHJvcGVydHkuIFJlbW92aW + 5nIGVudGlyZSBwcm9wZXJ0eToNClgtTUlDUk9TT0ZULUNETy1PV05FUkFQUFRJRDotNTIzNjc1 + NjcyDQpYLU1JQ1JPU09GVC1DRE8tQlVTWVNUQVRVUzpCVVNZDQpYLU1JQ1JPU09GVC1DRE8tSU + 5URU5ERURTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RPLUFMTERBWUVWRU5UOkZBTFNFDQpY + LU1JQ1JPU09GVC1DRE8tSU1QT1JUQU5DRToxDQpYLU1JQ1JPU09GVC1DRE8tSU5TVFRZUEU6Mw + 0KWC1MSUMtRVJST1I7WC1MSUMtRVJST1JUWVBFPVZBTFVFLVBBUlNFLUVSUk9SOk5vIHZhbHVl + IGZvciBYIHByb3BlcnR5LiANCiBSZW1vdmluZyBlbnRpcmUgcHJvcGVydHk6DQpYLUxJQy1FUl + JPUjtYLUxJQy1FUlJPUlRZUEU9VkFMVUUtUEFSU0UtRVJST1I6Tm8gdmFsdWUgZm9yIFggcHJv + cGVydHkuIA0KIFJlbW92aW5nIGVudGlyZSBwcm9wZXJ0eToNClgtTElDLUVSUk9SO1gtTElDLU + VSUk9SVFlQRT1WQUxVRS1QQVJTRS1FUlJPUjpObyB2YWx1ZSBmb3IgWCBwcm9wZXJ0eS4gDQog + UmVtb3ZpbmcgZW50aXJlIHByb3BlcnR5Og0KWC1NSUNST1NPRlQtRE9OT1RGT1JXQVJETUVFVE + lORzpGQUxTRQ0KWC1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC1NSUNST1NP + RlQtUkVRVUVTVEVEQVRURU5EQU5DRU1PREU6REVGQVVMVA0KWC1NSUNST1NPRlQtSVNSRVNQT0 + 5TRVJFUVVFU1RFRDpUUlVFDQpBVFRFTkRFRTtDTj0iQXptYWwgTSBNRCwgU2hhaGVlbSAoVCBT + U1AgQVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7Ul + NWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86DQogc2hhaGVlbS5hem1hbEBz + aWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049c2luZ2guYWFkaXR5YTg4OUBnbWFpbC5jb207Q1VUWV + BFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFU + PU5FRURTLUFDVElPTjptYWlsdG86DQogc2luZ2guYWFkaXR5YTg4OUBnbWFpbC5jb20NCkFUVE + VOREVFO0NOPUFiZGVscmFobWFuIEphbWFsO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBB + UlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86YWJkZWxyYW + htYW5qYW1hbDU1NjVAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1ha3VtYXIxNzg3MUBnbWFpbC5j + b207Q1VUWVBFPUlORElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1 + BBUlRTVEFUPU5FRURTLUFDVElPTjptYWlsdG86YWt1bWFyMTc4NzFAZ21haWwuY29tDQpBVFRF + TkRFRTtDTj1ha2FzaHNhaDIwMDNAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9Uk + VRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1ERUNMSU5FRDptYWlsdG86YWth + c2hzYWgyMDAzQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049ZGl2aWpzNzVAZ21haWwuY29tO0NVVF + lQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RB + VD1BQ0NFUFRFRDptYWlsdG86ZGl2aWpzNzVAZ21haWwuY29tDQpBVFRFTkRFRTtDTj1yYWp1bG + poYTQ5QGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsN + CiBSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOnJhanVsamhhNDlAZ21haWwuY2 + 9tDQpBVFRFTkRFRTtDTj1TaHJleWEgR2F1dGFtO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVR + LVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRTtQQVJUU1RBVD1BQ0NFUFRFRDptYWlsdG86Z2F1dG + FtbS5zaHJleWFAZ21haWwuY29tDQpBVFRFTkRFRTtDTj12YWxlbnNuaXlvbnNlbmdhMjAwM0Bn + bWFpbC5jb207Q1VUWVBFPUlORElWSURVQUw7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD + 1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1haWx0bzoNCiB2YWxlbnNuaXlvbnNlbmdhMjAwM0Bn + bWFpbC5jb20NCkFUVEVOREVFO0NOPWF2aW5hbC54bHZpaUBnbWFpbC5jb207Q1VUWVBFPUlORE + lWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPU5FRURT + LUFDVElPTjptYWlsdG86YXZpbmFsLnhsdmlpQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049Ikdob3 + NoLCBBbnVwYW0gKFQgU1NQIEFTSS1JTikiO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVR + LVBBUlRJQ0lQQU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIG + FudXBhbS5naG9zaEBzaWVtZW5zLmNvbQ0KQVRURU5ERUU7Q049Ik1pc2hyYSwgR2F1cmF2IChU + IFNTUCBBU0ktSU4pIjtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1QQVJUSUNJUEFOVD + tSU1ZQPVRSVUU7UEFSVFNUQVQ9QUNDRVBURUQ6bWFpbHRvOg0KIG1pc2hyYS5nYXVyYXZAc2ll + bWVucy5jb20NCkFUVEVOREVFO0NOPWNsYXNzaWNheXVzaEBnbWFpbC5jb207Q1VUWVBFPUlORE + lWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPUFDQ0VQ + VEVEOm1haWx0bzpjbGFzc2ljYXl1c2hAZ21haWwuY29tDQpBVFRFTkRFRTtDTj0iU2luZ2gsIE + thdXNobGVuZHJhIFByYXRhcCAoVCBTU1AgQVNJLUlOKSI7Q1VUWVBFPUlORElWSURVQUw7DQog + Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPU5FRURTLUFDVElPTjptYW + lsdG86DQoga2F1c2hsZW5kcmEtcHJhdGFwLnNpbmdoQHNpZW1lbnMuY29tDQpBVFRFTkRFRTtD + Tj0iRXR0aW5nZXIsIEthdGhhcmluYSAoVCBTU1AgRE9TLURFKSI7Q1VUWVBFPUlORElWSURVQU + w7DQogUk9MRT1SRVEtUEFSVElDSVBBTlQ7UlNWUD1UUlVFO1BBUlRTVEFUPUFDQ0VQVEVEOm1h + aWx0bzoNCiBrYXRoYXJpbmEuZXR0aW5nZXJAc2llbWVucy5jb20NCkFUVEVOREVFO0NOPXNvaG + FtYmFuZXJqZWU0YWJjQGdtYWlsLmNvbTtDVVRZUEU9SU5ESVZJRFVBTDsNCiBST0xFPVJFUS1Q + QVJUSUNJUEFOVDtSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzoNCiBzb2 + hhbWJhbmVyamVlNGFiY0BnbWFpbC5jb20NCkFUVEVOREVFO0NOPWR1c2hzYW0xMDBAZ21haWwu + Y29tO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UOw0KIFJTVlA9VFJVRT + tQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOmR1c2hzYW0xMDBAZ21haWwuY29tDQpBVFRF + TkRFRTtDTj1WaXZlayBLdW1hcjtDVVRZUEU9SU5ESVZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUE + FOVDtSU1ZQPVRSVUU7DQogUEFSVFNUQVQ9TkVFRFMtQUNUSU9OOm1haWx0bzp2dmtzaW5kaWFA + Z21haWwuY29tDQpBVFRFTkRFRTtDTj1zaHJleWEub3V0QGdtYWlsLmNvbTtDVVRZUEU9SU5ESV + ZJRFVBTDtST0xFPVJFUS1QQVJUSUNJUEFOVDsNCiBSU1ZQPVRSVUU7UEFSVFNUQVQ9TkVFRFMt + QUNUSU9OOm1haWx0bzpzaHJleWEub3V0QGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049dmFzdWRldm + 1hZHVyaTJAZ21haWwuY29tO0NVVFlQRT1JTkRJVklEVUFMOw0KIFJPTEU9UkVRLVBBUlRJQ0lQ + QU5UO1JTVlA9VFJVRTtQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOg0KIHZhc3VkZXZtYW + R1cmkyQGdtYWlsLmNvbQ0KQVRURU5ERUU7Q049Tmljb2xhcyBUb3Vzc2FpbnQ7Q1VUWVBFPUlO + RElWSURVQUw7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7DQogUlNWUD1UUlVFO1BBUlRTVEFUPU5FRU + RTLUFDVElPTjptYWlsdG86bmljb2xhczEudG91c3NhaW50QG9yYW5nZS5jb20NCkFUVEVOREVF + O0NOPVNhaGlsO0NVVFlQRT1JTkRJVklEVUFMO1JPTEU9UkVRLVBBUlRJQ0lQQU5UO1JTVlA9VF + JVRTsNCiBQQVJUU1RBVD1ORUVEUy1BQ1RJT046bWFpbHRvOnNqaGEyMDAwMDBAZ21haWwuY29t + DQpYLUVWT0xVVElPTi1JVEVNSUQ6DQogQUFNa0FHUTRPVFl5WkRjNUxXWmhaVGt0TkRZMFpTMW + hZMlV5TFRnMU9EVmpaR0ZtTlRVNVpBRlJBQWdJM0crNitFcUFBRVlBQUENCiBBQVR2M0xvMXcr + SGttRHQzVTVSUU5WYndjQWJxVVArOHpWMFVhRG5wOTV0c0pvOUFBQUFBQUJEUUFBYnFVUCs4el + YwVWFEbnA5NQ0KIHRzSm85QUFHWitUVGxnQUFFQT09DQpYLUVWT0xVVElPTi1DSEFOR0VLRVk6 + RHdBQUFCWUFBQUJ1cFEvN3pOWFJSb09lbjNtMndtajBBQVp0YllrNA0KWC1BTFQtREVTQztGTV + RUWVBFPXRleHQvaHRtbDo8aHRtbCB4bWxuczp2PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29t + Og0KIHZtbCIgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaW + NlIiB4bWxuczp3PSJ1cm46DQogc2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4 + bWxuczptPSJodHRwOg0KIC8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL2 + 9tbWwiIHhtbG5zPSJodHRwOg0KIC8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj48aGVhZD5c + bjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgDQogY29udGVudD0idGV4dC9odG1sXD + sgY2hhcnNldD11dGYtOCI+PG1ldGEgbmFtZT0iR2VuZXJhdG9yIiANCiBjb250ZW50PSJNaWNy + b3NvZnQgV29yZCAxNSAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS1cbi8qIEZvbnQgDQ + ogRGVmaW5pdGlvbnMgKi9cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0 + aCJcO1xuCXBhbm9zZS0xOjIgNCANCiA1IDMgNSA0IDYgMyAyIDRcO31cbkBmb250LWZhY2Vcbg + l7Zm9udC1mYW1pbHk6Q2FsaWJyaVw7XG4JcGFub3NlLTE6MiAxNSA1IA0KIDIgMiAyIDQgMyAy + IDRcO31cbkBmb250LWZhY2Vcbgl7Zm9udC1mYW1pbHk6IlNlZ29lIFVJIlw7XG4JcGFub3NlLT + E6MiAxMSANCiA1IDIgNCAyIDQgMiAyIDNcO31cbi8qIFN0eWxlIERlZmluaXRpb25zICovXG5w + Lk1zb05vcm1hbFwsIGxpLk1zb05vcm1hbFwsIA0KIGRpdi5Nc29Ob3JtYWxcbgl7bWFyZ2luOj + Bpblw7XG4JZm9udC1zaXplOjExLjBwdFw7XG4JZm9udC1mYW1pbHk6DQogIkNhbGlicmkiXCxz + YW5zLXNlcmlmXDtcbgltc28tbGlnYXR1cmVzOnN0YW5kYXJkY29udGV4dHVhbFw7fVxuYTpsaW + 5rXCwgDQogc3Bhbi5Nc29IeXBlcmxpbmtcbgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5XDtcbglj + b2xvcjojMDU2M0MxXDsNCiBcbgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lXDt9XG5zcGFuLk + VtYWlsU3R5bGUxOFxuCXttc28tc3R5bGUtdHlwZToNCiBwZXJzb25hbC1jb21wb3NlXDt9XG4u + TXNvQ2hwRGVmYXVsdFxuCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seVw7DQogXG4JZm9udC + 1zaXplOjEwLjBwdFw7XG4JbXNvLWxpZ2F0dXJlczpub25lXDt9XG5AcGFnZSBXb3JkU2VjdGlv + bjFcbgl7c2l6ZToNCiA4LjVpbiAxMS4waW5cO1xuCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbi + AxLjBpblw7DQogfVxuZGl2LldvcmRTZWN0aW9uMVxuCXtwYWdlOldvcmRTZWN0aW9uMVw7fVxu + LS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gDQogOV0+PHhtbD5cbjxvOnNoYXBlZGVmYXVsdH + MgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIA0KIC8+XG48L3htbD48IVtlbmRpZl0tLT48 + IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD5cbjxvOnNoYXBlbGF5b3V0IHY6DQogZXh0PSJlZGl0Ij + 5cbjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPlxuPC9vOg0KIHNoYXBlbGF5b3V0 + PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iIzA1Nj + NDMSIgDQogdmxpbms9IiM5NTRGNzIiIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCI+PGRp + diBjbGFzcz0iV29yZFNlY3Rpb24xIj48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW + 5nPSJFTi1JTiI+SGVsbG8gYWxsXCw8L3NwYW4+PHNwYW4gbGFuZz0iRU4tSU4iIA0KIHN0eWxl + PSJtc28tbGlnYXR1cmVzOm5vbmUiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCANCiBjbGFzcz + 0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1JTiI+PG86cD4mbmJzcFw7PC9vOnA+PC9zcGFu + PjwvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1JTiI+TGV04oCZcy + BtZWV0IGhlcmUgZXZlcnkgd2VlayB0byBoYXZlIA0KIGdlbmVyYWwgZGlzY3Vzc2lvbiBvbiBh + bGwgcHJvamVjdHMuPG86cD48L286cD48L3NwYW4+PC9wPjxwIA0KIGNsYXNzPSJNc29Ob3JtYW + wiPjxzcGFuIGxhbmc9IkVOLUlOIj48bzpwPiZuYnNwXDs8L286cD48L3NwYW4+PC9wPjxwIA0K + IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUlOIj5XaXRoIGJlc3QgcmVnYXJkc1 + wsPG86cD48L286DQogcD48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh + bmc9IkVOLUlOIj5TaGFoZWVtIEF6bWFsIE0gTUQ8bzoNCiBwPjwvbzpwPjwvc3Bhbj48L3A+PH + AgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcFw7PC9vOnA+PC9wPjxkaXY+PGRpdiANCiBz + dHlsZT0ibWFyZ2luLWJvdHRvbTouMjVpblw7b3ZlcmZsb3c6aGlkZGVuIj48cCBjbGFzcz0iTX + NvTm9ybWFsIj48c3BhbiANCiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1 + b3RcO1wsc2Fucy1zZXJpZlw7Y29sb3I6DQogIzI0MjQyNCI+X19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBfX19fX19f + X19fX19fX188bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW + 4gDQogc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90XDtTZWdvZSBVSSZxdW90XDtcLHNhbnMtc2Vy + aWZcO2NvbG9yOiMyNDI0MjRcOw0KIG1zby1saWdhdHVyZXM6bm9uZSI+PG86cD4mbmJzcFw7PC + 9vOnA+PC9zcGFuPjwvcD48cCANCiBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u + dC1mYW1pbHk6JnF1b3RcO1NlZ29lIFVJJnF1b3RcOw0KIFwsc2Fucy1zZXJpZlw7Y29sb3I6Iz + I0MjQyNFw7bXNvLWxpZ2F0dXJlczpub25lIj48bzpwPiZuYnNwXDs8L286DQogcD48L3NwYW4+ + PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdF + w7U2Vnb2UgDQogVUkmcXVvdFw7XCxzYW5zLXNlcmlmXDtjb2xvcjojMjQyNDI0XDttc28tbGln + YXR1cmVzOm5vbmUiPkpJVFNJIExJTksgOiA8YSANCiBocmVmPSJodHRwczoNCiAvL2V1cjAxLn + NhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZtZWV0 + LmppdC5zaSUyRg0KIG1vZGVyYXRlZCUyRjVhNjU1YjNiNmYzYjRmODNjZGRiMTNiOTNhYzU0MD + hkNmRlNDhiZjRjZTEwNDlmNDEyOGFhMWM4ODU0NzhkDQogNDgmYW1wXDsNCiBkYXRhPTA1JTdD + MDIlN0NtaXNocmEuZ2F1cmF2JTQwc2llbWVucy5jb20lN0M1YTQ1NzBmYmUzMjg0NTFhMzRhOT + A4ZGM3MDE0Zg0KIDkxOSU3QzM4YWUzYmNkOTU3OTRmZDRhZGRhYjQyZTE0OTVkNTVhJTdDMSU3 + QzAlN0M2Mzg1MDg0ODI1Nzg5MTUzMTMlN0NVbmtuDQogb3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0 + lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlgNCiBW + Q0k2TW4wJTNEJTdDMCU3QyU3QyU3QyZhbXBcOw0KIHNkYXRhPTdFV3hRVFV2aEE1b2FGNHVuSW + RkTmxGendzMHJVZnZzbiUyRjdrNzlQY3Z1byUzRCZhbXBcO3Jlc2VydmVkPTAiIA0KIG9yaWdp + bmFsc3JjPSJodHRwczoNCiAvL21lZXQuaml0LnNpL21vZGVyYXRlZC81YTY1NWIzYjZmM2I0Zj + gzY2RkYjEzYjkzYWM1NDA4ZDZkZTQ4YmY0Y2UxMDQ5ZjQxMg0KIDhhYTFjODg1NDc4ZDQ4IiAN + CiBzaGFzaD0iSlJ6TzJIVzVINmU3bXgyaW5PVmtlTkJ4SjgyaVFjS0dLekQ1Mk1rL2VRVnU5cm + tkVjlFaE1BaFA2NDB6WWN6RXBhNA0KIDdMYm94MWdXYTZGTldOSWZ4bnRwY05LNEhpUmJ2eTlM + WlpVRkJRQndQU2ZETUVIVTE2cXk5cVU1ZUVMQUZWaGgyaUs1OTdUUXpUDQogbWtUOHgxQnhzUT + l4SXdEUXJ4eHIvdlZIcFdlQllJPSI+aHR0cHM6DQogLy9tZWV0LmppdC5zaS9tb2RlcmF0ZWQv + NWE2NTViM2I2ZjNiNGY4M2NkZGIxM2I5M2FjNTQwOGQ2ZGU0OGJmNGNlMTA0OWY0MTINCiA4YW + ExYzg4NTQ3OGQ0ODwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PGRpdiBzdHlsZT0i + bWFyZ2luLWJvdHRvbToNCiAuMjVpblw7b3ZlcmZsb3c6aGlkZGVuIj48cCBjbGFzcz0iTXNvTm + 9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6DQogJnF1b3RcO1NlZ29lIFVJJnF1b3Rc + O1wsc2Fucy1zZXJpZlw7Y29sb3I6DQogIzI0MjQyNCI+X19fX19fX19fX19fX19fX19fX19fX1 + 9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBfX19fX19fX19f + X19fX188bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PC9kaXY+PHAgY2xhc3M9Ik1zb05vcm + 1hbCI+PG86DQogcD4mbmJzcFw7PC9vOnA+PC9wPjwvZGl2PjwvYm9keT48L2h0bWw+DQpDQVRF + R09SSUVTOkZvc3NvbG9neQ0KRU5EOlZFVkVOVA0KAA== +END:VEVENT +END:VCALENDAR diff --git a/img/ci/GH_Actions_1.png b/img/ci/GH_Actions_1.png new file mode 100644 index 0000000000..a075fa5be4 Binary files /dev/null and b/img/ci/GH_Actions_1.png differ diff --git a/img/ci/GH_Actions_2.png b/img/ci/GH_Actions_2.png new file mode 100644 index 0000000000..cd76f741ec Binary files /dev/null and b/img/ci/GH_Actions_2.png differ diff --git a/img/ci/Gitlab_1.png b/img/ci/Gitlab_1.png new file mode 100644 index 0000000000..f1a7f511e1 Binary files /dev/null and b/img/ci/Gitlab_1.png differ diff --git a/img/ci/Nomos_json_output.png b/img/ci/Nomos_json_output.png new file mode 100644 index 0000000000..0904c0d0b8 Binary files /dev/null and b/img/ci/Nomos_json_output.png differ diff --git a/img/ci/Spdx_tools_Version0.8.0a2.png b/img/ci/Spdx_tools_Version0.8.0a2.png new file mode 100644 index 0000000000..fac7d3dd26 Binary files /dev/null and b/img/ci/Spdx_tools_Version0.8.0a2.png differ diff --git a/img/ci/Spdx_tools_Version_0.8.2.png b/img/ci/Spdx_tools_Version_0.8.2.png new file mode 100644 index 0000000000..e91559494e Binary files /dev/null and b/img/ci/Spdx_tools_Version_0.8.2.png differ diff --git a/img/ci/Whitelist_decision_tree.png b/img/ci/Whitelist_decision_tree.png new file mode 100644 index 0000000000..52b658583d Binary files /dev/null and b/img/ci/Whitelist_decision_tree.png differ diff --git a/img/ci/foss-action-test.png b/img/ci/foss-action-test.png new file mode 100644 index 0000000000..d2a7109b8f Binary files /dev/null and b/img/ci/foss-action-test.png differ diff --git a/img/ci/github_diff_payload.png b/img/ci/github_diff_payload.png new file mode 100644 index 0000000000..9026edd7cf Binary files /dev/null and b/img/ci/github_diff_payload.png differ diff --git a/img/ci/gitlab_diff_payload.png b/img/ci/gitlab_diff_payload.png new file mode 100644 index 0000000000..566f47c93b Binary files /dev/null and b/img/ci/gitlab_diff_payload.png differ diff --git a/img/docusaurus.png b/img/docusaurus.png new file mode 100644 index 0000000000..f458149e3c Binary files /dev/null and b/img/docusaurus.png differ diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000000..c3199fa0dc Binary files /dev/null and b/img/favicon.ico differ diff --git a/img/gsoc21participants.png b/img/gsoc21participants.png new file mode 100644 index 0000000000..a68fb58d44 Binary files /dev/null and b/img/gsoc21participants.png differ diff --git a/img/gsoc22participants1.png b/img/gsoc22participants1.png new file mode 100644 index 0000000000..ef96b2e130 Binary files /dev/null and b/img/gsoc22participants1.png differ diff --git a/img/gsoc22participants2.png b/img/gsoc22participants2.png new file mode 100644 index 0000000000..65919ea21d Binary files /dev/null and b/img/gsoc22participants2.png differ diff --git a/img/gsoc22participants3.png b/img/gsoc22participants3.png new file mode 100644 index 0000000000..7276344b6a Binary files /dev/null and b/img/gsoc22participants3.png differ diff --git a/img/gsoc23participants1.png b/img/gsoc23participants1.png new file mode 100644 index 0000000000..ee90e06b75 Binary files /dev/null and b/img/gsoc23participants1.png differ diff --git a/img/gsoc23participants2.png b/img/gsoc23participants2.png new file mode 100644 index 0000000000..0ae1b744a0 Binary files /dev/null and b/img/gsoc23participants2.png differ diff --git a/img/gsoc23participants3.png b/img/gsoc23participants3.png new file mode 100644 index 0000000000..bbef644478 Binary files /dev/null and b/img/gsoc23participants3.png differ diff --git a/img/gsocHeader.png b/img/gsocHeader.png new file mode 100644 index 0000000000..93e26acde3 Binary files /dev/null and b/img/gsocHeader.png differ diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000000..e209c50545 Binary files /dev/null and b/img/logo.png differ diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000000..d9ca220c9f --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/img/logo512.png b/img/logo512.png new file mode 100644 index 0000000000..6418a95fd9 Binary files /dev/null and b/img/logo512.png differ diff --git a/img/microservice/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0.png b/img/microservice/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0.png new file mode 100644 index 0000000000..c298a04e1a Binary files /dev/null and b/img/microservice/124268388-b9196480-db39-11eb-84c1-d5ebd57009e0.png differ diff --git a/img/microservice/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a.png b/img/microservice/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a.png new file mode 100644 index 0000000000..f1b71bcd8c Binary files /dev/null and b/img/microservice/124268824-58d6f280-db3a-11eb-85fd-e377f932ec8a.png differ diff --git a/img/microservice/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9.png b/img/microservice/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9.png new file mode 100644 index 0000000000..ae3c4f0289 Binary files /dev/null and b/img/microservice/125129821-4e9b9200-e100-11eb-9c5f-cc3d844968c9.png differ diff --git a/img/microservice/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277.png b/img/microservice/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277.png new file mode 100644 index 0000000000..33b3b1ca85 Binary files /dev/null and b/img/microservice/128032268-0fb2777b-70f5-4ae7-bc44-0786114fe277.png differ diff --git a/img/microservice/128032535-c5941727-5ba3-492f-9662-a566ac4c350b.png b/img/microservice/128032535-c5941727-5ba3-492f-9662-a566ac4c350b.png new file mode 100644 index 0000000000..d519ad61eb Binary files /dev/null and b/img/microservice/128032535-c5941727-5ba3-492f-9662-a566ac4c350b.png differ diff --git a/img/minerva/project_overview.png b/img/minerva/project_overview.png new file mode 100644 index 0000000000..47ddfe773b Binary files /dev/null and b/img/minerva/project_overview.png differ diff --git a/img/reactUI/GithubActions.PNG b/img/reactUI/GithubActions.PNG new file mode 100644 index 0000000000..b52fd2e5e3 Binary files /dev/null and b/img/reactUI/GithubActions.PNG differ diff --git a/img/reactUI/admin_response.png b/img/reactUI/admin_response.png new file mode 100644 index 0000000000..6527a692b4 Binary files /dev/null and b/img/reactUI/admin_response.png differ diff --git a/img/reactUI/admin_view.jpeg b/img/reactUI/admin_view.jpeg new file mode 100644 index 0000000000..8f6da9dfc6 Binary files /dev/null and b/img/reactUI/admin_view.jpeg differ diff --git a/img/reactUI/alljobs_ui_sample.png b/img/reactUI/alljobs_ui_sample.png new file mode 100644 index 0000000000..380c3c260b Binary files /dev/null and b/img/reactUI/alljobs_ui_sample.png differ diff --git a/img/reactUI/api/APIGuidelines/1.1_getRequest.png b/img/reactUI/api/APIGuidelines/1.1_getRequest.png new file mode 100644 index 0000000000..3539f954ce Binary files /dev/null and b/img/reactUI/api/APIGuidelines/1.1_getRequest.png differ diff --git a/img/reactUI/api/APIGuidelines/1.2_postRequest.png b/img/reactUI/api/APIGuidelines/1.2_postRequest.png new file mode 100644 index 0000000000..7f0962e5ee Binary files /dev/null and b/img/reactUI/api/APIGuidelines/1.2_postRequest.png differ diff --git a/img/reactUI/api/APIGuidelines/10_semantics.png b/img/reactUI/api/APIGuidelines/10_semantics.png new file mode 100644 index 0000000000..c1d812c37b Binary files /dev/null and b/img/reactUI/api/APIGuidelines/10_semantics.png differ diff --git a/img/reactUI/api/APIGuidelines/11_StatusCodes.png b/img/reactUI/api/APIGuidelines/11_StatusCodes.png new file mode 100644 index 0000000000..8a65e0d5da Binary files /dev/null and b/img/reactUI/api/APIGuidelines/11_StatusCodes.png differ diff --git a/img/reactUI/api/APIGuidelines/12_NoContent.png b/img/reactUI/api/APIGuidelines/12_NoContent.png new file mode 100644 index 0000000000..4221d9f874 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/12_NoContent.png differ diff --git a/img/reactUI/api/APIGuidelines/13_ConsistentNaming.png b/img/reactUI/api/APIGuidelines/13_ConsistentNaming.png new file mode 100644 index 0000000000..06e14cc5f0 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/13_ConsistentNaming.png differ diff --git a/img/reactUI/api/APIGuidelines/16_inputFields.png b/img/reactUI/api/APIGuidelines/16_inputFields.png new file mode 100644 index 0000000000..056860f788 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/16_inputFields.png differ diff --git a/img/reactUI/api/APIGuidelines/17_Versioning.png b/img/reactUI/api/APIGuidelines/17_Versioning.png new file mode 100644 index 0000000000..0c37b86b32 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/17_Versioning.png differ diff --git a/img/reactUI/api/APIGuidelines/18_models.png b/img/reactUI/api/APIGuidelines/18_models.png new file mode 100644 index 0000000000..9770f27251 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/18_models.png differ diff --git a/img/reactUI/api/APIGuidelines/19_ConcreteArchitecture.png b/img/reactUI/api/APIGuidelines/19_ConcreteArchitecture.png new file mode 100644 index 0000000000..98b0ac4c32 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/19_ConcreteArchitecture.png differ diff --git a/img/reactUI/api/APIGuidelines/20_JSONRepresentation.png b/img/reactUI/api/APIGuidelines/20_JSONRepresentation.png new file mode 100644 index 0000000000..d3bf7dc642 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/20_JSONRepresentation.png differ diff --git a/img/reactUI/api/APIGuidelines/22_CORS.png b/img/reactUI/api/APIGuidelines/22_CORS.png new file mode 100644 index 0000000000..f0bfd091da Binary files /dev/null and b/img/reactUI/api/APIGuidelines/22_CORS.png differ diff --git a/img/reactUI/api/APIGuidelines/23_ErrorHandling.png b/img/reactUI/api/APIGuidelines/23_ErrorHandling.png new file mode 100644 index 0000000000..9659f00e9d Binary files /dev/null and b/img/reactUI/api/APIGuidelines/23_ErrorHandling.png differ diff --git a/img/reactUI/api/APIGuidelines/24_DataValidation.png b/img/reactUI/api/APIGuidelines/24_DataValidation.png new file mode 100644 index 0000000000..ffe855444c Binary files /dev/null and b/img/reactUI/api/APIGuidelines/24_DataValidation.png differ diff --git a/img/reactUI/api/APIGuidelines/25_Security.png b/img/reactUI/api/APIGuidelines/25_Security.png new file mode 100644 index 0000000000..14f3314371 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/25_Security.png differ diff --git a/img/reactUI/api/APIGuidelines/26_Testing.png b/img/reactUI/api/APIGuidelines/26_Testing.png new file mode 100644 index 0000000000..3063d90120 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/26_Testing.png differ diff --git a/img/reactUI/api/APIGuidelines/27_Documentation.png b/img/reactUI/api/APIGuidelines/27_Documentation.png new file mode 100644 index 0000000000..78d4d8f428 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/27_Documentation.png differ diff --git a/img/reactUI/api/APIGuidelines/5_ResourceOrientation.png b/img/reactUI/api/APIGuidelines/5_ResourceOrientation.png new file mode 100644 index 0000000000..57942e6ece Binary files /dev/null and b/img/reactUI/api/APIGuidelines/5_ResourceOrientation.png differ diff --git a/img/reactUI/api/APIGuidelines/9.1_mediaTypes.png b/img/reactUI/api/APIGuidelines/9.1_mediaTypes.png new file mode 100644 index 0000000000..7d4b4d4f60 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/9.1_mediaTypes.png differ diff --git a/img/reactUI/api/APIGuidelines/9.2_mediaTypes.png b/img/reactUI/api/APIGuidelines/9.2_mediaTypes.png new file mode 100644 index 0000000000..720af6ba00 Binary files /dev/null and b/img/reactUI/api/APIGuidelines/9.2_mediaTypes.png differ diff --git a/img/reactUI/api/AdminLicenseCandidate/get_candidates.png b/img/reactUI/api/AdminLicenseCandidate/get_candidates.png new file mode 100644 index 0000000000..57c46ff32d Binary files /dev/null and b/img/reactUI/api/AdminLicenseCandidate/get_candidates.png differ diff --git a/img/reactUI/api/AdminLicenseCandidate/import_csv_license_file_1.png b/img/reactUI/api/AdminLicenseCandidate/import_csv_license_file_1.png new file mode 100644 index 0000000000..95fff130ed Binary files /dev/null and b/img/reactUI/api/AdminLicenseCandidate/import_csv_license_file_1.png differ diff --git a/img/reactUI/api/AdminLicenseCandidate/import_csv_license_file_2.png b/img/reactUI/api/AdminLicenseCandidate/import_csv_license_file_2.png new file mode 100644 index 0000000000..369f7e5161 Binary files /dev/null and b/img/reactUI/api/AdminLicenseCandidate/import_csv_license_file_2.png differ diff --git a/img/reactUI/api/Copyrights/scancodecopyrightdelete.png b/img/reactUI/api/Copyrights/scancodecopyrightdelete.png new file mode 100644 index 0000000000..3ced5564aa Binary files /dev/null and b/img/reactUI/api/Copyrights/scancodecopyrightdelete.png differ diff --git a/img/reactUI/api/Copyrights/scancodecopyrightget.png b/img/reactUI/api/Copyrights/scancodecopyrightget.png new file mode 100644 index 0000000000..51d20e3714 Binary files /dev/null and b/img/reactUI/api/Copyrights/scancodecopyrightget.png differ diff --git a/img/reactUI/api/Copyrights/scancodecopyrightpatch.png b/img/reactUI/api/Copyrights/scancodecopyrightpatch.png new file mode 100644 index 0000000000..27a8c10120 Binary files /dev/null and b/img/reactUI/api/Copyrights/scancodecopyrightpatch.png differ diff --git a/img/reactUI/api/Copyrights/scancodecopyrightput.png b/img/reactUI/api/Copyrights/scancodecopyrightput.png new file mode 100644 index 0000000000..1b414c9039 Binary files /dev/null and b/img/reactUI/api/Copyrights/scancodecopyrightput.png differ diff --git a/img/reactUI/api/Copyrights/usercopyrightcount.png b/img/reactUI/api/Copyrights/usercopyrightcount.png new file mode 100644 index 0000000000..7106ffd807 Binary files /dev/null and b/img/reactUI/api/Copyrights/usercopyrightcount.png differ diff --git a/img/reactUI/api/Copyrights/usercopyrightdelete.png b/img/reactUI/api/Copyrights/usercopyrightdelete.png new file mode 100644 index 0000000000..1b8ffa4234 Binary files /dev/null and b/img/reactUI/api/Copyrights/usercopyrightdelete.png differ diff --git a/img/reactUI/api/Copyrights/usercopyrightget.png b/img/reactUI/api/Copyrights/usercopyrightget.png new file mode 100644 index 0000000000..1c54578e9c Binary files /dev/null and b/img/reactUI/api/Copyrights/usercopyrightget.png differ diff --git a/img/reactUI/api/Copyrights/usercopyrightpatch.png b/img/reactUI/api/Copyrights/usercopyrightpatch.png new file mode 100644 index 0000000000..e8c24f2f5d Binary files /dev/null and b/img/reactUI/api/Copyrights/usercopyrightpatch.png differ diff --git a/img/reactUI/api/Copyrights/usercopyrightput.png b/img/reactUI/api/Copyrights/usercopyrightput.png new file mode 100644 index 0000000000..65c3c4b2c6 Binary files /dev/null and b/img/reactUI/api/Copyrights/usercopyrightput.png differ diff --git a/img/reactUI/api/Dashboard/get_all_server_jobs.png b/img/reactUI/api/Dashboard/get_all_server_jobs.png new file mode 100644 index 0000000000..db32e24d10 Binary files /dev/null and b/img/reactUI/api/Dashboard/get_all_server_jobs.png differ diff --git a/img/reactUI/api/Dashboard/get_jobs_summary_stat.png b/img/reactUI/api/Dashboard/get_jobs_summary_stat.png new file mode 100644 index 0000000000..46294b4238 Binary files /dev/null and b/img/reactUI/api/Dashboard/get_jobs_summary_stat.png differ diff --git a/img/reactUI/api/Dashboard/get_php_info.png b/img/reactUI/api/Dashboard/get_php_info.png new file mode 100644 index 0000000000..4b9dc2fc68 Binary files /dev/null and b/img/reactUI/api/Dashboard/get_php_info.png differ diff --git a/img/reactUI/api/Dashboard/get_scheduler_options.png b/img/reactUI/api/Dashboard/get_scheduler_options.png new file mode 100644 index 0000000000..9efc233947 Binary files /dev/null and b/img/reactUI/api/Dashboard/get_scheduler_options.png differ diff --git a/img/reactUI/api/Dashboard/run_scheduler_operation_1.png b/img/reactUI/api/Dashboard/run_scheduler_operation_1.png new file mode 100644 index 0000000000..3b15a76117 Binary files /dev/null and b/img/reactUI/api/Dashboard/run_scheduler_operation_1.png differ diff --git a/img/reactUI/api/Dashboard/run_scheduler_operation_2.png b/img/reactUI/api/Dashboard/run_scheduler_operation_2.png new file mode 100644 index 0000000000..987211c8ce Binary files /dev/null and b/img/reactUI/api/Dashboard/run_scheduler_operation_2.png differ diff --git a/img/reactUI/api/Folder/folder_removable_contents.png b/img/reactUI/api/Folder/folder_removable_contents.png new file mode 100644 index 0000000000..5562478aa6 Binary files /dev/null and b/img/reactUI/api/Folder/folder_removable_contents.png differ diff --git a/img/reactUI/api/Folder/get_folder_contents.png b/img/reactUI/api/Folder/get_folder_contents.png new file mode 100644 index 0000000000..537d5c606a Binary files /dev/null and b/img/reactUI/api/Folder/get_folder_contents.png differ diff --git a/img/reactUI/api/Folder/unlink_folder_contents.png b/img/reactUI/api/Folder/unlink_folder_contents.png new file mode 100644 index 0000000000..8fe1c7a51b Binary files /dev/null and b/img/reactUI/api/Folder/unlink_folder_contents.png differ diff --git a/img/reactUI/api/Groups/add_user.png b/img/reactUI/api/Groups/add_user.png new file mode 100644 index 0000000000..3abe105e23 Binary files /dev/null and b/img/reactUI/api/Groups/add_user.png differ diff --git a/img/reactUI/api/Groups/change_user_perm.png b/img/reactUI/api/Groups/change_user_perm.png new file mode 100644 index 0000000000..f32d4a4395 Binary files /dev/null and b/img/reactUI/api/Groups/change_user_perm.png differ diff --git a/img/reactUI/api/Groups/deletable_groups.png b/img/reactUI/api/Groups/deletable_groups.png new file mode 100644 index 0000000000..1d65355b87 Binary files /dev/null and b/img/reactUI/api/Groups/deletable_groups.png differ diff --git a/img/reactUI/api/Groups/delete_api_1.png b/img/reactUI/api/Groups/delete_api_1.png new file mode 100644 index 0000000000..ae7abe1c78 Binary files /dev/null and b/img/reactUI/api/Groups/delete_api_1.png differ diff --git a/img/reactUI/api/Groups/delete_api_2.png b/img/reactUI/api/Groups/delete_api_2.png new file mode 100644 index 0000000000..0c2b4699d0 Binary files /dev/null and b/img/reactUI/api/Groups/delete_api_2.png differ diff --git a/img/reactUI/api/Groups/delete_group_popup.png b/img/reactUI/api/Groups/delete_group_popup.png new file mode 100644 index 0000000000..dc3f8b807b Binary files /dev/null and b/img/reactUI/api/Groups/delete_group_popup.png differ diff --git a/img/reactUI/api/Groups/get_group_members1.png b/img/reactUI/api/Groups/get_group_members1.png new file mode 100644 index 0000000000..929a1982ad Binary files /dev/null and b/img/reactUI/api/Groups/get_group_members1.png differ diff --git a/img/reactUI/api/Groups/get_group_members2.png b/img/reactUI/api/Groups/get_group_members2.png new file mode 100644 index 0000000000..f9d0792d12 Binary files /dev/null and b/img/reactUI/api/Groups/get_group_members2.png differ diff --git a/img/reactUI/api/Groups/re_add_user.png b/img/reactUI/api/Groups/re_add_user.png new file mode 100644 index 0000000000..11ff6263aa Binary files /dev/null and b/img/reactUI/api/Groups/re_add_user.png differ diff --git a/img/reactUI/api/Groups/remove_user.png b/img/reactUI/api/Groups/remove_user.png new file mode 100644 index 0000000000..f8cf55aecd Binary files /dev/null and b/img/reactUI/api/Groups/remove_user.png differ diff --git a/img/reactUI/api/Groups/remove_user_2.png b/img/reactUI/api/Groups/remove_user_2.png new file mode 100644 index 0000000000..75c5af7cde Binary files /dev/null and b/img/reactUI/api/Groups/remove_user_2.png differ diff --git a/img/reactUI/api/License/add_new_license_decision.png b/img/reactUI/api/License/add_new_license_decision.png new file mode 100644 index 0000000000..5170a8e877 Binary files /dev/null and b/img/reactUI/api/License/add_new_license_decision.png differ diff --git a/img/reactUI/api/License/bulk_history.png b/img/reactUI/api/License/bulk_history.png new file mode 100644 index 0000000000..4caf4c902f Binary files /dev/null and b/img/reactUI/api/License/bulk_history.png differ diff --git a/img/reactUI/api/License/clearing_progress.png b/img/reactUI/api/License/clearing_progress.png new file mode 100644 index 0000000000..f7945b5099 Binary files /dev/null and b/img/reactUI/api/License/clearing_progress.png differ diff --git a/img/reactUI/api/License/crud_adminack_req.png b/img/reactUI/api/License/crud_adminack_req.png new file mode 100644 index 0000000000..e07e857c4e Binary files /dev/null and b/img/reactUI/api/License/crud_adminack_req.png differ diff --git a/img/reactUI/api/License/crud_adminack_res.png b/img/reactUI/api/License/crud_adminack_res.png new file mode 100644 index 0000000000..0c8657bb5c Binary files /dev/null and b/img/reactUI/api/License/crud_adminack_res.png differ diff --git a/img/reactUI/api/License/crud_license_decision_req.png b/img/reactUI/api/License/crud_license_decision_req.png new file mode 100644 index 0000000000..bb7442041f Binary files /dev/null and b/img/reactUI/api/License/crud_license_decision_req.png differ diff --git a/img/reactUI/api/License/crud_license_decision_res.png b/img/reactUI/api/License/crud_license_decision_res.png new file mode 100644 index 0000000000..3b529f6c9c Binary files /dev/null and b/img/reactUI/api/License/crud_license_decision_res.png differ diff --git a/img/reactUI/api/License/crud_stdcomments_req.png b/img/reactUI/api/License/crud_stdcomments_req.png new file mode 100644 index 0000000000..0f6904d143 Binary files /dev/null and b/img/reactUI/api/License/crud_stdcomments_req.png differ diff --git a/img/reactUI/api/License/crud_stdcomments_res.png b/img/reactUI/api/License/crud_stdcomments_res.png new file mode 100644 index 0000000000..a4a4cfff22 Binary files /dev/null and b/img/reactUI/api/License/crud_stdcomments_res.png differ diff --git a/img/reactUI/api/License/delete_license_case_1.png b/img/reactUI/api/License/delete_license_case_1.png new file mode 100644 index 0000000000..40a038fb7a Binary files /dev/null and b/img/reactUI/api/License/delete_license_case_1.png differ diff --git a/img/reactUI/api/License/delete_license_case_2.png b/img/reactUI/api/License/delete_license_case_2.png new file mode 100644 index 0000000000..cc1c4af390 Binary files /dev/null and b/img/reactUI/api/License/delete_license_case_2.png differ diff --git a/img/reactUI/api/License/delete_license_case_3.png b/img/reactUI/api/License/delete_license_case_3.png new file mode 100644 index 0000000000..768f252bfb Binary files /dev/null and b/img/reactUI/api/License/delete_license_case_3.png differ diff --git a/img/reactUI/api/License/delete_license_decision.png b/img/reactUI/api/License/delete_license_decision.png new file mode 100644 index 0000000000..bdf411cad6 Binary files /dev/null and b/img/reactUI/api/License/delete_license_decision.png differ diff --git a/img/reactUI/api/License/delete_main_license.png b/img/reactUI/api/License/delete_main_license.png new file mode 100644 index 0000000000..5f58d35e4b Binary files /dev/null and b/img/reactUI/api/License/delete_main_license.png differ diff --git a/img/reactUI/api/License/export_licenses_list.png b/img/reactUI/api/License/export_licenses_list.png new file mode 100644 index 0000000000..669ac99607 Binary files /dev/null and b/img/reactUI/api/License/export_licenses_list.png differ diff --git a/img/reactUI/api/License/export_obligation_list.png b/img/reactUI/api/License/export_obligation_list.png new file mode 100644 index 0000000000..224dd31856 Binary files /dev/null and b/img/reactUI/api/License/export_obligation_list.png differ diff --git a/img/reactUI/api/License/get_active_queries.png b/img/reactUI/api/License/get_active_queries.png new file mode 100644 index 0000000000..abe235b1a8 Binary files /dev/null and b/img/reactUI/api/License/get_active_queries.png differ diff --git a/img/reactUI/api/License/get_all_admin_acknowledgements.png b/img/reactUI/api/License/get_all_admin_acknowledgements.png new file mode 100644 index 0000000000..46e1a1a0f6 Binary files /dev/null and b/img/reactUI/api/License/get_all_admin_acknowledgements.png differ diff --git a/img/reactUI/api/License/get_all_agents.png b/img/reactUI/api/License/get_all_agents.png new file mode 100644 index 0000000000..0dc4c0d309 Binary files /dev/null and b/img/reactUI/api/License/get_all_agents.png differ diff --git a/img/reactUI/api/License/get_all_agents_revision.png b/img/reactUI/api/License/get_all_agents_revision.png new file mode 100644 index 0000000000..f07702228b Binary files /dev/null and b/img/reactUI/api/License/get_all_agents_revision.png differ diff --git a/img/reactUI/api/License/get_all_license_decisions.png b/img/reactUI/api/License/get_all_license_decisions.png new file mode 100644 index 0000000000..d24a768204 Binary files /dev/null and b/img/reactUI/api/License/get_all_license_decisions.png differ diff --git a/img/reactUI/api/License/get_clearing_history.png b/img/reactUI/api/License/get_clearing_history.png new file mode 100644 index 0000000000..ac06c4d794 Binary files /dev/null and b/img/reactUI/api/License/get_clearing_history.png differ diff --git a/img/reactUI/api/License/get_clearing_progress.png b/img/reactUI/api/License/get_clearing_progress.png new file mode 100644 index 0000000000..f7945b5099 Binary files /dev/null and b/img/reactUI/api/License/get_clearing_progress.png differ diff --git a/img/reactUI/api/License/get_database_contents.png b/img/reactUI/api/License/get_database_contents.png new file mode 100644 index 0000000000..6628dbae6e Binary files /dev/null and b/img/reactUI/api/License/get_database_contents.png differ diff --git a/img/reactUI/api/License/get_database_metrics.png b/img/reactUI/api/License/get_database_metrics.png new file mode 100644 index 0000000000..5120171727 Binary files /dev/null and b/img/reactUI/api/License/get_database_metrics.png differ diff --git a/img/reactUI/api/License/get_disk_usage.png b/img/reactUI/api/License/get_disk_usage.png new file mode 100644 index 0000000000..7b4779bcf4 Binary files /dev/null and b/img/reactUI/api/License/get_disk_usage.png differ diff --git a/img/reactUI/api/License/get_edited_licenses.png b/img/reactUI/api/License/get_edited_licenses.png new file mode 100644 index 0000000000..daeefd2eb3 Binary files /dev/null and b/img/reactUI/api/License/get_edited_licenses.png differ diff --git a/img/reactUI/api/License/get_licenses_count_summary.png b/img/reactUI/api/License/get_licenses_count_summary.png new file mode 100644 index 0000000000..829e74bc2e Binary files /dev/null and b/img/reactUI/api/License/get_licenses_count_summary.png differ diff --git a/img/reactUI/api/License/get_licenses_histogram.png b/img/reactUI/api/License/get_licenses_histogram.png new file mode 100644 index 0000000000..2dde54d321 Binary files /dev/null and b/img/reactUI/api/License/get_licenses_histogram.png differ diff --git a/img/reactUI/api/License/get_licenses_reuse_summary.png b/img/reactUI/api/License/get_licenses_reuse_summary.png new file mode 100644 index 0000000000..c91be07abb Binary files /dev/null and b/img/reactUI/api/License/get_licenses_reuse_summary.png differ diff --git a/img/reactUI/api/License/get_main_licenses.png b/img/reactUI/api/License/get_main_licenses.png new file mode 100644 index 0000000000..38d74c84ea Binary files /dev/null and b/img/reactUI/api/License/get_main_licenses.png differ diff --git a/img/reactUI/api/License/get_scanned_licenses.png b/img/reactUI/api/License/get_scanned_licenses.png new file mode 100644 index 0000000000..6e99bb8283 Binary files /dev/null and b/img/reactUI/api/License/get_scanned_licenses.png differ diff --git a/img/reactUI/api/License/highlight_positions.png b/img/reactUI/api/License/highlight_positions.png new file mode 100644 index 0000000000..9d0ac738e9 Binary files /dev/null and b/img/reactUI/api/License/highlight_positions.png differ diff --git a/img/reactUI/api/License/import_obligation_list.png b/img/reactUI/api/License/import_obligation_list.png new file mode 100644 index 0000000000..f088759c95 Binary files /dev/null and b/img/reactUI/api/License/import_obligation_list.png differ diff --git a/img/reactUI/api/License/license_tree_view.png b/img/reactUI/api/License/license_tree_view.png new file mode 100644 index 0000000000..54e4f614c9 Binary files /dev/null and b/img/reactUI/api/License/license_tree_view.png differ diff --git a/img/reactUI/api/License/merge_license.png b/img/reactUI/api/License/merge_license.png new file mode 100644 index 0000000000..81ab62e374 Binary files /dev/null and b/img/reactUI/api/License/merge_license.png differ diff --git a/img/reactUI/api/License/schedule_bulk_scan.png b/img/reactUI/api/License/schedule_bulk_scan.png new file mode 100644 index 0000000000..577fd38b27 Binary files /dev/null and b/img/reactUI/api/License/schedule_bulk_scan.png differ diff --git a/img/reactUI/api/License/set_clearing_info.png b/img/reactUI/api/License/set_clearing_info.png new file mode 100644 index 0000000000..5cb78ad408 Binary files /dev/null and b/img/reactUI/api/License/set_clearing_info.png differ diff --git a/img/reactUI/api/License/stdcomments.png b/img/reactUI/api/License/stdcomments.png new file mode 100644 index 0000000000..7209ec97ff Binary files /dev/null and b/img/reactUI/api/License/stdcomments.png differ diff --git a/img/reactUI/api/License/suggest_license.png b/img/reactUI/api/License/suggest_license.png new file mode 100644 index 0000000000..e3b4984211 Binary files /dev/null and b/img/reactUI/api/License/suggest_license.png differ diff --git a/img/reactUI/api/License/three_pointers_default.png b/img/reactUI/api/License/three_pointers_default.png new file mode 100644 index 0000000000..2e42e2e0da Binary files /dev/null and b/img/reactUI/api/License/three_pointers_default.png differ diff --git a/img/reactUI/api/License/three_pointers_no_clearing.png b/img/reactUI/api/License/three_pointers_no_clearing.png new file mode 100644 index 0000000000..0de5ffd196 Binary files /dev/null and b/img/reactUI/api/License/three_pointers_no_clearing.png differ diff --git a/img/reactUI/api/License/three_pointers_with_licenses.png b/img/reactUI/api/License/three_pointers_with_licenses.png new file mode 100644 index 0000000000..fee53d48b7 Binary files /dev/null and b/img/reactUI/api/License/three_pointers_with_licenses.png differ diff --git a/img/reactUI/api/License/verify_as_new.png b/img/reactUI/api/License/verify_as_new.png new file mode 100644 index 0000000000..ec888e9404 Binary files /dev/null and b/img/reactUI/api/License/verify_as_new.png differ diff --git a/img/reactUI/api/License/verify_as_variant.png b/img/reactUI/api/License/verify_as_variant.png new file mode 100644 index 0000000000..7f4cc404c7 Binary files /dev/null and b/img/reactUI/api/License/verify_as_variant.png differ diff --git a/img/reactUI/api/MultipleCalls/request.png b/img/reactUI/api/MultipleCalls/request.png new file mode 100644 index 0000000000..af13e08ead Binary files /dev/null and b/img/reactUI/api/MultipleCalls/request.png differ diff --git a/img/reactUI/api/MultipleCalls/request2.png b/img/reactUI/api/MultipleCalls/request2.png new file mode 100644 index 0000000000..fe90976f56 Binary files /dev/null and b/img/reactUI/api/MultipleCalls/request2.png differ diff --git a/img/reactUI/api/MultipleCalls/response.png b/img/reactUI/api/MultipleCalls/response.png new file mode 100644 index 0000000000..0b8e25c9ef Binary files /dev/null and b/img/reactUI/api/MultipleCalls/response.png differ diff --git a/img/reactUI/api/OAuth/addclients.png b/img/reactUI/api/OAuth/addclients.png new file mode 100644 index 0000000000..6db32081a5 Binary files /dev/null and b/img/reactUI/api/OAuth/addclients.png differ diff --git a/img/reactUI/api/OAuth/callback.png b/img/reactUI/api/OAuth/callback.png new file mode 100644 index 0000000000..d294d5a1a7 Binary files /dev/null and b/img/reactUI/api/OAuth/callback.png differ diff --git a/img/reactUI/api/OAuth/login.png b/img/reactUI/api/OAuth/login.png new file mode 100644 index 0000000000..e67c998453 Binary files /dev/null and b/img/reactUI/api/OAuth/login.png differ diff --git a/img/reactUI/api/OAuth/viewclients.png b/img/reactUI/api/OAuth/viewclients.png new file mode 100644 index 0000000000..0c779207b6 Binary files /dev/null and b/img/reactUI/api/OAuth/viewclients.png differ diff --git a/img/reactUI/api/Uploads/OneShot/ceu.png b/img/reactUI/api/Uploads/OneShot/ceu.png new file mode 100644 index 0000000000..8aa4a4110b Binary files /dev/null and b/img/reactUI/api/Uploads/OneShot/ceu.png differ diff --git a/img/reactUI/api/Uploads/OneShot/monk.png b/img/reactUI/api/Uploads/OneShot/monk.png new file mode 100644 index 0000000000..69b88223d0 Binary files /dev/null and b/img/reactUI/api/Uploads/OneShot/monk.png differ diff --git a/img/reactUI/api/Uploads/OneShot/nomos.png b/img/reactUI/api/Uploads/OneShot/nomos.png new file mode 100644 index 0000000000..015de50f9a Binary files /dev/null and b/img/reactUI/api/Uploads/OneShot/nomos.png differ diff --git a/img/reactUI/api/Uploads/add_main_license.png b/img/reactUI/api/Uploads/add_main_license.png new file mode 100644 index 0000000000..e1c516a244 Binary files /dev/null and b/img/reactUI/api/Uploads/add_main_license.png differ diff --git a/img/reactUI/api/Uploads/add_pagination.png b/img/reactUI/api/Uploads/add_pagination.png new file mode 100644 index 0000000000..a6eb544884 Binary files /dev/null and b/img/reactUI/api/Uploads/add_pagination.png differ diff --git a/img/reactUI/api/Uploads/get_file_contents.png b/img/reactUI/api/Uploads/get_file_contents.png new file mode 100644 index 0000000000..11839f0c7c Binary files /dev/null and b/img/reactUI/api/Uploads/get_file_contents.png differ diff --git a/img/reactUI/api/Uploads/make_clearing_decision.png b/img/reactUI/api/Uploads/make_clearing_decision.png new file mode 100644 index 0000000000..e9715e1981 Binary files /dev/null and b/img/reactUI/api/Uploads/make_clearing_decision.png differ diff --git a/img/reactUI/api/Version2/Config/how_to_test_1.png b/img/reactUI/api/Version2/Config/how_to_test_1.png new file mode 100644 index 0000000000..8e11a95d9a Binary files /dev/null and b/img/reactUI/api/Version2/Config/how_to_test_1.png differ diff --git a/img/reactUI/api/Version2/Config/how_to_test_2.png b/img/reactUI/api/Version2/Config/how_to_test_2.png new file mode 100644 index 0000000000..2ef3217978 Binary files /dev/null and b/img/reactUI/api/Version2/Config/how_to_test_2.png differ diff --git a/img/reactUI/api/Version2/Config/how_to_test_3.png b/img/reactUI/api/Version2/Config/how_to_test_3.png new file mode 100644 index 0000000000..aa1ba616a1 Binary files /dev/null and b/img/reactUI/api/Version2/Config/how_to_test_3.png differ diff --git a/img/reactUI/api/addUserReqUpdated.png b/img/reactUI/api/addUserReqUpdated.png new file mode 100644 index 0000000000..441419922e Binary files /dev/null and b/img/reactUI/api/addUserReqUpdated.png differ diff --git a/img/reactUI/api/addUserResUpdated.png b/img/reactUI/api/addUserResUpdated.png new file mode 100644 index 0000000000..ea82704003 Binary files /dev/null and b/img/reactUI/api/addUserResUpdated.png differ diff --git a/img/reactUI/api/cliError.png b/img/reactUI/api/cliError.png new file mode 100644 index 0000000000..2d22b2b25d Binary files /dev/null and b/img/reactUI/api/cliError.png differ diff --git a/img/reactUI/api/editReqUpdated.png b/img/reactUI/api/editReqUpdated.png new file mode 100644 index 0000000000..f98528f7a5 Binary files /dev/null and b/img/reactUI/api/editReqUpdated.png differ diff --git a/img/reactUI/api/editUploadPostman.png b/img/reactUI/api/editUploadPostman.png new file mode 100644 index 0000000000..54e19ece10 Binary files /dev/null and b/img/reactUI/api/editUploadPostman.png differ diff --git a/img/reactUI/api/editUploadSwagger.png b/img/reactUI/api/editUploadSwagger.png new file mode 100644 index 0000000000..7dccb4b341 Binary files /dev/null and b/img/reactUI/api/editUploadSwagger.png differ diff --git a/img/reactUI/api/newJobs.png b/img/reactUI/api/newJobs.png new file mode 100644 index 0000000000..2162e300d1 Binary files /dev/null and b/img/reactUI/api/newJobs.png differ diff --git a/img/reactUI/api/permGroupsRes.png b/img/reactUI/api/permGroupsRes.png new file mode 100644 index 0000000000..9a99af6d1a Binary files /dev/null and b/img/reactUI/api/permGroupsRes.png differ diff --git a/img/reactUI/api/reqBodyCreateToken.png b/img/reactUI/api/reqBodyCreateToken.png new file mode 100644 index 0000000000..1279e4e380 Binary files /dev/null and b/img/reactUI/api/reqBodyCreateToken.png differ diff --git a/img/reactUI/api/reqBodyEditUser.png b/img/reactUI/api/reqBodyEditUser.png new file mode 100644 index 0000000000..12efcd7c91 Binary files /dev/null and b/img/reactUI/api/reqBodyEditUser.png differ diff --git a/img/reactUI/api/reqbodyAddUser.png b/img/reactUI/api/reqbodyAddUser.png new file mode 100644 index 0000000000..9815596046 Binary files /dev/null and b/img/reactUI/api/reqbodyAddUser.png differ diff --git a/img/reactUI/api/resActiveTokens.png b/img/reactUI/api/resActiveTokens.png new file mode 100644 index 0000000000..4de1e4e262 Binary files /dev/null and b/img/reactUI/api/resActiveTokens.png differ diff --git a/img/reactUI/api/resAddUser.png b/img/reactUI/api/resAddUser.png new file mode 100644 index 0000000000..31a274056b Binary files /dev/null and b/img/reactUI/api/resAddUser.png differ diff --git a/img/reactUI/api/resCreateToken.png b/img/reactUI/api/resCreateToken.png new file mode 100644 index 0000000000..0a07e34409 Binary files /dev/null and b/img/reactUI/api/resCreateToken.png differ diff --git a/img/reactUI/api/resEditUser.png b/img/reactUI/api/resEditUser.png new file mode 100644 index 0000000000..55b57c2124 Binary files /dev/null and b/img/reactUI/api/resEditUser.png differ diff --git a/img/reactUI/api/resExpiredTokens.png b/img/reactUI/api/resExpiredTokens.png new file mode 100644 index 0000000000..d55942fb03 Binary files /dev/null and b/img/reactUI/api/resExpiredTokens.png differ diff --git a/img/reactUI/api/searchApiChecks.png b/img/reactUI/api/searchApiChecks.png new file mode 100644 index 0000000000..c0a09f631a Binary files /dev/null and b/img/reactUI/api/searchApiChecks.png differ diff --git a/img/reactUI/api/searchPostman.png b/img/reactUI/api/searchPostman.png new file mode 100644 index 0000000000..adc6165e4e Binary files /dev/null and b/img/reactUI/api/searchPostman.png differ diff --git a/img/reactUI/api/searchSwagger.png b/img/reactUI/api/searchSwagger.png new file mode 100644 index 0000000000..ba504a1818 Binary files /dev/null and b/img/reactUI/api/searchSwagger.png differ diff --git a/img/reactUI/api/uploadPermReq.png b/img/reactUI/api/uploadPermReq.png new file mode 100644 index 0000000000..d23a5bab1d Binary files /dev/null and b/img/reactUI/api/uploadPermReq.png differ diff --git a/img/reactUI/api/uploadPermRes.png b/img/reactUI/api/uploadPermRes.png new file mode 100644 index 0000000000..7ab69bdf06 Binary files /dev/null and b/img/reactUI/api/uploadPermRes.png differ diff --git a/img/reactUI/api_clearing_decision.jpeg b/img/reactUI/api_clearing_decision.jpeg new file mode 100644 index 0000000000..9ce5868e2e Binary files /dev/null and b/img/reactUI/api_clearing_decision.jpeg differ diff --git a/img/reactUI/browse_pagination.png b/img/reactUI/browse_pagination.png new file mode 100644 index 0000000000..98b7039c33 Binary files /dev/null and b/img/reactUI/browse_pagination.png differ diff --git a/img/reactUI/buggy_response.png b/img/reactUI/buggy_response.png new file mode 100644 index 0000000000..8a8c75f015 Binary files /dev/null and b/img/reactUI/buggy_response.png differ diff --git a/img/reactUI/docs_api_res.png b/img/reactUI/docs_api_res.png new file mode 100644 index 0000000000..c42e4cddc1 Binary files /dev/null and b/img/reactUI/docs_api_res.png differ diff --git a/img/reactUI/download_response.png b/img/reactUI/download_response.png new file mode 100644 index 0000000000..542421432b Binary files /dev/null and b/img/reactUI/download_response.png differ diff --git a/img/reactUI/fossy_response.png b/img/reactUI/fossy_response.png new file mode 100644 index 0000000000..d8fa22fe8b Binary files /dev/null and b/img/reactUI/fossy_response.png differ diff --git a/img/reactUI/indexing.png b/img/reactUI/indexing.png new file mode 100644 index 0000000000..944674f3c2 Binary files /dev/null and b/img/reactUI/indexing.png differ diff --git a/img/reactUI/installation/CorsSetup.png b/img/reactUI/installation/CorsSetup.png new file mode 100644 index 0000000000..f0deb53e40 Binary files /dev/null and b/img/reactUI/installation/CorsSetup.png differ diff --git a/img/reactUI/installation/forkButton.jpg b/img/reactUI/installation/forkButton.jpg new file mode 100644 index 0000000000..b3888091fc Binary files /dev/null and b/img/reactUI/installation/forkButton.jpg differ diff --git a/img/reactUI/jobs_res.png b/img/reactUI/jobs_res.png new file mode 100644 index 0000000000..c594bd2f91 Binary files /dev/null and b/img/reactUI/jobs_res.png differ diff --git a/img/reactUI/licenses_edited.jpeg b/img/reactUI/licenses_edited.jpeg new file mode 100644 index 0000000000..4025a446be Binary files /dev/null and b/img/reactUI/licenses_edited.jpeg differ diff --git a/img/reactUI/nonAdmin_response.png b/img/reactUI/nonAdmin_response.png new file mode 100644 index 0000000000..782c106db4 Binary files /dev/null and b/img/reactUI/nonAdmin_response.png differ diff --git a/img/reactUI/non_admin_view.jpeg b/img/reactUI/non_admin_view.jpeg new file mode 100644 index 0000000000..10e93b416b Binary files /dev/null and b/img/reactUI/non_admin_view.jpeg differ diff --git a/img/reactUI/pages/Admin/CreateGroup.png b/img/reactUI/pages/Admin/CreateGroup.png new file mode 100644 index 0000000000..1aa862a862 Binary files /dev/null and b/img/reactUI/pages/Admin/CreateGroup.png differ diff --git a/img/reactUI/pages/Admin/DeleteGroup/delete_group.png b/img/reactUI/pages/Admin/DeleteGroup/delete_group.png new file mode 100644 index 0000000000..dca192be78 Binary files /dev/null and b/img/reactUI/pages/Admin/DeleteGroup/delete_group.png differ diff --git a/img/reactUI/pages/Admin/DeleteUser.png b/img/reactUI/pages/Admin/DeleteUser.png new file mode 100644 index 0000000000..03bf12d80a Binary files /dev/null and b/img/reactUI/pages/Admin/DeleteUser.png differ diff --git a/img/reactUI/pages/Admin/bucket_pool.png b/img/reactUI/pages/Admin/bucket_pool.png new file mode 100644 index 0000000000..4bb2deffea Binary files /dev/null and b/img/reactUI/pages/Admin/bucket_pool.png differ diff --git a/img/reactUI/pages/Admin/maintenance_1.png b/img/reactUI/pages/Admin/maintenance_1.png new file mode 100644 index 0000000000..74b0a6c42a Binary files /dev/null and b/img/reactUI/pages/Admin/maintenance_1.png differ diff --git a/img/reactUI/pages/Admin/maintenance_2.png b/img/reactUI/pages/Admin/maintenance_2.png new file mode 100644 index 0000000000..cb485d4243 Binary files /dev/null and b/img/reactUI/pages/Admin/maintenance_2.png differ diff --git a/img/reactUI/pages/Admin/manage_group_users_improved.png b/img/reactUI/pages/Admin/manage_group_users_improved.png new file mode 100644 index 0000000000..bf6ba16eec Binary files /dev/null and b/img/reactUI/pages/Admin/manage_group_users_improved.png differ diff --git a/img/reactUI/pages/Admin/manage_group_users_updated.png b/img/reactUI/pages/Admin/manage_group_users_updated.png new file mode 100644 index 0000000000..082123331f Binary files /dev/null and b/img/reactUI/pages/Admin/manage_group_users_updated.png differ diff --git a/img/reactUI/pages/Browse/browseHeadings.png b/img/reactUI/pages/Browse/browseHeadings.png new file mode 100644 index 0000000000..33005ebefe Binary files /dev/null and b/img/reactUI/pages/Browse/browseHeadings.png differ diff --git a/img/reactUI/pages/Browse/browsePagePagination.png b/img/reactUI/pages/Browse/browsePagePagination.png new file mode 100644 index 0000000000..b09decd391 Binary files /dev/null and b/img/reactUI/pages/Browse/browsePagePagination.png differ diff --git a/img/reactUI/pages/Browse/browsePagePrototype.png b/img/reactUI/pages/Browse/browsePagePrototype.png new file mode 100644 index 0000000000..03ab3d7b3b Binary files /dev/null and b/img/reactUI/pages/Browse/browsePagePrototype.png differ diff --git a/img/reactUI/pages/BrowseUploads/copyrightBrowser.png b/img/reactUI/pages/BrowseUploads/copyrightBrowser.png new file mode 100644 index 0000000000..146e57b6b9 Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/copyrightBrowser.png differ diff --git a/img/reactUI/pages/BrowseUploads/ecc.png b/img/reactUI/pages/BrowseUploads/ecc.png new file mode 100644 index 0000000000..d1399d3e83 Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/ecc.png differ diff --git a/img/reactUI/pages/BrowseUploads/fileBrowser.png b/img/reactUI/pages/BrowseUploads/fileBrowser.png new file mode 100644 index 0000000000..35e5bec95c Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/fileBrowser.png differ diff --git a/img/reactUI/pages/BrowseUploads/licenseBrowser.png b/img/reactUI/pages/BrowseUploads/licenseBrowser.png new file mode 100644 index 0000000000..9f06919d25 Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/licenseBrowser.png differ diff --git a/img/reactUI/pages/BrowseUploads/softwareHeritage.png b/img/reactUI/pages/BrowseUploads/softwareHeritage.png new file mode 100644 index 0000000000..6e52bd719d Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/softwareHeritage.png differ diff --git a/img/reactUI/pages/BrowseUploads/uploadLicense.png b/img/reactUI/pages/BrowseUploads/uploadLicense.png new file mode 100644 index 0000000000..59139f4fb0 Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/uploadLicense.png differ diff --git a/img/reactUI/pages/BrowseUploads/uploadLicenseTable.png b/img/reactUI/pages/BrowseUploads/uploadLicenseTable.png new file mode 100644 index 0000000000..16eb68a7af Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/uploadLicenseTable.png differ diff --git a/img/reactUI/pages/BrowseUploads/uploadSummary.png b/img/reactUI/pages/BrowseUploads/uploadSummary.png new file mode 100644 index 0000000000..4b25f4f814 Binary files /dev/null and b/img/reactUI/pages/BrowseUploads/uploadSummary.png differ diff --git a/img/reactUI/pages/Error404.png b/img/reactUI/pages/Error404.png new file mode 100644 index 0000000000..85f0ec7754 Binary files /dev/null and b/img/reactUI/pages/Error404.png differ diff --git a/img/reactUI/pages/Folder/CreateFolder.png b/img/reactUI/pages/Folder/CreateFolder.png new file mode 100644 index 0000000000..31be7423ce Binary files /dev/null and b/img/reactUI/pages/Folder/CreateFolder.png differ diff --git a/img/reactUI/pages/Folder/DeleteFolder.png b/img/reactUI/pages/Folder/DeleteFolder.png new file mode 100644 index 0000000000..9343772cce Binary files /dev/null and b/img/reactUI/pages/Folder/DeleteFolder.png differ diff --git a/img/reactUI/pages/Folder/EditFolder.png b/img/reactUI/pages/Folder/EditFolder.png new file mode 100644 index 0000000000..6a333055b5 Binary files /dev/null and b/img/reactUI/pages/Folder/EditFolder.png differ diff --git a/img/reactUI/pages/Folder/MoveFolder.png b/img/reactUI/pages/Folder/MoveFolder.png new file mode 100644 index 0000000000..b12e023152 Binary files /dev/null and b/img/reactUI/pages/Folder/MoveFolder.png differ diff --git a/img/reactUI/pages/FolderNavigation.png b/img/reactUI/pages/FolderNavigation.png new file mode 100644 index 0000000000..252eca7523 Binary files /dev/null and b/img/reactUI/pages/FolderNavigation.png differ diff --git a/img/reactUI/pages/Header1.png b/img/reactUI/pages/Header1.png new file mode 100644 index 0000000000..1848f73832 Binary files /dev/null and b/img/reactUI/pages/Header1.png differ diff --git a/img/reactUI/pages/Header2.png b/img/reactUI/pages/Header2.png new file mode 100644 index 0000000000..17a6f4ff24 Binary files /dev/null and b/img/reactUI/pages/Header2.png differ diff --git a/img/reactUI/pages/Home/features.png b/img/reactUI/pages/Home/features.png new file mode 100644 index 0000000000..ae030d7611 Binary files /dev/null and b/img/reactUI/pages/Home/features.png differ diff --git a/img/reactUI/pages/Home/home.png b/img/reactUI/pages/Home/home.png new file mode 100644 index 0000000000..889255870e Binary files /dev/null and b/img/reactUI/pages/Home/home.png differ diff --git a/img/reactUI/pages/Jobs/ScheduleAnalysis.png b/img/reactUI/pages/Jobs/ScheduleAnalysis.png new file mode 100644 index 0000000000..f99d9af825 Binary files /dev/null and b/img/reactUI/pages/Jobs/ScheduleAnalysis.png differ diff --git a/img/reactUI/pages/Jobs/reuse.png b/img/reactUI/pages/Jobs/reuse.png new file mode 100644 index 0000000000..a94dbc7c06 Binary files /dev/null and b/img/reactUI/pages/Jobs/reuse.png differ diff --git a/img/reactUI/pages/License/addLicense.png b/img/reactUI/pages/License/addLicense.png new file mode 100644 index 0000000000..51eaa32d07 Binary files /dev/null and b/img/reactUI/pages/License/addLicense.png differ diff --git a/img/reactUI/pages/License/addLicenseSuccess.png b/img/reactUI/pages/License/addLicenseSuccess.png new file mode 100644 index 0000000000..8ccc254924 Binary files /dev/null and b/img/reactUI/pages/License/addLicenseSuccess.png differ diff --git a/img/reactUI/pages/License/candidateLicense.png b/img/reactUI/pages/License/candidateLicense.png new file mode 100644 index 0000000000..775c7147df Binary files /dev/null and b/img/reactUI/pages/License/candidateLicense.png differ diff --git a/img/reactUI/pages/License/candidateLicenseDark.png b/img/reactUI/pages/License/candidateLicenseDark.png new file mode 100644 index 0000000000..d06923425d Binary files /dev/null and b/img/reactUI/pages/License/candidateLicenseDark.png differ diff --git a/img/reactUI/pages/License/candidateLicensePagination.png b/img/reactUI/pages/License/candidateLicensePagination.png new file mode 100644 index 0000000000..8a719cc90b Binary files /dev/null and b/img/reactUI/pages/License/candidateLicensePagination.png differ diff --git a/img/reactUI/pages/License/importCsvLicenseFile.png b/img/reactUI/pages/License/importCsvLicenseFile.png new file mode 100644 index 0000000000..5f637267bd Binary files /dev/null and b/img/reactUI/pages/License/importCsvLicenseFile.png differ diff --git a/img/reactUI/pages/License/license.png b/img/reactUI/pages/License/license.png new file mode 100644 index 0000000000..ec627a8902 Binary files /dev/null and b/img/reactUI/pages/License/license.png differ diff --git a/img/reactUI/pages/License/licensePrototype.png b/img/reactUI/pages/License/licensePrototype.png new file mode 100644 index 0000000000..14161b052a Binary files /dev/null and b/img/reactUI/pages/License/licensePrototype.png differ diff --git a/img/reactUI/pages/Obligations/obligations_details.png b/img/reactUI/pages/Obligations/obligations_details.png new file mode 100644 index 0000000000..c849a30023 Binary files /dev/null and b/img/reactUI/pages/Obligations/obligations_details.png differ diff --git a/img/reactUI/pages/Obligations/obligations_list.png b/img/reactUI/pages/Obligations/obligations_list.png new file mode 100644 index 0000000000..fae321b1fc Binary files /dev/null and b/img/reactUI/pages/Obligations/obligations_list.png differ diff --git a/img/reactUI/pages/Search/search.png b/img/reactUI/pages/Search/search.png new file mode 100644 index 0000000000..be16ef0f30 Binary files /dev/null and b/img/reactUI/pages/Search/search.png differ diff --git a/img/reactUI/pages/Search/searchFiles.png b/img/reactUI/pages/Search/searchFiles.png new file mode 100644 index 0000000000..ea5d0f222b Binary files /dev/null and b/img/reactUI/pages/Search/searchFiles.png differ diff --git a/img/reactUI/pages/Search/searchPagination.png b/img/reactUI/pages/Search/searchPagination.png new file mode 100644 index 0000000000..0a58d0209a Binary files /dev/null and b/img/reactUI/pages/Search/searchPagination.png differ diff --git a/img/reactUI/pages/Uploads/copyUpload.png b/img/reactUI/pages/Uploads/copyUpload.png new file mode 100644 index 0000000000..fe9d88a339 Binary files /dev/null and b/img/reactUI/pages/Uploads/copyUpload.png differ diff --git a/img/reactUI/pages/Uploads/deleteUploads.png b/img/reactUI/pages/Uploads/deleteUploads.png new file mode 100644 index 0000000000..3beddb21a3 Binary files /dev/null and b/img/reactUI/pages/Uploads/deleteUploads.png differ diff --git a/img/reactUI/pages/Uploads/editUpload.png b/img/reactUI/pages/Uploads/editUpload.png new file mode 100644 index 0000000000..602ca88e3d Binary files /dev/null and b/img/reactUI/pages/Uploads/editUpload.png differ diff --git a/img/reactUI/pages/Uploads/fixDeleteUploads.png b/img/reactUI/pages/Uploads/fixDeleteUploads.png new file mode 100644 index 0000000000..aa92697276 Binary files /dev/null and b/img/reactUI/pages/Uploads/fixDeleteUploads.png differ diff --git a/img/reactUI/pages/Uploads/moveUpload.png b/img/reactUI/pages/Uploads/moveUpload.png new file mode 100644 index 0000000000..3441ddc14e Binary files /dev/null and b/img/reactUI/pages/Uploads/moveUpload.png differ diff --git a/img/reactUI/pages/Uploads/oneShotCopyrightAnalysis.png b/img/reactUI/pages/Uploads/oneShotCopyrightAnalysis.png new file mode 100644 index 0000000000..f8db0a232a Binary files /dev/null and b/img/reactUI/pages/Uploads/oneShotCopyrightAnalysis.png differ diff --git a/img/reactUI/pages/Uploads/oneShotLicenseAnalysis.png b/img/reactUI/pages/Uploads/oneShotLicenseAnalysis.png new file mode 100644 index 0000000000..94e1dca71f Binary files /dev/null and b/img/reactUI/pages/Uploads/oneShotLicenseAnalysis.png differ diff --git a/img/reactUI/pages/Uploads/oneShotMonk.png b/img/reactUI/pages/Uploads/oneShotMonk.png new file mode 100644 index 0000000000..01d57ed2bc Binary files /dev/null and b/img/reactUI/pages/Uploads/oneShotMonk.png differ diff --git a/img/reactUI/pages/Uploads/reportImport.png b/img/reactUI/pages/Uploads/reportImport.png new file mode 100644 index 0000000000..6e258d43c2 Binary files /dev/null and b/img/reactUI/pages/Uploads/reportImport.png differ diff --git a/img/reactUI/pages/Uploads/uploadFileError.png b/img/reactUI/pages/Uploads/uploadFileError.png new file mode 100644 index 0000000000..247496de94 Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadFileError.png differ diff --git a/img/reactUI/pages/Uploads/uploadFileReusableOptions.png b/img/reactUI/pages/Uploads/uploadFileReusableOptions.png new file mode 100644 index 0000000000..7b3523c608 Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadFileReusableOptions.png differ diff --git a/img/reactUI/pages/Uploads/uploadServer.png b/img/reactUI/pages/Uploads/uploadServer.png new file mode 100644 index 0000000000..e5127a84bd Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadServer.png differ diff --git a/img/reactUI/pages/Uploads/uploadVcs.png b/img/reactUI/pages/Uploads/uploadVcs.png new file mode 100644 index 0000000000..4e02993370 Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadVcs.png differ diff --git a/img/reactUI/pages/Uploads/uploadVcsRequest.png b/img/reactUI/pages/Uploads/uploadVcsRequest.png new file mode 100644 index 0000000000..844d08f709 Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadVcsRequest.png differ diff --git a/img/reactUI/pages/Uploads/uploadedFile.png b/img/reactUI/pages/Uploads/uploadedFile.png new file mode 100644 index 0000000000..a1c6605db0 Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadedFile.png differ diff --git a/img/reactUI/pages/Uploads/uploadedRequestFormatChanged.png b/img/reactUI/pages/Uploads/uploadedRequestFormatChanged.png new file mode 100644 index 0000000000..af13e08ead Binary files /dev/null and b/img/reactUI/pages/Uploads/uploadedRequestFormatChanged.png differ diff --git a/img/reactUI/pages/UserSelf.png b/img/reactUI/pages/UserSelf.png new file mode 100644 index 0000000000..5538f87d4e Binary files /dev/null and b/img/reactUI/pages/UserSelf.png differ diff --git a/img/reactUI/pages/about.png b/img/reactUI/pages/about.png new file mode 100644 index 0000000000..1db3ba4d8f Binary files /dev/null and b/img/reactUI/pages/about.png differ diff --git a/img/reactUI/pages/aboutTerms.png b/img/reactUI/pages/aboutTerms.png new file mode 100644 index 0000000000..f236f1586c Binary files /dev/null and b/img/reactUI/pages/aboutTerms.png differ diff --git a/img/reactUI/pages/conf/bannermsg.png b/img/reactUI/pages/conf/bannermsg.png new file mode 100644 index 0000000000..0acd85a5f7 Binary files /dev/null and b/img/reactUI/pages/conf/bannermsg.png differ diff --git a/img/reactUI/pages/conf/confInfo_new.png b/img/reactUI/pages/conf/confInfo_new.png new file mode 100644 index 0000000000..61689a04fd Binary files /dev/null and b/img/reactUI/pages/conf/confInfo_new.png differ diff --git a/img/reactUI/pages/conf/confinfo.png b/img/reactUI/pages/conf/confinfo.png new file mode 100644 index 0000000000..1083f71672 Binary files /dev/null and b/img/reactUI/pages/conf/confinfo.png differ diff --git a/img/reactUI/pages/conf/updateconf.png b/img/reactUI/pages/conf/updateconf.png new file mode 100644 index 0000000000..c84af8248c Binary files /dev/null and b/img/reactUI/pages/conf/updateconf.png differ diff --git a/img/reactUI/pages/copyrightTable.gif b/img/reactUI/pages/copyrightTable.gif new file mode 100644 index 0000000000..ddbbe0d256 Binary files /dev/null and b/img/reactUI/pages/copyrightTable.gif differ diff --git a/img/reactUI/pages/copyrightTableDark.PNG b/img/reactUI/pages/copyrightTableDark.PNG new file mode 100644 index 0000000000..036a97a67d Binary files /dev/null and b/img/reactUI/pages/copyrightTableDark.PNG differ diff --git a/img/reactUI/pages/copyrights/deletecopyright.png b/img/reactUI/pages/copyrights/deletecopyright.png new file mode 100644 index 0000000000..eb1f9c3c89 Binary files /dev/null and b/img/reactUI/pages/copyrights/deletecopyright.png differ diff --git a/img/reactUI/pages/copyrights/getInfoHeader.png b/img/reactUI/pages/copyrights/getInfoHeader.png new file mode 100644 index 0000000000..66867e6a66 Binary files /dev/null and b/img/reactUI/pages/copyrights/getInfoHeader.png differ diff --git a/img/reactUI/pages/copyrights/getcopyrights.png b/img/reactUI/pages/copyrights/getcopyrights.png new file mode 100644 index 0000000000..c039e47167 Binary files /dev/null and b/img/reactUI/pages/copyrights/getcopyrights.png differ diff --git a/img/reactUI/pages/copyrights/getinactivecopyrights.png b/img/reactUI/pages/copyrights/getinactivecopyrights.png new file mode 100644 index 0000000000..d933b990d2 Binary files /dev/null and b/img/reactUI/pages/copyrights/getinactivecopyrights.png differ diff --git a/img/reactUI/pages/copyrights/openapi.png b/img/reactUI/pages/copyrights/openapi.png new file mode 100644 index 0000000000..ed954ce515 Binary files /dev/null and b/img/reactUI/pages/copyrights/openapi.png differ diff --git a/img/reactUI/pages/copyrights/restorecopyright.png b/img/reactUI/pages/copyrights/restorecopyright.png new file mode 100644 index 0000000000..f5ed2c1f16 Binary files /dev/null and b/img/reactUI/pages/copyrights/restorecopyright.png differ diff --git a/img/reactUI/pages/copyrights/totalResponse_new.png b/img/reactUI/pages/copyrights/totalResponse_new.png new file mode 100644 index 0000000000..08288b7e33 Binary files /dev/null and b/img/reactUI/pages/copyrights/totalResponse_new.png differ diff --git a/img/reactUI/pages/copyrights/totalnumberofcopyrights.png b/img/reactUI/pages/copyrights/totalnumberofcopyrights.png new file mode 100644 index 0000000000..ded75999ad Binary files /dev/null and b/img/reactUI/pages/copyrights/totalnumberofcopyrights.png differ diff --git a/img/reactUI/pages/copyrights/updatecopyright.png b/img/reactUI/pages/copyrights/updatecopyright.png new file mode 100644 index 0000000000..8a672cae40 Binary files /dev/null and b/img/reactUI/pages/copyrights/updatecopyright.png differ diff --git a/img/reactUI/pages/customAlert.png b/img/reactUI/pages/customAlert.png new file mode 100644 index 0000000000..a02e9888c7 Binary files /dev/null and b/img/reactUI/pages/customAlert.png differ diff --git a/img/reactUI/pages/customise/cusomise.png b/img/reactUI/pages/customise/cusomise.png new file mode 100644 index 0000000000..782c695667 Binary files /dev/null and b/img/reactUI/pages/customise/cusomise.png differ diff --git a/img/reactUI/pages/customise/customiseData.png b/img/reactUI/pages/customise/customiseData.png new file mode 100644 index 0000000000..8072842d1a Binary files /dev/null and b/img/reactUI/pages/customise/customiseData.png differ diff --git a/img/reactUI/pages/customise/updatecustomise.png b/img/reactUI/pages/customise/updatecustomise.png new file mode 100644 index 0000000000..3fb1af3dcf Binary files /dev/null and b/img/reactUI/pages/customise/updatecustomise.png differ diff --git a/img/reactUI/pages/dangerSnackbar.png b/img/reactUI/pages/dangerSnackbar.png new file mode 100644 index 0000000000..31e3cd0182 Binary files /dev/null and b/img/reactUI/pages/dangerSnackbar.png differ diff --git a/img/reactUI/pages/darkTheme.png b/img/reactUI/pages/darkTheme.png new file mode 100644 index 0000000000..1c2997a424 Binary files /dev/null and b/img/reactUI/pages/darkTheme.png differ diff --git a/img/reactUI/pages/errorPassing.png b/img/reactUI/pages/errorPassing.png new file mode 100644 index 0000000000..cbf162e259 Binary files /dev/null and b/img/reactUI/pages/errorPassing.png differ diff --git a/img/reactUI/pages/exportReport.png b/img/reactUI/pages/exportReport.png new file mode 100644 index 0000000000..250b5196d7 Binary files /dev/null and b/img/reactUI/pages/exportReport.png differ diff --git a/img/reactUI/pages/fixError.png b/img/reactUI/pages/fixError.png new file mode 100644 index 0000000000..0b90ddbfd1 Binary files /dev/null and b/img/reactUI/pages/fixError.png differ diff --git a/img/reactUI/pages/fixTextarea.png b/img/reactUI/pages/fixTextarea.png new file mode 100644 index 0000000000..4a06535e3f Binary files /dev/null and b/img/reactUI/pages/fixTextarea.png differ diff --git a/img/reactUI/pages/fixedFooter.png b/img/reactUI/pages/fixedFooter.png new file mode 100644 index 0000000000..ea2ad0d5bb Binary files /dev/null and b/img/reactUI/pages/fixedFooter.png differ diff --git a/img/reactUI/pages/fixedSnackbar.png b/img/reactUI/pages/fixedSnackbar.png new file mode 100644 index 0000000000..1a6a442309 Binary files /dev/null and b/img/reactUI/pages/fixedSnackbar.png differ diff --git a/img/reactUI/pages/fixedSnackbarSearch.png b/img/reactUI/pages/fixedSnackbarSearch.png new file mode 100644 index 0000000000..2ec3fe7b05 Binary files /dev/null and b/img/reactUI/pages/fixedSnackbarSearch.png differ diff --git a/img/reactUI/pages/footer.png b/img/reactUI/pages/footer.png new file mode 100644 index 0000000000..c78c0f968c Binary files /dev/null and b/img/reactUI/pages/footer.png differ diff --git a/img/reactUI/pages/groupNameDark.png b/img/reactUI/pages/groupNameDark.png new file mode 100644 index 0000000000..62dddeedc6 Binary files /dev/null and b/img/reactUI/pages/groupNameDark.png differ diff --git a/img/reactUI/pages/groupNameLight.png b/img/reactUI/pages/groupNameLight.png new file mode 100644 index 0000000000..27ca530cac Binary files /dev/null and b/img/reactUI/pages/groupNameLight.png differ diff --git a/img/reactUI/pages/header.png b/img/reactUI/pages/header.png new file mode 100644 index 0000000000..fa40f62387 Binary files /dev/null and b/img/reactUI/pages/header.png differ diff --git a/img/reactUI/pages/headerActive.png b/img/reactUI/pages/headerActive.png new file mode 100644 index 0000000000..e53b3bb0fb Binary files /dev/null and b/img/reactUI/pages/headerActive.png differ diff --git a/img/reactUI/pages/headerDropdown.png b/img/reactUI/pages/headerDropdown.png new file mode 100644 index 0000000000..0a5bdf5304 Binary files /dev/null and b/img/reactUI/pages/headerDropdown.png differ diff --git a/img/reactUI/pages/headerHover.png b/img/reactUI/pages/headerHover.png new file mode 100644 index 0000000000..4fcf41177f Binary files /dev/null and b/img/reactUI/pages/headerHover.png differ diff --git a/img/reactUI/pages/headerSubDropdown.png b/img/reactUI/pages/headerSubDropdown.png new file mode 100644 index 0000000000..8fccb92d07 Binary files /dev/null and b/img/reactUI/pages/headerSubDropdown.png differ diff --git a/img/reactUI/pages/helpOverview.png b/img/reactUI/pages/helpOverview.png new file mode 100644 index 0000000000..82f727c368 Binary files /dev/null and b/img/reactUI/pages/helpOverview.png differ diff --git a/img/reactUI/pages/highlightedCurrentGroup.png b/img/reactUI/pages/highlightedCurrentGroup.png new file mode 100644 index 0000000000..b4c1636f91 Binary files /dev/null and b/img/reactUI/pages/highlightedCurrentGroup.png differ diff --git a/img/reactUI/pages/info/fileinfo.png b/img/reactUI/pages/info/fileinfo.png new file mode 100644 index 0000000000..43cdeab8a6 Binary files /dev/null and b/img/reactUI/pages/info/fileinfo.png differ diff --git a/img/reactUI/pages/licenseBrowser.png b/img/reactUI/pages/licenseBrowser.png new file mode 100644 index 0000000000..682ae374e0 Binary files /dev/null and b/img/reactUI/pages/licenseBrowser.png differ diff --git a/img/reactUI/pages/licenseTextarea.png b/img/reactUI/pages/licenseTextarea.png new file mode 100644 index 0000000000..c39d1b91b6 Binary files /dev/null and b/img/reactUI/pages/licenseTextarea.png differ diff --git a/img/reactUI/pages/lightTheme.png b/img/reactUI/pages/lightTheme.png new file mode 100644 index 0000000000..2f267768da Binary files /dev/null and b/img/reactUI/pages/lightTheme.png differ diff --git a/img/reactUI/pages/login/hiddenLoginForm.png b/img/reactUI/pages/login/hiddenLoginForm.png new file mode 100644 index 0000000000..63690af544 Binary files /dev/null and b/img/reactUI/pages/login/hiddenLoginForm.png differ diff --git a/img/reactUI/pages/login/loadingSpinner.png b/img/reactUI/pages/login/loadingSpinner.png new file mode 100644 index 0000000000..d1f1e23a68 Binary files /dev/null and b/img/reactUI/pages/login/loadingSpinner.png differ diff --git a/img/reactUI/pages/login/login.png b/img/reactUI/pages/login/login.png new file mode 100644 index 0000000000..ea0a8cffa0 Binary files /dev/null and b/img/reactUI/pages/login/login.png differ diff --git a/img/reactUI/pages/login/loginError.png b/img/reactUI/pages/login/loginError.png new file mode 100644 index 0000000000..17cc175a61 Binary files /dev/null and b/img/reactUI/pages/login/loginError.png differ diff --git a/img/reactUI/pages/login/loginForm.png b/img/reactUI/pages/login/loginForm.png new file mode 100644 index 0000000000..95f034686e Binary files /dev/null and b/img/reactUI/pages/login/loginForm.png differ diff --git a/img/reactUI/pages/login/loginFormBorder.png b/img/reactUI/pages/login/loginFormBorder.png new file mode 100644 index 0000000000..c07986f97a Binary files /dev/null and b/img/reactUI/pages/login/loginFormBorder.png differ diff --git a/img/reactUI/pages/login/logout.png b/img/reactUI/pages/login/logout.png new file mode 100644 index 0000000000..8c6f94cec1 Binary files /dev/null and b/img/reactUI/pages/login/logout.png differ diff --git a/img/reactUI/pages/scheduleAnalysisApi.png b/img/reactUI/pages/scheduleAnalysisApi.png new file mode 100644 index 0000000000..4baef1529e Binary files /dev/null and b/img/reactUI/pages/scheduleAnalysisApi.png differ diff --git a/img/reactUI/pages/snackbar.gif b/img/reactUI/pages/snackbar.gif new file mode 100644 index 0000000000..831a086736 Binary files /dev/null and b/img/reactUI/pages/snackbar.gif differ diff --git a/img/reactUI/pages/stickyHeader.gif b/img/reactUI/pages/stickyHeader.gif new file mode 100644 index 0000000000..1e4d69ce97 Binary files /dev/null and b/img/reactUI/pages/stickyHeader.gif differ diff --git a/img/reactUI/pages/successSnackbar.png b/img/reactUI/pages/successSnackbar.png new file mode 100644 index 0000000000..66ec5bfc5b Binary files /dev/null and b/img/reactUI/pages/successSnackbar.png differ diff --git a/img/reactUI/pages/thirdPartyLicense.png b/img/reactUI/pages/thirdPartyLicense.png new file mode 100644 index 0000000000..4119c93acb Binary files /dev/null and b/img/reactUI/pages/thirdPartyLicense.png differ diff --git a/img/reactUI/pages/tooltip.png b/img/reactUI/pages/tooltip.png new file mode 100644 index 0000000000..7a02a06a3a Binary files /dev/null and b/img/reactUI/pages/tooltip.png differ diff --git a/img/reactUI/pages/uploadInstruction.png b/img/reactUI/pages/uploadInstruction.png new file mode 100644 index 0000000000..6fcc51bf0a Binary files /dev/null and b/img/reactUI/pages/uploadInstruction.png differ diff --git a/img/reactUI/pagination.png b/img/reactUI/pagination.png new file mode 100644 index 0000000000..25236b7682 Binary files /dev/null and b/img/reactUI/pagination.png differ diff --git a/img/reactUI/sequenceDiagram.png b/img/reactUI/sequenceDiagram.png new file mode 100644 index 0000000000..447ac4a9d7 Binary files /dev/null and b/img/reactUI/sequenceDiagram.png differ diff --git a/img/scancode/author.png b/img/scancode/author.png new file mode 100644 index 0000000000..7d2d478628 Binary files /dev/null and b/img/scancode/author.png differ diff --git a/img/scancode/author_browser.png b/img/scancode/author_browser.png new file mode 100644 index 0000000000..35c35c7ee8 Binary files /dev/null and b/img/scancode/author_browser.png differ diff --git a/img/scancode/copyright_browser.png b/img/scancode/copyright_browser.png new file mode 100644 index 0000000000..8b8e20b32a Binary files /dev/null and b/img/scancode/copyright_browser.png differ diff --git a/img/scancode/license_scanning.png b/img/scancode/license_scanning.png new file mode 100644 index 0000000000..14bbe36382 Binary files /dev/null and b/img/scancode/license_scanning.png differ diff --git a/img/scancode/scan_copy_browser.png b/img/scancode/scan_copy_browser.png new file mode 100644 index 0000000000..c35e431937 Binary files /dev/null and b/img/scancode/scan_copy_browser.png differ diff --git a/img/scancode/schedule.png b/img/scancode/schedule.png new file mode 100644 index 0000000000..e35163b5ce Binary files /dev/null and b/img/scancode/schedule.png differ diff --git a/img/scancode/upload_file.png b/img/scancode/upload_file.png new file mode 100644 index 0000000000..8b2516c339 Binary files /dev/null and b/img/scancode/upload_file.png differ diff --git a/img/scancode/vcs_job.png b/img/scancode/vcs_job.png new file mode 100644 index 0000000000..bd2ea52d67 Binary files /dev/null and b/img/scancode/vcs_job.png differ diff --git a/img/spdx-expression/addLicense.png b/img/spdx-expression/addLicense.png new file mode 100644 index 0000000000..c4f86359b3 Binary files /dev/null and b/img/spdx-expression/addLicense.png differ diff --git a/img/spdx-expression/customLicenseText.png b/img/spdx-expression/customLicenseText.png new file mode 100644 index 0000000000..d99e71b67d Binary files /dev/null and b/img/spdx-expression/customLicenseText.png differ diff --git a/img/spdx-expression/editExpressionModal.png b/img/spdx-expression/editExpressionModal.png new file mode 100644 index 0000000000..a506535643 Binary files /dev/null and b/img/spdx-expression/editExpressionModal.png differ diff --git a/img/spdx-expression/licenseDecisionsTable.png b/img/spdx-expression/licenseDecisionsTable.png new file mode 100644 index 0000000000..53ee9ec2af Binary files /dev/null and b/img/spdx-expression/licenseDecisionsTable.png differ diff --git a/img/spdx-expression/licenseExpressionSchema.png b/img/spdx-expression/licenseExpressionSchema.png new file mode 100644 index 0000000000..0f5095c406 Binary files /dev/null and b/img/spdx-expression/licenseExpressionSchema.png differ diff --git a/img/spdx-expression/licenseExpressionTable.png b/img/spdx-expression/licenseExpressionTable.png new file mode 100644 index 0000000000..cab0a66ed0 Binary files /dev/null and b/img/spdx-expression/licenseExpressionTable.png differ diff --git a/img/spdx-expression/removeLicense.png b/img/spdx-expression/removeLicense.png new file mode 100644 index 0000000000..cd8623c9e3 Binary files /dev/null and b/img/spdx-expression/removeLicense.png differ diff --git a/img/spdx-expression/userExpressionDecision.png b/img/spdx-expression/userExpressionDecision.png new file mode 100644 index 0000000000..81b4c17e1a Binary files /dev/null and b/img/spdx-expression/userExpressionDecision.png differ diff --git a/img/undraw_docusaurus_mountain.svg b/img/undraw_docusaurus_mountain.svg new file mode 100644 index 0000000000..431cef2f7f --- /dev/null +++ b/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_react.svg b/img/undraw_docusaurus_react.svg new file mode 100644 index 0000000000..e417050433 --- /dev/null +++ b/img/undraw_docusaurus_react.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_tree.svg b/img/undraw_docusaurus_tree.svg new file mode 100644 index 0000000000..a05cc03dda --- /dev/null +++ b/img/undraw_docusaurus_tree.svg @@ -0,0 +1 @@ +docu_tree \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000000..efce2794d2 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + +GSoC projects at FOSSology | GSoC projects at FOSSology + + + + + +

GSoC projects at FOSSology

Updates about activities done by Google Summer of Code students at FOSSology.

Navigate the projects from the drop-downs in the top.

Meet our participants (more photos to come soon)

+ + \ No newline at end of file diff --git a/reports/SPDX2TV_Test19.zip_1720209488.spdx b/reports/SPDX2TV_Test19.zip_1720209488.spdx new file mode 100644 index 0000000000..1a1744f560 --- /dev/null +++ b/reports/SPDX2TV_Test19.zip_1720209488.spdx @@ -0,0 +1,163 @@ +SPDXVersion: SPDX-2.3 +DataLicense: CC0-1.0 + +##------------------------- +## Document Information +##------------------------- + +DocumentNamespace: http://akash-HP-Pavilion-Laptop-15-eg2xxx/repo/SPDX2TV_Test19.zip_1720209488.spdx +DocumentName: /srv/fossology/repository/report +SPDXID: SPDXRef-DOCUMENT + +##------------------------- +## Creation Information +##------------------------- + +Creator: Tool: fossology- +Creator: Person: fossy (y) +CreatorComment: +This document was created using license information and a generator from Fossology. + +Created: 2024-07-05T19:58:08Z +LicenseListVersion: 3.22 + +##------------------------- +## Package Information +##------------------------- + + +PackageName: Test19.zip +PackageFileName: Test19.zip +SPDXID: SPDXRef-upload19 +PackageDownloadLocation: NOASSERTION +FilesAnalyzed: true +PackageVerificationCode: bcd3746b2210d8a18610b7af1567a42aaa8b7a8e +PackageChecksum: SHA1: bf9a0672e64c0557a25bef00bd6d3ba98412c1ae +PackageChecksum: SHA256: 600541c0dfa6782cd4c11ae5cde4948add0042ba06978ba05f29705c2a97ba5a +PackageChecksum: MD5: 919a09fa79c69c3d52197c8a7490192a +PackageLicenseConcluded: NOASSERTION +PackageLicenseDeclared: NOASSERTION +PackageLicenseComments: licenseInfoInFile determined by Scanners: + - nomos ("".db2422) + - monk ("".db2422) + - ojo ("".db2422) +PackageLicenseInfoFromFiles: NOASSERTION +PackageCopyrightText: NOASSERTION + +Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-upload19 + + +##-------------------------- +## File Information +##-------------------------- + +##File + +FileName: Test19.zip/Test17 +SPDXID: SPDXRef-item177 +FileChecksum: SHA1: c281d099fc10e31965a824f517e391a8e427bb7d +FileChecksum: SHA256: c1f3f53e3fa92008121471181f28793f6ba9f5a44cf0ed6e5b0440d6d3ca4d4e +FileChecksum: MD5: ce954c3f29246cba636cc1961886317d +LicenseConcluded: (MIT WITH Asterisk-exception) + +LicenseInfoInFile: BSD-2-Clause + +LicenseInfoInFile: MIT + +LicenseInfoInFile: LicenseRef-fossology-BSD + + +FileCopyrightText: NOASSERTION + +##File + +FileName: Test19.zip/Test7 +SPDXID: SPDXRef-item176 +FileChecksum: SHA1: 42a84366da049b32a08b7ea2b777a80ead5082ef +FileChecksum: SHA256: 939725c5a5ef56d792a724915a9937be89c65387fb0b714ed63a30c85e980cf0 +FileChecksum: MD5: 296c30f5a2c917761ce6aac04c0c059e +LicenseConcluded: (MIT AND (GPL-2.0-only OR BSD-3-Clause)) + +LicenseInfoInFile: AFL-1.1 + +LicenseInfoInFile: MIT + +LicenseInfoInFile: GPL-2.0-only + +LicenseInfoInFile: BSD-3-Clause + +LicenseInfoInFile: LicenseRef-fossology-Dual-license + +LicenseInfoInFile: LicenseRef-fossology-BSD + + +FileCopyrightText: NOASSERTION + +##File + +FileName: Test19.zip/Test18 +SPDXID: SPDXRef-item175 +FileChecksum: SHA1: 180aa02ae54254f8b122d1675a0854515372b1cb +FileChecksum: SHA256: dfc7a1880190025121db47d8f468d51a5490d46041e72799f535c544709a27ee +FileChecksum: MD5: 07608519d92f2fa6a053b1c67956eb09 +LicenseConcluded: (MIT AND (GPL-2.0-only OR BSD-2-Clause)) + +LicenseInfoInFile: BSD-2-Clause + +LicenseInfoInFile: MIT + +LicenseInfoInFile: GPL-2.0-only + +LicenseInfoInFile: LicenseRef-fossology-Dual-license + +LicenseInfoInFile: LicenseRef-fossology-BSD + + +FileCopyrightText: NOASSERTION + +##File + +FileName: Test19.zip/Test16.txt +SPDXID: SPDXRef-item174 +FileChecksum: SHA1: b0a628c1ac47ee2de6a03dafd18927eee240901b +FileChecksum: SHA256: 381ba9e8b7ef548bbb36e70f5a7615445f95fcd98c07bc906357a6a939f5c48f +FileChecksum: MD5: a04ef8df8807f9bf3d01d507cf87dd7c +LicenseConcluded: LicenseRef-newlc + + +FileCopyrightText: NOASSERTION + + + +##------------------------- +## License Information +##------------------------- + + +LicenseID: LicenseRef-fossology-BSD +LicenseName: BSD +ExtractedText: BSD is referenced without a version number. Please look up BSD in the License Admin to view the different versions. + + +LicenseID: LicenseRef-fossology-Dual-license +LicenseName: Dual-license +ExtractedText: Multi-licensing is the practice of distributing software under two or more different sets of terms and conditions. This may mean multiple different software licenses or sets of licenses. Prefixes may be used to indicate the number of licenses used, e.g. dual-licensed for software licensed under two different licenses. +When software is multi-licensed, recipients can choose which terms under which they want to use or distribute the software. The distributor may or may not apply a fee to either option. The two usual motivations for multi-licensing are license compatibility and market segregation based business models. + + +LicenseID: LicenseRef-newlc +LicenseName: LicenseRef-newlc +ExtractedText: License by OJO. + + + + + + + + + + + + + diff --git a/reports/SPDX2_Test19.zip_1720209507.spdx.rdf b/reports/SPDX2_Test19.zip_1720209507.spdx.rdf new file mode 100644 index 0000000000..ab910adef2 --- /dev/null +++ b/reports/SPDX2_Test19.zip_1720209507.spdx.rdf @@ -0,0 +1,987 @@ + + + SPDX-2.3 + + + Creative Commons Zero v1.0 Universal + CC0-1.0 + + https://creativecommons.org/publicdomain/zero/1.0/legalcode + + + + + 3.22 + Person: fossy (y) + Organization: FOSSology + Tool: fossology- + 2024-07-05T19:58:27Z + + + /srv/fossology/repository/report + + This document was created using license information and a generator from Fossology. + + + + LicenseRef-fossology-BSD + BSD + + + + + + LicenseRef-fossology-Dual-license + Dual-license + + + + + + LicenseRef-newlc + LicenseRef-newlc + + + + + + + + + Test19.zip + Test19.zip + + + true + + + bcd3746b2210d8a18610b7af1567a42aaa8b7a8e + + + + + + bf9a0672e64c0557a25bef00bd6d3ba98412c1ae + + + + + + 600541c0dfa6782cd4c11ae5cde4948add0042ba06978ba05f29705c2a97ba5a + + + + + + 919a09fa79c69c3d52197c8a7490192a + + + + + + + + + Test19.zip/Test17 + + + + c281d099fc10e31965a824f517e391a8e427bb7d + + + + + + c1f3f53e3fa92008121471181f28793f6ba9f5a44cf0ed6e5b0440d6d3ca4d4e + + + + + + ce954c3f29246cba636cc1961886317d + + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + Asterisk exception + Asterisk-exception + + https://github.com/asterisk/libpri/blob/7f91151e6bd10957c746c031c1f4a030e8146e9a/pri.c#L22 + + + + + + + + + BSD 2-Clause "Simplified" License + BSD-2-Clause + + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-2-Clause + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + + + + + + Test19.zip/Test7 + + + + 42a84366da049b32a08b7ea2b777a80ead5082ef + + + + + + 939725c5a5ef56d792a724915a9937be89c65387fb0b714ed63a30c85e980cf0 + + + + + + 296c30f5a2c917761ce6aac04c0c059e + + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + + + GNU General Public License v2.0 only + GPL-2.0-only + + https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + + + + + + + BSD 3-Clause "New" or "Revised" License + BSD-3-Clause + . + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-3-Clause + + + + + + + + + + + + + + Academic Free License v1.1 + AFL-1.1 + + http://opensource.linux-mirror.org/licenses/afl-1.1.txt + + + + + + + + + GNU General Public License v2.0 only + GPL-2.0-only + + https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + + + + + + BSD 3-Clause "New" or "Revised" License + BSD-3-Clause + . + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-3-Clause + + + + + + + + + + + + + + Test19.zip/Test18 + + + + 180aa02ae54254f8b122d1675a0854515372b1cb + + + + + + dfc7a1880190025121db47d8f468d51a5490d46041e72799f535c544709a27ee + + + + + + 07608519d92f2fa6a053b1c67956eb09 + + + + + + + MIT License + MIT + + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ]]> + https://opensource.org/licenses/MIT + + + + + + + + + GNU General Public License v2.0 only + GPL-2.0-only + + https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + + + + + + + BSD 2-Clause "Simplified" License + BSD-2-Clause + + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ]]> + https://opensource.org/licenses/BSD-2-Clause + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test19.zip/Test16.txt + + + + b0a628c1ac47ee2de6a03dafd18927eee240901b + + + + + + 381ba9e8b7ef548bbb36e70f5a7615445f95fcd98c07bc906357a6a939f5c48f + + + + + + a04ef8df8807f9bf3d01d507cf87dd7c + + + + + + + + + + + + + + + diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000000..997998f76f --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://fossology.github.io/gsoc/blogweekly0.5https://fossology.github.io/gsoc/blog/archiveweekly0.5https://fossology.github.io/gsoc/blog/cmake-cweek3weekly0.5https://fossology.github.io/gsoc/blog/tagsweekly0.5https://fossology.github.io/gsoc/blog/tags/cmakeweekly0.5https://fossology.github.io/gsoc/blog/tags/coding-weekweekly0.5https://fossology.github.io/gsoc/docs/tagsweekly0.5https://fossology.github.io/gsoc/docs/tags/apiweekly0.5https://fossology.github.io/gsoc/docs/tags/atarashiweekly0.5https://fossology.github.io/gsoc/docs/tags/buildsystemweekly0.5https://fossology.github.io/gsoc/docs/tags/ciweekly0.5https://fossology.github.io/gsoc/docs/tags/ci-cdweekly0.5https://fossology.github.io/gsoc/docs/tags/clearlydefinedweekly0.5https://fossology.github.io/gsoc/docs/tags/cmakeweekly0.5https://fossology.github.io/gsoc/docs/tags/community-bondingweekly0.5https://fossology.github.io/gsoc/docs/tags/gsoc-21weekly0.5https://fossology.github.io/gsoc/docs/tags/gsoc-22weekly0.5https://fossology.github.io/gsoc/docs/tags/gsoc-23weekly0.5https://fossology.github.io/gsoc/docs/tags/gsoc-24weekly0.5https://fossology.github.io/gsoc/docs/tags/license-as-a-serviceweekly0.5https://fossology.github.io/gsoc/docs/tags/open-source-licensingweekly0.5https://fossology.github.io/gsoc/docs/tags/pipelineweekly0.5https://fossology.github.io/gsoc/docs/tags/projectweekly0.5https://fossology.github.io/gsoc/docs/tags/reactweekly0.5https://fossology.github.io/gsoc/docs/tags/restweekly0.5https://fossology.github.io/gsoc/docs/tags/reuseweekly0.5https://fossology.github.io/gsoc/docs/tags/spashtweekly0.5https://fossology.github.io/gsoc/docs/tags/spdx-30weekly0.5https://fossology.github.io/gsoc/docs/tags/spdx-expressionweekly0.5https://fossology.github.io/gsoc/docs/tags/uiweekly0.5https://fossology.github.io/gsoc/docs/tags/week-1weekly0.5https://fossology.github.io/gsoc/docs/tags/week-10weekly0.5https://fossology.github.io/gsoc/docs/tags/week-11weekly0.5https://fossology.github.io/gsoc/docs/tags/week-12weekly0.5https://fossology.github.io/gsoc/docs/tags/week-2weekly0.5https://fossology.github.io/gsoc/docs/tags/week-3weekly0.5https://fossology.github.io/gsoc/docs/tags/week-4weekly0.5https://fossology.github.io/gsoc/docs/tags/week-5weekly0.5https://fossology.github.io/gsoc/docs/tags/week-6weekly0.5https://fossology.github.io/gsoc/docs/tags/week-7weekly0.5https://fossology.github.io/gsoc/docs/tags/week-8weekly0.5https://fossology.github.io/gsoc/docs/tags/week-9weekly0.5https://fossology.github.io/gsoc/docs/weekly0.5https://fossology.github.io/gsoc/docs/2021weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/buildweekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/final-evaluationweekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/first-evaluationweekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-05-28weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-06-11weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-06-18weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-06-29weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-07-09weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-07-23weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-07-30weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-08-06weekly0.5https://fossology.github.io/gsoc/docs/2021/buildsystem/updates/2021-08-13weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/setupweekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-06-07weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-06-15weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-07-06weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-07-13weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-07-20weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-08-03weekly0.5https://fossology.github.io/gsoc/docs/2021/copyrights/updates/2021-08-10weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/dockerImagesweekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/setupweekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-06-07weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-06-15weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-06-29weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-07-06weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-07-13weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-07-20weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-07-27weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-08-03weekly0.5https://fossology.github.io/gsoc/docs/2021/microservice/updates/2021-08-17weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/installationweekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-06-07weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-06-15weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-06-29weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-07-05weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-07-13weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-07-20weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-07-27weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-08-03weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-08-10weekly0.5https://fossology.github.io/gsoc/docs/2021/minerva/updates/2021-08-17weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/copyrightweekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/first_evaluationweekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/installationweekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-05-28weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-06-11weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-06-18weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-06-29weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-07-06weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-07-13weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-07-20weekly0.5https://fossology.github.io/gsoc/docs/2021/scancode/updates/2021-07-27weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/installationweekly0.5https://fossology.github.io/gsoc/docs/2021/ui/styleGuideweekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-06-15weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-06-29weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-07-06weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-07-13weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-07-20weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-07-27weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-08-03weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-08-10weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/aman/2021-08-17weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-06-15weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-06-22weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-06-29weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-07-06weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-07-13weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-07-20weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-07-27weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-08-03weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-08-10weekly0.5https://fossology.github.io/gsoc/docs/2021/ui/updates/shruti/2021-08-17weekly0.5https://fossology.github.io/gsoc/docs/2022weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-06-13weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-06-20weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-06-27weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-07-04weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-07-11weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-07-19weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-07-26weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-08-02weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-08-09weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-08-16weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-08-23weekly0.5https://fossology.github.io/gsoc/docs/2022/atarashi/updates/2022-08-30weekly0.5https://fossology.github.io/gsoc/docs/2022/GSoC-projectsweekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/02-06-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/04-08-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/07-07-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/09-06-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/11-08-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/14-07-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/16-06-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/18-08-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/21-07-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/23-06-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/25-08-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/28-07-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/minutes/30-06-2022weekly0.5https://fossology.github.io/gsoc/docs/2022/project/weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-06-09weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-06-16weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-06-23weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-06-30weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-07-07weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-07-14weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-07-21weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-07-28weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-08-04weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-08-11weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-08-18weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-08-25weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-09-01weekly0.5https://fossology.github.io/gsoc/docs/2022/project/updates/2022-09-08weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-06-13weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-06-20weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-06-27weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-07-04weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-07-11weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-07-18weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-07-25weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-08-02weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-08-09weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-08-16weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-08-23weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-08-30weekly0.5https://fossology.github.io/gsoc/docs/2022/reuse/updates/2022-09-06weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/updates/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/updates/2022-06-08weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/updates/2022-06-15weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/updates/2022-06-22weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/updates/2022-07-06weekly0.5https://fossology.github.io/gsoc/docs/2022/spasht/updates/2022-07-13weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/installationweekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/ayush/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-06-20weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-06-27weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-07-04weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-07-11weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-07-17weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-07-24weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-07-31weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-08-07weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-08-14weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-08-21weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-08-28weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/krishna/2022-09-04weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2021-06-24weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-06-30weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-07-07weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-07-14weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-07-21weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-08-02weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-08-11weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-08-18weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-08-25weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-09-08weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/samuel/2022-09-1weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-06-02weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-06-24weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-07-3weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-07-7weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-07-8weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-07-9weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-08-01weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-08-05weekly0.5https://fossology.github.io/gsoc/docs/2022/ui/updates/soham/2022-08-08weekly0.5https://fossology.github.io/gsoc/docs/2023weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-05-11weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-05-31weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-06-07weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-06-14weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-06-21weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-06-28weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-07-05weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-07-12weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-07-19weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-07-26weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-08-02weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-08-09weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-08-16weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-08-23weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-08-30weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-09-06weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-09-13weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-09-20weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-09-27weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-10-04weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-10-11weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-10-18weekly0.5https://fossology.github.io/gsoc/docs/2023/copyrights/updates/2023-10-25weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-05-11weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-06-01weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-06-08weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-06-15weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-06-22weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-06-29weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-07-06weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-07-13weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-07-20weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-07-27weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-08-03weekly0.5https://fossology.github.io/gsoc/docs/2023/cyclonedx/updates/2023-08-10weekly0.5https://fossology.github.io/gsoc/docs/2023/GSoC-projectsweekly0.5https://fossology.github.io/gsoc/docs/2023/laas/weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/finalevaluationweekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-05-11weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-06-02weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-06-09weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-06-16weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-06-23weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-06-30weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-07-07weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-07-14weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-07-21weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-07-28weekly0.5https://fossology.github.io/gsoc/docs/2023/laas/updates/2023-08-04weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-05-11weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-05-18weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-05-25weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-06-01weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-06-08weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-06-15weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-06-22weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-06-29weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-07-06weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-07-20weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-08-10weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-08-17weekly0.5https://fossology.github.io/gsoc/docs/2023/minutes/2023-08-24weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-05-11weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-06-01weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-06-08weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-06-15weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-06-22weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-06-29weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-07-06weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-07-13weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-07-20weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-07-27weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-08-03weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-08-10weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/samuel/2023-08-17weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-05-11weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-06-01weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-06-08weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-06-27weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-07-05weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-07-16weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-07-28weekly0.5https://fossology.github.io/gsoc/docs/2023/rest/updates/soham/2023-08-05weekly0.5https://fossology.github.io/gsoc/docs/2024weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-05-07weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-06-06weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-06-13weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-06-20weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-06-27weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-07-04weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-07-11weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-07-18weekly0.5https://fossology.github.io/gsoc/docs/2024/ci-scanner/updates/2024-07-25weekly0.5https://fossology.github.io/gsoc/docs/2024/GSoC-projectsweekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-06-06weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-06-13weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-06-20weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-06-27weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-07-04weekly0.5https://fossology.github.io/gsoc/docs/2024/license-detection/updates/2024-07-11weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-06-06weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-06-13weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-06-20weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-06-27weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-07-04weekly0.5https://fossology.github.io/gsoc/docs/2024/minutes/2024-07-11weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-05-07weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-06-06weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-06-13weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-06-20weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-06-27weekly0.5https://fossology.github.io/gsoc/docs/2024/pipeline/updates/2024-07-04weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/API-guidelinesweekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-05-07weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-06-06weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-06-11weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-06-18weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-06-25weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-07-02weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-07-09weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/Divij/2024-07-16weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/valens/2024-05-07weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/valens/2024-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/valens/2024-06-13weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/valens/2024-06-20weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/valens/2024-06-27weekly0.5https://fossology.github.io/gsoc/docs/2024/rest/updates/valens/2024-07-04weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/2023-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/2024-05-09weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/2024-05-23weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/2024-06-06weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/2024-06-07weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/Discussion/2024-05-31weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-14weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-21weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/Discussion/2024-06-28weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-05weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/Discussion/2024-07-12weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/General/2024-05-30weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/General/2024-06-13weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/General/2024-06-20weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/General/2024-06-27weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/General/2024-07-04weekly0.5https://fossology.github.io/gsoc/docs/2024/scheduler/updates/General/2024-07-11weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/updates/2024-05-07weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/updates/2024-05-28weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/updates/2024-06-04weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/updates/2024-06-11weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/updates/2024-06-18weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx-expression/updates/2024-06-25weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/updates/2024-05-07weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/updates/2024-05-28weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/updates/2024-06-04weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/updates/2024-06-11weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/updates/2024-06-18weekly0.5https://fossology.github.io/gsoc/docs/2024/spdx30/updates/2024-06-25weekly0.5https://fossology.github.io/gsoc/docs/2024/text-phrases/weekly0.5https://fossology.github.io/gsoc/docs/2024/text-phrases/updates/2024-05-7weekly0.5https://fossology.github.io/gsoc/docs/guidelines/weekly0.5https://fossology.github.io/gsoc/weekly0.5 \ No newline at end of file