UNIT 3_OSS

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 19

UNIT 3

Unit III

3.1 Models: Understanding the developmental models,


3.2 licensing,
3.3 mode of funding,
3.4 commercial/non-commercial use.
3.5 Open Source Hardware,
3.6 Open Source Design,
3.7 Open source Teaching.
3.8 Open source media.
3.9 a) Collaboration,
b) Community and
c)Communication
3.10 Contributing to Open Source Projects:
a) Introduction to github,
b) Interacting with the community on github,
c)Communication and etiquette,
3.11 Testing open source code,
3.12 Reporting issues,
3.13 Contributing code
3.1 MODELS: UNDERSTANDING THE DEVELOPMENTAL MODELS

Traditional model of software development:

The traditional software development process consists of six activities, illustrates in Figure 1: collecting
and analyzing requirements, design a solution approach, develop the code, test, deploy and maintain.
After each step is finished, the process proceeds to the next step.

The open source development model has key differences when compared to the traditional model of
developing software (collect requirements, design, implement, test, release, and maintain).

The open source development model, illustrated in Figure 2, starts with an idea for a new project, a new
functionality or capability to an existing open source software component. Next step is to provide a design
for the implementation and then a prototype of the capability and translate it from an idea into running
software. At the moment the software runs, it is released as development release, even though it may contain
known and unknown bugs. This follows the spirit of release early and release often.

The software will be tested by the community who discuss the software through mailing lists and discussion
boards and provide feedback, bug reports, and fixes through the project mailing list. The feedback is
recorded and taken into consideration by project members and maintainers to improve the implementation
and then a new development release will be available. This cycle happens as many times as needed until
project members feel that the implementation is stable enough. When the implementation is released as
stable, the development cycle continues to happen with the development release (also called development
tree) until a newer stable release is available.

Main Features of Open Source Development Model:

 Here the users can work as co-developers and hence, they can access the source code.
 The base version should get released early to find its co-developers early.
 The codes contributed by co-developers must have a quick integration into the source code.
 A modular approach of the software makes it easy to study and modify.
 A well structured decision-making structure should be there.

Some of the unique characteristics of the open source development model include:

1. Bottom up development: Project members who do the most work get the most say when it comes to
making design and implementation decisions. Those that do the most work get the most say.
Relationships between developers are very important.

2. “Release early, release often”: Don’t wait to have a fully working version to make the code public
and release a version of the software. This release philosophy allows for peer review, where all
members of the community can comment and offer suggestions and bug fixes. It also allows having
small incremental changes that are easier to understand and test. Open source projects tend to make a
release available early to be used by the user community and then quickly update the releases as the
software is modified. This practice is described as “release early, release often”. The open source
community believes that this practice leads to higher-quality software because of peer review and the
large base of users who are using and testing the software, accessing the source code, reporting bugs,
and contributing fixes. A side benefit of having many people looking at the code is that the code is
reviewed for adherence to coding style; fragile or inflexible code can also be improved because of
these reviews.

3. Peer Review: Members of the open source project review the code, provide comments and feedback
to improve the quality and functionality, and do early test to catch bugs and provide enhancements
as early as possible in the development cycle. The result is an improved, high quality code.

4. Small, Incremental changes: In open source project development, often additional features are
small and non intrusive for good reasons:
a. It is easier to understand small patches and code changes than making a large change in the
code or a big architectural re-design.
b. The small changes are important because its helps focusing the testing phase which is
cyclical and ongoing with every increment of the software.
c. A small change is less like to have unintended consequences.

5. Features that ignore security concerns are flagged: The open source community takes security
very seriously and any development or capability that jeopardizes the security of the software is
flagged and not included in the software until the security concern is dealt with.

6. Continuous quality improvement: This is due to the extensive peer review and quick bug fixes
7. Test projects: In many cases, test projects are created for large open source projects to create test
suites and automate testing.

8. End user involvement in the entire process: In Figure 2, we notice that the users are actually
involved in all the phases of development in the open source model.

3.2 LICENSING

An Open-Source-Software-based License:
The amount of open-source-software (OSS) used in the global software engineering community is already
enormous and still growing. This includes both the products we develop and the development tools we use
to create them. It is meanwhile rare to find examples of products that do not contain open source
components. Although, using open source components in products does have many advantages, it is very
important that one also manages the use of the open source components in a license-compliant way. A set of
companies and other organizations who either offer or use OSS-based license compliance tools have
recently formed the “Open Source Tooling Group”. This international group works on establishing an
ecosystem of OSS-based tools for license compliance that fit together well and can offer an ecosystem of
tools for organizations to help fulfill their license compliance obligations. This talk provides the motivation
and overview of this topic describing the relevance to software engineering practitioners. It will close by
highlighting some of the research areas where further improvements could be done in this fast-growing field.

GNU GPL
The positive aspects of GNU GPL license are
• Maintenance of GPL for derivative software thus guaranteeing free access and distribution.
• Most commonly used free software licensing method.
• The integrator can view and use the source code for his development activities.
• The integrator can modify the source code for his products.
• The integrator can provide his software under his own name.
• The integrator will have a good community support.
• Competitors cannot use the software to create closed-source derived products.

As negative aspects it was mentioned


• SDs has to make their modifications available for all who use their products.
• Libraries wanting to use the SD's product must also be under the GPL, thus possibly limiting acceptance.

Generally we can say, that commercial companies may not want to further develop software under GPL
because they can not later change the licensing type and that the integration into closed source or even open-
source environments with other licenses can be hard and particularly not be done.

GNU LGPL license


The positive aspects of GNU LGPL license are:
• The integrator can use the software for his products without limitations.
• The integrator can modify the source code for his products without limitations.
• The integrator SD can provide his software under his own name.
• The integrator will have a good community support for the library.
• The integrator can use the product licensed under the LGPL even in proprietary systems.
• The library itself will be updated by the community, since changes have to be contributed back.

As negative aspects it was mentioned


• Permits use of the library in proprietary programs thus enabling the possibility to not access
all software that uses the library.
• Competitors might use the software and create concurrence commercial products Generally
integrators prefer LGLP license against GPL.

3.3 MODE OF FUNDING


Q. HOW THE MODE OF FUNDING FOLLOWED FOR APACHE WEB SERVER PROJECT.
Most of the major open source projects require a fair amount of development and maintenance and have
many full-time people working on them.
People volunteer their time, most of the members of the numerous open source software foundations are
unpaid and dedicate their own time and energy. Many of these volunteers work for companies who
understand the importance of open source and give them the time.

MODE OF
FUNDING

Commercial
Corporate
Donations Enterprise
Sponsor
Support

1. Donations:
Wikipedia is the best example of the donation model. Annually it turns to its users directly asking for
donations, using banner ads and on-site promotions. The Wikimedia Foundation also receives funding from
benefactors and grants. Wikimedia follows a very similar model as public radio in the U.S.
Bitcoin Foundation is funded by a membership model which you can join for a donation or if you wish
you can donate without membership. Membership is another very common model for offline non-profit
organizations
Software foundations such as the Free Software Foundation, Software for the Public Interest, Software
Freedom Conservancy and Apache Foundation operate under a similar sponsorship model, with the
majority of donations coming from large corporate sponsors.
2. Corporate Sponsor or Patronage:
Companies benefit greatly from open source software and will hire and employ people just to work on them.
Google employed creator of Python, Guido van Rossum for 7-years. Yahoo employed creator of PHP,
RasmusLerdorf for many years to further PHP development. Two examples which key people are able to
dedicate their time.
Linux has long been funded and advanced by corporate contributors. You can see the amount of time given
to open source by the Linux contributors list. A majority of these contributions are for drivers to make the
company’s hardware work with Linux. The companies are motivated to get involved but the time and code
contributed is still open source.
Android was created by Google and released as open source to generate a platform audience, receive
contributions and feedback and encourage adoption. Also, as open source third-party manufacturers are
more willing to adopt a platform since it is open. Google still maintains primarily control and employs
the majority of developers.
3. Commercial Enterprise Support
RedHat was one of the first companies who attempted to build a for-profit business off open source. The
RedHat business model is to develop an enterprise version of the Linux platform and offer long-term
stability and enterprise support contracts. RedHat had some bumps along the way but has worked out a
pretty good model, now working well with the community and is a profitable company with a \$10b
valuation # Ubuntu follows a similar model as RedHat but started with more a focus on the consumer
market.

3.4 COMMERCIAL/NON-COMMERCIAL USE

Non-Commercial use means open source software use.


Open source Software: Open source software is the computer software developed either by an individual,
group or an organization to meet certain requirements and it is available for any modifications based on its
developing body’s interest. Open source software is published openly for general public and here the source
code is open for all. For open source software the users do not need to spend any cost. It is
available under free licensing. It depends on donations and support as its main source of find.

• Open source software is the computer software developed either by an individual, group or an organization
to meet certain requirements and it is available openly for general public for any modifications based on its
developing body’s interest.
• The cost of open source software is free.
• Open source provides limited technical support.
• Open source software is available under free licensing.
• In open source software users need to rely on community support.
• In open source software installation and updates are administered by the user.
• Limited hands on training and online resources are available for open source software application training.
• Here in open source software users can customize.
• In this rapid community response helps in fixing the bugs and malfunctions.
• In open source software the source code is public.
• The source of funds of open source software mainly depends on donations and support.
Commercial Software: Commercial software is the computer software where only the person, team, or
organization that created it can modify also they have exclusive right over the software. Anyone needs to use
it has to pay for it valid and authorized license. Here the source code is protected. For commercial software
the users need to spend moderate to expensive cost. It is available under high licensing cost. It depends on
its software sale / product licensing as its main source of fund.
Some examples of commercial software are Windows Operating System, MS Office, SAP, Oracle, Adobe
Photoshop.
• Commercial software is the computer software where only the person, team, or organization that created it
can modify also they have exclusive right over the software. Anyone needs to use it has to pay for it valid
and authorized license.
• The cost of commercial software varies from moderate to expensive.
• Commercial software provides guaranteed technical support.
• Commercial software is available under high licensing cost.
• In commercial software users get dedicated support from the vendor.
• In commercial software installation and updates are administered by the software vendor.
• On site and Online trainings are available from the commercial software vendor side for software
application training.
• But in commercial software mainly vendor offers customization.
• In this mainly the vendor is responsible for fixing the malfunctions.

3.5 OPEN SOURCE HARDWARE

Q. EXPLAIN THE TERMS: a) OPEN SOURCE HARDWARE, b) OPEN SOURCE MEDIA.


Q. WHAT IS OPEN SOURCE HARDWARE? HOW CAN HARDWARE BE OPEN?

Defining Open Source Hardware:


Simply put, open source hardware is a term that refers to any type of device whose hardware
specifications are fully documented or otherwise available.
 It maximizes the ability of third-party programmers and partners to work with a given device.
 In most cases hardware manufacturers provide only a basic level of programmability by releasing
software development kits (SDKs) or limited documentation about hardware specifications.
 Sometimes additional hardware information is available through partner programs. But with open
source hardware, all information is freely available to the public.
 Another reason why hardware openness matters is that it lets users know exactly what their hardware
does. (If you've ever read stories about webcams spying on users or microphones listening in without
their permission, you appreciate the value of being able to know everything your hardware is capable
of doing and how it can be activated, as opposed to knowing only what the company you buy it from
reveals)
 Open hardware has the benefit of being more extensible, too. It makes it much easier to tweak a
device by cutting wires, plugging in additional components and so on.
Open Source Hardware Origins
Benefits of open hardware sound a lot like the ones you get from open source software. The relationship
between open hardware and open source software is not incidental.
Like open source code, open hardware specifications were the default during the first decades of
computing. At that time, when many programs were written in assembly code and software was much
less portable than it is today, intricate knowledge of hardware was essential for writing software. That
meant that companies that manufactured hardware were much more forthcoming than they generally are
today with hardware documentation.
For the most part, programmers no longer needed to know lots of details about hardware specifications
in order to write code for a particular platform.
Why Open Hardware Matters Today
Closed hardware remained the norm as the PC age gave way to the era of mobile devices and the cloud. For
ordinary users, open hardware has not traditionally offered many advantages.
But open hardware is poised to assume more importance going forward. This is due in part to the influence
of open source software, which has now become predominant. As organizations come to expect all software
source code to be open in order to maximize interoperability, it's only natural for them to think the same way
about hardware.
Open hardware will also matter on the IoT, for two main reasons.
 The first involves security and privacy. While worries about snooping webcams on PCs may be
overblown, demands for privacy assurances will reach new magnitudes when IoT devices
surround consumers and collect all sorts of personal information.
 Companies that build IoT solutions based on open hardware will be able to make privacy
promises that others can't.
The software-defined revolution is likely to increase demand for open source hardware

3.6 OPEN SOURCE DESIGN

Q. EXPLAIN THE TERMS: a) OPEN SOURCE DESIGN, b) OPEN SOURCE TEACHING.

What is an open source design?


Open Source Design is the development of technology and ideas without retention of intellectual
property. The goal of the movement is to allow for the continued development and full customization of
products. Typically, this is done for software; however, it is increasingly being done for hardware
How it works
As a designer and an advocate for open source, I decided to submit a proposal for one of the gratis projects,
to design an AntennaPod 2 logo and icon. The project was posted on May 26, 2020, with a submission
deadline of June 27, 2020. AntennaPod is an open source Android podcast manager, and the project is
looking for a logo that doesn't look similar to the many other podcast logos (e.g., radiating antennas,
microphones, sine waves, and such). The organizers provide a very detailed design brief that clearly states
their requirements. Even though the project is unpaid, they quickly received replies from several designers.
After the submission deadline, AntennaPod will select three designs and then put them up for a vote by
the community.
Design opportunities in open source communities
For designers looking to share their talents and skills with the open source community, Open Source Design
is a good place to find opportunities. The same is true for developers and organizations looking for talent to
create or improve their projects' design, branding, and user interface.
Designers have many other opportunities to get involved in open source.
OPEN SOURCE ETHICS
Q. WRITE A SHORT NOTE ON OPEN SOURCE ETHICS.
Ethical Issue with OSS
1. Lack of Motivation
One concern with open source software is the lack of motivation to produce quality work. Because most of the
OSS developers are not paid, one may claim that these developers may not be motivated to produce reliable and
good quality software. The opponents of OSS claim that if the software is not reliable then it may affect society
negatively and thus not help enhance technology as much as their commercial counterparts.

2. Ownership
Assume that a group of researchers want to use the source code of some open source software to study
metrics of coding. However, this is not the use of the software that the developers intended. The question that
gets raised by this concept is whether or not researchers would need to ask the developers for permission to
study the code. If they do not need the permission, then the developers might be discontented with this use
and thus might be discouraged from creating new works and Open Source Software in the future. On the other
hand, if they would need the permission, then it leads to even bigger problems.

3. Licences and Enforceability


Another issue related to OSS is whether or not obtaining and following through with copyright, trademark and
licenses associated with the OSS product has negative affects on the software itself as well as the society as a
whole.
Open source software is the most ethical option for two reasons:
1. The rapid rate at which general purpose computers have and will become integrated in all aspects of our
everyday life.
2. The benefit to the wider community that comes with knowledge sharing and collaboration.

The three core aspects that are required for Open Sourcs Model to function are:
1. RESPECT
2. MORAL
3. COMPLIANCE

1. RESPECT
When consuming, using or redistributing an open source component, we respect the provider’s
ideas, thoughts, individual rights and intellectual property by adhering to associated license terms
& conditions. If the terms & conditions are unclear, we contact the provider for clarification.
2. MORAL
We regard open source model as sharing model. the provider shares a creation in a greater
community. the community is expected to give constructive feedback to improve & collaborate.
This can include a question in discussion or mailing list, filing a bug, change or submit a patch. the
Communication is respectful, polite & constructive.
3. COMPLIANCE
The compliance boundary conditions of a software distribution are expected to be given. it includes
fulfilling obligations of single licenses. Compliance to the terms & conditions of all included open
source software components must be made plausible.
3.7 OPEN SOURCE TEACHING

Q. DESCRIBE OPEN SOURCE TEACHING.

What is Open Source Teaching-Learning?

 Open Source Teaching-Learning is an emerging philosophy of education for the Digital Age. In their
day, educational theories such as Waldorf, Montessori, and Reggio Emilia met the evolving needs of
learners. Today’s challenges and opportunities demand more.
 Open Source Teaching-Learning empowers students to work in partnership with teachers to
develop their own learning experiences and interdisciplinary paths of inquiry.
 It enables students to amplify and accelerate their learning by participating in virtual networks and
online communities. Students can apprentice with expert mentors and collaborate with partners
around the world.
 They can also create their own knowledge capital as they learn.
 Open Source Learning empowers us to produce value, interdependence, and hope in real time.
Why Open Source Teaching-Learning?

In spite of all the attention and money devoted to improving our education system, today’s learners remain
poorly understood and badly underserved. Students, parents, and teachers are suffering.
Rather than advocating a specific system or required set of techniques, tools, and ideas, Open Source
Teaching-Learning embraces the idea that everyone learns different things in different ways, and it values
diverse approaches to reaching those goals.
We can now connect beyond the classroom with the ideas, resources, and people that can help students on
their learning journeys.

Open Source Teaching-Learning: methods and tools

In Open Source Teaching-Learning, each student works with the guidance of a teacher-mentor to develop an
interdisciplinary learning journey around a big idea or question.
Students design their experience by working with a variety of tools – especially resources in the digital
realm, such as credible internet content, online organizing tools (calendar, project management, and
collaboration), 3-D printing, and mobile devices.
As their projects develop, students deepen their experience through information-sharing that establishes
themselves and empowers others.

Results
The result of Open Source Teaching-Learning is that, in the process of mastering concepts and skills, we
develop our mental, physical, civic, spiritual, and technical fitness, and we learn new ways to think. For
example:
• It allows students to create and manage interactive learning material that becomes available online to
everyone, generating and sharing value that extends beyond the traditional K-16 curriculum.
• Deeper and more engaged involvement results in significant improvement in academic achievement.
• It also creates opportunities for traditional performance evaluation of objective production, including
formative and summative tests; and alternative assessment of portfolios, which can include a variety of
artifacts, including trans media presentation of content, and the student’s choices related to platforms, media,
and design.
• Participants – students and teachers alike — emerge with progressively masterful records of assessment
and authentic work portfolios that tell a far more compelling story than diplomas or résumés.

3.8 OPEN SOURCE MEDIA

Q. DISCUSS ABOUT OPEN SOURCE MEDIA.


Q. EXPLAIN THE TERMS: a) OPEN SOURCE HARDWARE, b) OPEN SOURCE MEDIA

Open Source Media refers to media that is created and distributed under an open-source license. This means
that the source code of the media is made available to the public, allowing anyone to view, modify, and
distribute it. The open-source approach is often used in software development, but it can also be applied to
other types of media such as music, video, and images.
There are several benefits to using open-source media. First, it allows for greater collaboration and
innovation since anyone can contribute to the development of the media. Second, it can help to reduce costs
since there is no need to pay for expensive proprietary software or licenses. Finally, it can help to promote
transparency and accountability since the source code is available for anyone to review.
There are several examples of open-source media available today. One such example is OSMC, a free and open-
source media center built on Debian Linux and Kodi Media Center . Another example is mpv, a free and open-source
media player for the command line .

 Open source media centre- OSMC (Open Source Media Center) is a free and open source media
center distribution
 Open source media server- store all your media files in one place on the media server and can
access them remotely or locally using a computer or smartphone.
 Open source media manager- An open-source media manager is a software tool that allows users
to manage media & configurations on their computer. It is a free and open-source alternative to
proprietary file managers. Open-source media managers are developed by a community of
developers who collaborate to create and maintain the software.
 Open source media player- free and open source cross-platform multimedia player and framework
that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming
protocols.

3.9 COLLABORATION, COMMUNITY AND COMMUNICATION

3.9 a) Collaboration in open source software environment:


As the workforce becomes more mobile and employers look for ways to improve productivity,
collaboration software become increasingly popular.
Collaboration software offer small businesses a wide variety of benefits. They can increase teamwork
and communication, particularly if people on your team work in different locations. They can also help
you share knowledge more widely throughout the organization and lessen the chance that employees
will waste time duplicating the same work. They can also streamline your business processes and reduce
the need for face-to-face meetings—both of which can decrease costs.
but collaboration tools can be expensive, and small businesses often have difficulty finding software with
the exact features they need.

If you’re looking for small business collaboration tools that fits both your budget and your business needs,
consider open source collaboration software. Open source software licenses don’t cost anything, which
makes these collaboration tools much, much less expensive than other options

3.9 b) Open source Communities

Open source communities are semi-organised collections of contributors to a project, typically software.
These communities bring people with shared interests together to collaboratively build something,
which can be shared with anyone inside or outside of the community. And, almost always, open source
projects are the results of distributed communities.
1. Be welcoming: Alongside maintaining a healthy open source community, it remains vital to ensure
you also attract new contributors. This can be done by providing information on where the code is,
how to download the software, and technical documentation is vital.
2. Embracing the change: As we all learn how to work as distributed teams, it’s important not to try to
replicate the culture they had in an office. The drastic change from in office to remote work is no
doubt a struggle for some employees.

3.9 c) Communication
Contributing to an open source community involves working with others collaboratively and, like all team
projects, effective communication is key. Don’t be afraid to ask questions and reach out to other people for
help. It’s okay not to know things, especially if you’re a first-timer, but show that you tried and did your
homework first.

3.10 CONTRIBUTING TO OPEN SOURCE PROJECTS

Q. WHAT IS GITHUB? HOW TO CONTRIBUTE & INTERACT WITH IT? EXPLAIN


a) Introduction to github

GITHUB

GitHub is a website and cloud-based service that helps developers store and manage their code, as well as
track and control changes to their code. Git is a specific open-source version control system created by
Linus Torvalds in 2005.
GitHub is a platform for hosting, storing, and editing code. Individuals use it to host small websites,
organize projects, and collaborate with teammates and community members. The platform is built around
"Repositories" used to organize code for single projects.

Organizations use GitHub to share code and collaborate on projects internally, or to publicly post open
source projects.

Individuals and organization members alike benefit from GitHub's massive community of creators. GitHub
creators borrow inspiration and ideas from one another and help each other to solve problems.

GitHub even has a sponsorship program so that funders that find open source projects that they are
passionate about can contribute to the individual or organization behind it.

Git is a version control system which means that when developers create something, they make constant
changes to the code, releasing new versions.

Version control systems keep these revisions straight, storing the modifications in a central repository. This
allows developers to easily collaborate, as they can download a new version of the software, make changes,
and upload the newest revision. Every developer can see these new changes, download them, and contribute.

Git is a command-line tool, but the centre around which all things involving Git revolve is the hub---
GitHub.com---where developers store their projects and network with likeminded people.
Specifically, Git is a distributed version control system, which means that the entire codebase and history
is available on every developer’s computer, which allows for easy branching and merging.

GitHub’s interface is user-friendly enough so even novice coders can take advantage of Git.

Working , Contributing & Interacting on Github:

1. Repository
A repository (usually abbreviated to "repo") is a location where all the files for a particular project are stored
2. Forking a Repo
“Forking” is when you create a new project based off of another project that already exists. This is an
amazing feature that vastly encourages the further development of programs and other projects. If you find a
project on GitHub that you’d like to contribute to, you can fork the repo, make the changes you’d like, and
release the revised project as a new repo.
3. Pull Requests
You've forked a repository, made a great revision to the project, and want it to be recognized by the original
developers---maybe even included in the official project/repository. You can do so by creating a pull
request. The authors of the original repository can see your work, and then choose whether or not to accept it
into the official project
4. Social networking
The social networking aspect of GitHub is probably its most powerful feature, allowing projects to grow
more than just about any of the other features offered. Each user on GitHub has their own profile that acts
like a resume of sorts, showing your past work and contributions to other projects via pull requests.
5. Changelogs
When multiple people collaborate on a project, it’s hard to keep track revisions---who changed what, when,
and where those files are stored. GitHub takes care of this problem by keeping track of all the changes that
have been pushed to the repository.

Features of GitHub:
1. Drag and Drop Gist Code
2. Creating a folder via the Web Interface
3. Using Git URL Shortener
4. File Finder
5. Using Github Emoji
6. Using Github Command Line Interface
7. Linking Lines
8. Task Checklist
9. 3D Rendering

3.10 b) Interacting with the community on github

 Improve Your Skills


 Make Friends
 Teach Others
 Build Your Portfolio and Reputation

3.10 c) Communication and etiquette

Q. WHAT IS COMMUNICATION & ETTIQUETTE? EXPLAIN.


Open Source Etiquette
Once you’ve found an open source project you like, you’re ready to get started! Whether you want to help
out by contributing code or would like to help organize a community event, here are a few rules around
etiquette to keep in mind.
1. Communicate Effectively
Contributing to an open source community involves working with others collaboratively and, like all team
projects, effective communication is key. Don’t be afraid to ask questions and reach out to other people for
help. It’s okay not to know things, especially if you’re a first-timer, but show that you tried and did your
homework first.
2. Always Be Respectful
Yes, this is obvious and basic but it’s worth highlighting because it’s so easily forgotten in the digital
world. Treat others the way you want to be treated. Don’t forget there’s a person behind the screen. And
keep your comments positive, honest and polite.
3. Be Clear
You’ll be working with people from all over the world and context gets lost across languages, cultures,
geographies, and time zones. Also, written communication online makes it harder to convey tone. It’s best to
always assume good intentions but ask for more context if you’re confused and be polite when saying ‘no’
to an idea.
4. Help Others
Whether you’re a first-timer or a veteran, go out of your way to help others out. Whether it’s figuring out
some tricky code, helping someone edit documentation, or finding someone with more knowledge to help
another, there’s always something you can do to help encourage goodwill in the open source community.
5. Give Credit Where Credit’s Due
Always give others credit for their work because they no doubt work hard on their contribution. Kudos is
currency in the open source community — volunteer work isn’t exactly lucrative! And when someone goes
out of their way to help you, acknowledge them and pay it forward. Be kind, give back, and it will come
back to you in spades.
6. Get Involved Offline
Open source isn’t all about sitting at your computer typing code or testing software for bugs. Many open
source projects have IRL opportunities for conferences and meetups. WordPress, for example,
has WordCamps all over the world, even more Meetup groups, and conferences like Pagely’s
annual PressNomics, which caters to businesses that power the WordPress economy. So get out from behind
your computer and meet the people you talk to online
3.11 testing open source code,
3.12 reporting issues,
3.13 contributing code

3.11 TESTING OPEN SOURCE CODE

The top open source automation testing tools that are available in the market.
These testing tools aid in areas of testing like automation & manual testing, functionality, regression, load,
performance, stress & unit testing, web, mobile & desktop testing, etc.
Some of these software testing tools are licensed and some are open source. In this tutorial, we are going to
take an in-depth look at Open source testing tools.
Any software tool is known as open source if its source code is available for free for use & modification
over the original design. In contrast to licensed tools, open source tools don’t have a commercial license.
All such open source tools that serve a specific purpose of software testing are known as open source testing
tools.
The selection will always depend upon the purpose of your testing (automated, manual, functional and so
on).
1. Katalon Platform is an all-in-one solution that supports web, API, mobile, and desktop app test
automation. It is powerful in enabling cross-functional operations for product development teams at
scale.
As a codeless solution, Katalon Platform is easy to use, robust to expand, yet contains the necessary
components for advanced needs with built-in keywords and project templates.
2. QA Wolf is an open-source end-to-end automated testing tool and one of the fastest ways to create
QA tests that we’ve seen. It’s fully hosted, so no downloads or installation are required.
Its automatic code generation and low learning curve enable your entire team to get involved in test
creation from the non-technical members to the senior developers.
3. selenium is one of the best open source testing tools that is available today. Being compatible with
quite a lot of programming languages, testing frameworks, browsers and operating systems,
Selenium is an awesome automation testing tool for web apps.
It helps you to create very effective test scripts for regression testing, exploratory testing, and quick
bug reproduction.
4. Robotium is an open-source tool that acts as a test automation framework which is mainly intended
for Android UI testing.
5. Sikuli is an open source testing tool which is built upon the concept of image recognition and
possesses the ability to automate anything that is seen on the screen. It is very useful to automate
non-web-based desktop applications.
It is also known for its quick bug reproduction.
6. Apache JMeter is an open source Java desktop app which is intended mainly for web applications’
load testing. It also supports unit testing and limited functional testing.
It has a lot of good features like dynamic reporting, portability, powerful Test IDE, etc and supports
different type of applications, protocols, shell scripts, Java objects, and databases.
7. Test Link is an open source web-based test management tool which is primarily featured for test
plans, test cases, user roles, test projects and test specifications.
It offers cross-platform OS support and gets well integrated with other bug tracking systems
8. Httest is used to implement all types of Http-based tests. It offers a range of Http based
functionalities. It allows testing of complex scenarios very effectively.
9. OpenTest is a spectacular automation tool for web, Apps, and APIs.
10. Linux Desktop Testing Project - LDTP is an open source automated testing tool for GUI testing.

3.12 REPORTING ISSUES

In most cases, GitHub Issues is used for reporting bugs and requesting features. Sometimes it hosts
discussions, helps process support requests, or even submit documentation feedback. If you want to use
GitHub Issues with your repository for a long time and stay productive, consider following basic issue
tracker maintenance practices that are described below.
1. If You’re Just Starting, Go With the Defaults
2. Encourage Search to Avoid Duplication
3. Add Structure to Issue Reporting and Encourage Reporters to Be Specific
4. Route Vulnerability Reports Elsewhere
5. Use (But Don’t Overuse) Labels
6. Mention the Appropriate People
7. Choose a Workflow to Assign Issues to Developers
8. Don’t Forget to Close Issues
9. Backing up GitHub Issues
3.13 CONTRIBUTING CODE.
Why contributing to open source?
Some reasons you might want to contribute to open source are:
 It can be a rewarding experience: knowing that you helped fix a pesky issue or
improve the documentation for the libraries that you use can be quite satisfying and
benefit a bunch of folks.
 It is an excellent way to learn new skills: from improving your version control skills
to working collaboratively with other developers, technical writers and designers, you
always acquire new skills (or sharpen your existing ones).
 Being part of the community: contributing to open source helps you build
relationships within the open-source community
 Find mentors and mentor others: as you work on open source projects you often
need to explain how you do things and discuss the best solution to a problem.
 Going beyond the technical skills: not only it allows you to improve your coding or
technical skills, but it also allows you to work on essential people skills such as
effective communication, conflict resolution, leadership and organisational skills.
 Working in the open: in many cases, we do not get the chance to share what we work
on in our day job due to NDIs or other circumstances. Or maybe you are looking for a
career change and want to build an online developer presence. Contributing to open-
source gives you a chance to showcase all of the skills mentioned above in an open
and public manner.

The Phases of Open-Source Contribution


There are things to look out for before contributing to a project, including:
 Choose a Project with an open-source license
 Open an Issue
 Check if the project is actively accepting contributions
 Open a Pull Request (PR)
 Submit Contribution

1. Choose a Project
Endeavor to choose a project that requires skills that you possess. For instance, a
developer with web development skills can fix a bug in the CSS file of a project. Go
through the documentation, and look at the existing issues. If you find an issue you’d like
to work on, indicate interest. Issues can be found on the /contribute page of the repository.
Make sure to do this so the issue can be assigned to you and not someone else.
If there are specific problems you noticed in the project that have no existing issues, reach
out to the project maintainer. An issue can be created after your request is confirmed.
In the discussion forum, talk about the problem you want to work on. Remember to keep
all discussions public, as other contributors can learn from them.
2. Open an Issue
If you request an issue to be assigned to you, there is no need to open another issue. A new
issue can be opened if there is a particular problem you want to work on, or if there is a
new idea that you want to add to the project. Ensure that an issue has been assigned to
you.
Go ahead to work on the issue after these conditions have been met.
3. Check if the project is actively accepting contributions
Verify if the specified project is accepting the contributions from sources.
4. Open a Pull Request (PR)
 Fork the main repository of the project.
 Clone it locally.
 Create a branch to work with.
 Link your local repository to the main by setting it as remote.
 Pull in changes from the main repository often to stay updated with recent merges and
issues. This will prevent merge contradictions.
 Include references, images and files used in your pull request. This shows the
authenticity of your contribution.
 Test the changes made after adding your contribution. This is to ensure that your pull
request does not contradict the existing project.
 Examine your pull request to see if it fits the contribution guidelines of the project.

5. Submit Contribution
Submit the pull request and wait for a response from the maintainers. One of these
incidents might occur during this time:
1. A request is made to edit from the maintainer to edit the pull request.
2. There is no response from the owners or maintainers of the project.
3. The pull request is labeled unacceptable.
4. The pull request gets accepted and merged.
An open-source contribution is only complete after a successful pull request (PR) merge.

How to get started with open-source contributions:

 Finding the right project


1. License
2. Contribution guidelines
3. Code of conduct
4. Communication channels
5. Contribution workflow
 Finding something to work on
1. Think beyond code
2. Build from experience
3. No contribution is too small
4. Finding issues to work on

You might also like