The "gilets jaunes" (yellow vests) movement emerged out of anger over fuel price hikes in France and later snowballed to become a wider protest against social inequalities.
A movement not affiliated to any political party or union and without leadership or structure, the first demonstrations sprang up on November 17 and quickly spread across the country.
First 'gilets jaunes' protests take place
Protesters spanned age groups, jobs, and geographical regions, and comprised unemployed youth, retired people with very low pensions, and people who earn the minimum wage.
Some far-right and far-left militants also joined the demonstrations but many protesters sought to distance themselves from these radical and violent fringe elements.
As the movement rumbled on it even spread across borders, including to neighbouring Belgium.
Violent protests in Paris
Widespread violence erupted in Paris around the Arc de Triomphe and several upscale neighbourhoods in the west of the city on Saturday, December 1. The government said as many as 136,000 people protested across the country.
Despite an announcement from Prime Minister Edouard Philippe on December 5 that his government would suspend further fuel-tax hikes in next year's budget, gilets jaunes spokespeople called for protests to continue.
Philippe said anyone would have to be "deaf or blind" to not see the anger of those involved in the movement.
The government also had the added pressure of the gilets jaunes movement gradually spreading to other sectors, encompassing students, lorry drivers and farmers.
Students, spurred on by the movement and angered by Macron's education reforms and plans to change the baccalauréat (a secondary-school leaving exam), protested in cities across France.
Security stepped up for fourth weekend of protests
As many as 89,000 members of the security forces were deployed across the country for protests on the weekend of December 8 and 9, including 8,000 in Paris, and armoured vehicles were also used for the first time since 2005 when riots broke out in Paris.
Authorities said violence had reduced since the previous weekend — Interior Minister Christophe Castaner said that more than 1,700 people were arrested.
"The escalation of violence has been stopped,” he said at a press conference. “It’s been contained but remains totally unacceptable".
Macron announces concessions
After four weekends of protests, some of them violent, like those seen in Paris, Macron climbed down.
In a televised address, he unveiled a series of measures in a bid to quell the spreading anger, included a €100 monthly rise in the minimum wage, the abolition of taxes on overtime pay in 2019, a promise that end-of-year bonuses will be tax-free and the scrapping of a new tax on pensioners earning less than €2,000 a month.
It remains to be seen if the French president's concessions will be enough to halt the gilets jaunes movement.