Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Contribution guide #16119

Merged
merged 3 commits into from
Jul 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/app/showcase/doc/contribution/benefitsdoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Component } from '@angular/core';

@Component({
selector: 'benefits-doc',
template: `
<app-docsectiontext>
<p>
Contributing to PrimeNG comes with several benefits. Being part of an open-source project will enhance your career and open up exciting opportunities. Contributors and Committers will be listed on our
<a routerLink="/team">team page</a>. You'll gain significant visibility in the developer community while improving yourself as a professional.
</p>
<p>You'll be invited to a private communication channel at Discord to get in touch with PrimeTek. In addition, contributors have access to all PrimeNG add-ons like Premium Templates, Blocks, and UI Kit free of charge.</p>
</app-docsectiontext>
`
})
export class BenefitsDoc {}
16 changes: 16 additions & 0 deletions src/app/showcase/doc/contribution/cladoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Component } from '@angular/core';

@Component({
selector: 'cla-doc',
template: `
<app-docsectiontext>
<p>
PrimeNG is a popular Vue UI library maintained by PrimeTek, a company renowned for its comprehensive set of UI components for various frameworks. PrimeTek is dedicated to providing high-quality, versatile, and accessible UI components
that help developers build better applications faster.
</p>
</app-docsectiontext>
`
})
export class ClaDoc {

}
16 changes: 16 additions & 0 deletions src/app/showcase/doc/contribution/communicationdoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Component } from '@angular/core';

@Component({
selector: 'communication-doc',
template: `
<app-docsectiontext>
<p>
Join the Contributors channel on the PrimeLand Discord server to connect with PrimeNG staff and fellow contributors. In this channel, you can discuss the areas you want to contribute to and receive feedback. This channel is open to
everyone who'd like to contribute.
</p>
</app-docsectiontext>
`
})
export class CommunicationDoc {

}
20 changes: 20 additions & 0 deletions src/app/showcase/doc/contribution/contribution.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { AppDocModule } from '@layout/doc/app.doc.module';
import { AppCodeModule } from '@layout/doc/app.code.component';
import { IntroductionDoc } from './introductiondoc';
import { HelpNeededDoc } from './helpneededdoc';
import { CommunicationDoc } from './communicationdoc';
import { PathwayDoc } from './pathwaydoc';
import { BenefitsDoc } from './benefitsdoc';
import { ClaDoc } from './cladoc';
import { KeyPointsDoc } from './keypoints';


@NgModule({
imports: [CommonModule, RouterModule, AppCodeModule, AppDocModule],
declarations: [IntroductionDoc, HelpNeededDoc, KeyPointsDoc, CommunicationDoc, PathwayDoc, BenefitsDoc, ClaDoc],
exports: [AppDocModule]
})
export class ContributionDocModule {}
26 changes: 26 additions & 0 deletions src/app/showcase/doc/contribution/helpneededdoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Component } from '@angular/core';

@Component({
selector: 'helpneeded-doc',
template: `
<app-docsectiontext>
<p>PrimeNG is a community-driven project backed by the expertise and sponsorship of PrimeTek, and we appreciate any help you can provide. Here are some areas where you can contribute:</p>
<h3>Issue Triage</h3>
<p>Help us manage issues by;</p>
<ul class="line-height-3 px-10 m-0">
<li>Reproducing reported bugs</li>
<li>Clarifying issue descriptions</li>
<li>Tagging issues with appropriate labels</li>
</ul>

<h3>Sending Pull Requests</h3>
<p>We encourage you to send pull requests, especially for issues tagged with the <i>help-needed</i> label.</p>

<h3>Community Support</h3>
<p>Assist other users by participating in the issue tracker, GitHub discussions, and the PrimeLand Discord server. Your expertise can help others solve problems and improve their experience with PrimeNG.</p>
</app-docsectiontext>
`
})
export class HelpNeededDoc {

}
37 changes: 37 additions & 0 deletions src/app/showcase/doc/contribution/introductiondoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Component } from '@angular/core';
import { Code } from '@domain/code';

@Component({
selector: 'indroduction-doc',
template: `
<app-docsectiontext>
<p>
PrimeNG is a popular Angular UI library maintained by PrimeTek, a company renowned for its comprehensive set of UI components for various frameworks. PrimeTek is dedicated to providing high-quality, versatile, and accessible UI
components that help developers build better applications faster.
</p>
<h3>Development Setup</h3>
<p>To begin with, clone the PrimeNG repository from GitHub:</p>
<app-code [code]="code1" [hideToggleCode]="true" [hideStackBlitz]="true"></app-code>
<p style="margin-top: 1rem;">Then run the showcase in your local environment at <i>http://localhost:3000/</i>.</p>
<app-code [code]="code2" [hideToggleCode]="true" [hideStackBlitz]="true"></app-code>
<h3>Project Structure</h3>
<p>PrimeNG's project structure is organized as follows:</p>
<app-code [code]="code3" [hideToggleCode]="true" [hideStackBlitz]="true"></app-code>
</app-docsectiontext>
`
})
export class IntroductionDoc {
code1: Code = {
basic: `git clone https://github.com/primefaces/primeng.git
cd primeng`
};
code2: Code = {
basic: `npm install
ng serve`
};
code3: Code = {
basic: `- app
- showcase // website
- components // main directory of components and directives`
};
}
16 changes: 16 additions & 0 deletions src/app/showcase/doc/contribution/keypoints.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Component } from '@angular/core';

@Component({
selector: 'keypoints-doc',
template: `
<app-docsectiontext>
<p>
PrimeNG has several add-ons such as UI Kit, Premium Templates, and Blocks that rely on design tokens and styling. Any core structural changes, such as adding new props, events, or updating design tokens, should be communicated with the
core team to ensure consistency and compatibility.
</p>
</app-docsectiontext>
`
})
export class KeyPointsDoc {

}
21 changes: 21 additions & 0 deletions src/app/showcase/doc/contribution/pathwaydoc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Component } from '@angular/core';

@Component({
selector: 'pathway-doc',
template: `
<app-docsectiontext>
<p>PrimeTek offers an organization structure involving contributors and the core team:</p>
<h3>Contributor Role</h3>
<p>After a certain period of frequent contributions, a community member is offered the Contributor role.On average, it may take about three months, but the exact duration can vary depending on the individual commitment.</p>

<h3>Committer Role</h3>
<p>If a contributor actively participates in the codebase and PRs, their role may be upgraded to a Committer level, providing direct commit access to the PrimeNG codebase.</p>

<h3>Employment</h3>
<p>PrimeTek prefers to hire team members from open source committers, so you may be offered a full-time position when a position becomes available.</p>
</app-docsectiontext>
`
})
export class PathwayDoc {

}
1 change: 1 addition & 0 deletions src/app/showcase/layout/app.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ export const routes: Routes = [
{ path: 'stepper', loadChildren: () => import('@pages/stepper/stepperdemo.module').then((m) => m.StepperDemoModule) },
{ path: 'steps', loadChildren: () => import('@pages/steps/stepsdemo.module').then((m) => m.StepsDemoModule) },
{ path: 'support', loadChildren: () => import('@pages/support/support.module').then((m) => m.SupportModule) },
{ path: 'contribution', loadChildren: () => import('@pages/contribution/contribution.module').then((m) => m.ContributionModule) },
{ path: 'styleclass', loadChildren: () => import('@pages/styleclass/styleclassdemo.module').then((m) => m.StyleClassDemoModule) },
{ path: 'tag', loadChildren: () => import('@pages/tag/tagdemo.module').then((m) => m.TagDemoModule) },
{ path: 'table', loadChildren: () => import('@pages/table/tabledemo.module').then((m) => m.TableDemoModule) },
Expand Down
10 changes: 10 additions & 0 deletions src/app/showcase/pages/contribution/contribution-routing.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { ContributionComponent } from './contribution';


@NgModule({
imports: [RouterModule.forChild([{ path: '', component: ContributionComponent }])],
exports: [RouterModule]
})
export class ContributionRoutingModule {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<app-doc
docTitle="Contribution - PrimeNG"
header="Contribution Guide"
description="Welcome to the PrimeNG Contribution Guide and thank you for considering contributing."
[docs]="docs"
></app-doc>
11 changes: 11 additions & 0 deletions src/app/showcase/pages/contribution/contribution.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { ContributionRoutingModule } from './contribution-routing.module';
import { ContributionComponent } from './contribution';
import { ContributionDocModule } from '@doc/contribution/contribution.module';

@NgModule({
imports: [CommonModule, ContributionRoutingModule, ContributionDocModule],
declarations: [ContributionComponent]
})
export class ContributionModule {}
51 changes: 51 additions & 0 deletions src/app/showcase/pages/contribution/contribution.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { Component } from '@angular/core';
import { BenefitsDoc } from '@doc/contribution/benefitsdoc';
import { ClaDoc } from '@doc/contribution/cladoc';
import { CommunicationDoc } from '@doc/contribution/communicationdoc';
import { HelpNeededDoc } from '@doc/contribution/helpneededdoc';
import { IntroductionDoc } from '@doc/contribution/introductiondoc';
import { KeyPointsDoc } from '@doc/contribution/keypoints';
import { PathwayDoc } from '@doc/contribution/pathwaydoc';

@Component({
templateUrl: './contribution.component.html'
})
export class ContributionComponent {
docs = [
{
id: 'introduction',
label: 'Introduction',
component: IntroductionDoc
},
{
id: 'helpneeded',
label: 'Help Needed',
component: HelpNeededDoc
},
{
id: 'keypoints',
label: 'Key Points',
component: KeyPointsDoc
},
{
id: 'communication',
label: 'Communication',
component: CommunicationDoc
},
{
id: 'pathway',
label: 'Pathway',
component: PathwayDoc
},
{
id: 'benefits',
label: 'Benefits',
component: BenefitsDoc
},
{
id: 'cla',
label: 'CLA',
component: ClaDoc
}
];
}
8 changes: 7 additions & 1 deletion src/assets/showcase/data/menu.json
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,12 @@
}
]
},
{
"name": "Contribution",
"icon": "pi pi-users",
"routerLink": "/contribution",
"badge": "NEW"
},
{
"name": "Discover",
"icon": "pi pi-search",
Expand Down Expand Up @@ -617,4 +623,4 @@
]
}
]
}
}
Loading